第四个功能:学生选择课程+在个人中心显示已选课程+删除已选课程
链接接上 :https://blog.csdn.net/ignite_/article/details/90528239
新增数据表
新增实体类:
SelectCourse(新增的数据表)
package Domain;
public class SelectCourse {
private String id;
private String user_id;
private String course_id;
private String select_time;
@Override
public String toString() {
return "SelectCourse{" +
"id='" + id + '\'' +
", user_id='" + user_id + '\'' +
", course_id='" + course_id + '\'' +
", select_time='" + select_time + '\'' +
'}';
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUser_id() {
return user_id;
}
public void setUser_id(String user_id) {
this.user_id = user_id;
}
public String getCourse_id() {
return course_id;
}
public void setCourse_id(String course_id) {
this.course_id = course_id;
}
public String getSelect_time() {
return select_time;
}
public void setSelect_time(String select_time) {
this.select_time = select_time;
}
}
修改实体类
PersonStuJson(传递个人中心Json)
package Domain.json;
import java.util.ArrayList;
import java.util.List;
public class PersonStuJson {
List<CourseJson> Course = new ArrayList<CourseJson>();
private String id;
private String nickname;
private String usernumber;
private String phone;
private int sex;
private String picture;
@Override
public String toString() {
return "PersonStuJson{" +
"Course=" + Course +
", id='" + id + '\'' +
", nickname='" + nickname + '\'' +
", usernumber='" + usernumber + '\'' +
", phone='" + phone + '\'' +
", sex=" + sex +
", picture='" + picture + '\'' +
'}';
}
public List<CourseJson> getCourse() {
return Course;
}
public void setCourse(List<CourseJson> course) {
Course = course;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public String getUsernumber() {
return usernumber;
}
public void setUsernumber(String usernumber) {
this.usernumber = usernumber;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
public String getPicture() {
return picture;
}
public void setPicture(String picture) {
this.picture = picture;
}
}
新增SelectCourseDao(SelectCourseService同理)
package Dao;
import Domain.SelectCourse;
import java.sql.SQLException;
import java.util.List;
public interface SelectCourseDao {
// 选择课程
public boolean addcourse(SelectCourse selectCourse) throws SQLException;
// 根据用户id查找用户已选课程id
public List<SelectCourse> CourseId(String userid) throws SQLException;
// 根据用户id和课程id删除已选课程
public boolean delete(String userid,String courseid) throws SQLException;
}
新增Servlet
AddCourseServlet(选择课程)
package Servlet;
import Domain.SelectCourse;
import Domain.User;
import Service.Impl.SelectCourseServiceImpl;
import Service.SelectCourseService;
import Utils.CreateUUID;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@WebServlet(name = "AddCourseServlet")
public class AddCourseServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 设置编码
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
// 设置输出
PrintWriter out = response.getWriter();
// 获得id
String CourseId = request.getParameter("id");
HttpSession session = request.getSession();
User user = (User) session.getAttribute("login");
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh:mm:ss");
CreateUUID createUUID = new CreateUUID();
// 封装SelectCourse Bean
SelectCourse selectCourse = new SelectCourse();
selectCourse.setId(createUUID.createUUID());
selectCourse.setUser_id(user.getId());
selectCourse.setCourse_id(CourseId);
selectCourse.setSelect_time(dateFormat.format(date));
// 存入数据库
boolean result = true;
List<SelectCourse> selectCourses = null;
SelectCourseService selectCourseService = new SelectCourseServiceImpl();
// 判断是否已选该课程
try {
selectCourses = selectCourseService.CourseId(selectCourse.getUser_id());
} catch (SQLException e) {
e.printStackTrace();
}
for (int index = 0; index < selectCourses.size(); index++) {
if (selectCourse.getCourse_id().equals(selectCourses.get(index).getCourse_id())) {
result = false;
}
}
if (!result){
out.print(result);
}
else{
try {
result = selectCourseService.addcourse(selectCourse);
} catch (SQLException e) {
e.printStackTrace();
}
out.print(result);
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}
DeleteServlet(删除已选课程)
package Servlet;
import Service.Impl.SelectCourseServiceImpl;
import Service.SelectCourseService;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
@WebServlet(name = "DeleteSelectServlet")
public class DeleteSelectServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 设置编码
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("gb2312");
// 设置输出
PrintWriter out = response.getWriter();
// 获得值
String userId = request.getParameter("UserId");
String courseId = request.getParameter("CourseId");
// 创建service
SelectCourseService selectCourseService = new SelectCourseServiceImpl();
boolean result = false;
try {
result = selectCourseService.delete(userId, courseId);
} catch (SQLException e) {
e.printStackTrace();
}
if (result){
out.print(
"<script>\n" +
" alert(\"删除成功\");\n" +
" window.history.go(-1);\n" +
"</script>"
);
}
else{
out.print(
"<script>\n" +
" alert(\"删除失败\");\n" +
" window.history.go(-1);\n" +
"</script>"
);
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
}
修改PersonStuServlet(传递json)
package Servlet;
import Domain.Course;
import Domain.SelectCourse;
import Domain.json.CourseJson;
import Domain.json.PersonStuJson;
import Domain.User;
import Service.CourseService;
import Service.Impl.CourseServiceImpl;
import Service.Impl.SelectCourseServiceImpl;
import Service.Impl.UserServiceImpl;
import Service.SelectCourseService;
import Service.UserService;
import com.alibaba.fastjson.JSONObject;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
@WebServlet(name = "PersonStuServlet")
public class PersonStuServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 设置编码
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
// 设置输出
PrintWriter out = response.getWriter();
// 获得id
String id = request.getParameter("id");
// 创建service和User对象
User user = new User();
UserService userService = new UserServiceImpl();
try {
user = userService.select(id);
} catch (SQLException e) {
e.printStackTrace();
}
// 查找该id选择课程id
List<SelectCourse> courseId = null;
SelectCourseService selectCourseService = new SelectCourseServiceImpl();
try {
courseId = selectCourseService.CourseId(user.getId());
} catch (SQLException e) {
e.printStackTrace();
}
// 查找该课程信息
CourseService courseService = new CourseServiceImpl();
List<Course> Tea = new ArrayList<Course>();
try {
for (int index = 0; index < courseId.size(); index++) {
Course course = new Course();
course = courseService.selectid(courseId.get(index).getCourse_id());
Tea.add(index, course);
}
} catch (SQLException e) {
e.printStackTrace();
}
// 根据教师id找到教师信息
List<User> userT = new ArrayList<User>();
for (int index = 0; index < Tea.size(); index++) {
try {
User Teacher = new User();
Teacher=userService.select(Tea.get(index).getCreate_userid());
userT.add(index,Teacher);
} catch (SQLException e) {
e.printStackTrace();
}
}
List<CourseJson> Course = new ArrayList<CourseJson>();
for (int index = 0 ;index<userT.size();index++){
CourseJson courseJson = new CourseJson();
courseJson.setUser_id(userT.get(index).getId());
courseJson.setNickname(userT.get(index).getNickname());
courseJson.setPicture(userT.get(index).getPicture());
courseJson.setCourse(Tea.get(index));
courseJson.setSelect_time(courseId.get(index).getSelect_time());
Course.add(index,courseJson);
}
// 将user值存入personStuJson
PersonStuJson personStuJson = new PersonStuJson();
personStuJson.setId(user.getId());
personStuJson.setNickname(user.getNickname());
personStuJson.setUsernumber(user.getUsernumber());
personStuJson.setPhone(user.getPhone());
personStuJson.setSex(user.getSex());
personStuJson.setPicture(user.getPicture());
personStuJson.setCourse(Course);
// 创建json并存储personStuJson
JSONObject json = new JSONObject();
json.put("PersonStu", personStuJson);
out.print(json);
}
}
运行效果:
1.选择课程
2.删除已选课程
3.错误操作(重复选课)
4.json数据:
前台显示页面和之前的没有多大区别,就多了一条异步请求添加课程
教师个人中心的删除课程的原理和代码都一样,这里就不多讲了
现在前期的一些小demo都要更改了,比如json字段的增加啥的,心累…
至此,用户这一块大部分功能Demo都差不多完成了 马上要开始页面显示方面的功能,比如搜索,课程具体分类的显示,课程评论回复功能…加油争取一个星期功能全撸完!
欢迎各位前辈指出问题。