基于javaweb+mysql的springboot在线课程会员系统(java+springboot+maven+jsp+spring+mysql+layui)
运行环境
Java≥8、MySQL≥5.7
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的SpringBoot在线课程会员系统(java+springboot+maven+jsp+spring+mysql+layui)
一、项目简述 功能包括: 用户管理,课程管理,在线视频观看,评论,会员展示,会员充值等等。
二、项目运行 环境配置:
Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)
项目技术:
JSP +Spring + SpringBoot + MyBatis + html+ css + JavaScript + JQuery + Ajax + layui+ maven等等
res.setCharacterEncoding("utf-8");
PrintWriter pw = res.getWriter();
/*String var = (String) session.getAttribute("varcodenumber");*/
if(!CaptchaUtil.ver(varcode, req)){
pw.write("0");
}
}
@RequestMapping(value = "changevarcode")//更换验证码,验证码显示
public void changevarcode(HttpServletRequest req,HttpServletResponse res) throws IOException, FontFormatException {
/*String url=req.getServletContext().getRealPath("/varcodeimg")+"\\"+varcodeurl+".jpg";*/
//验证码生成 varcodenumber为验证码的值
/* url=req.getServletContext().getRealPath("/varcodeimg")+"\\"+varcodeurl+".jpg";*/
//写出到response的输出流中
/*String varcodenumber = NubmerToJpgUtil.NumberToJpgUtil(res.getOutputStream());
session.setAttribute("varcodenumber",varcodenumber);*/
//使用新的验证码
// 设置位数
//CaptchaUtil.out(5, req, res);
// 设置宽、高、位数
//CaptchaUtil.out(130, 48, 5, req, res);
// 使用gif验证码
GifCaptcha gifCaptcha = new GifCaptcha(130,48,4);
gifCaptcha.setFont(gifCaptcha.FONT_7);
CaptchaUtil.out(gifCaptcha,req, res);
}
@RequestMapping(value = "admin")//管理员登录入口
public String admin(HttpSession session) {
return "loginadmin";
}
@RequestMapping(value = {"index",""})
public ModelAndView index(ModelAndView mav) {
List<Course> freecourses = courseBiz.freeCourse();
List<Course> vipcourses = courseBiz.vipCourse();
mav.addObject("freecourses", freecourses);
mav.addObject("vipcourses", vipcourses);
mav.setViewName("index");
if(fileExtName.equals("jpg")) {
filePath = uploadImagePath + File.separator + refilename+"."+fileExtName;
}
File storeFile = new File(filePath);
// 在控制台输出文件的上传路径
System.out.println(filePath);
// 保存文件到硬盘
item.write(storeFile);
System.out.println("文件上传成功!");
/*request.setAttribute("message",
"文件上传成功!");*/
}
}
}
} catch (Exception ex) {
System.err.println( "错误信息: " + ex.getMessage());
/* request.setAttribute("message",
"错误信息: " + ex.getMessage());*/
}
if(pmap.get("id")!=null&&!pmap.get("id").equals("")) {
course.setId(Integer.parseInt(pmap.get("id")));
}
course.setName(pmap.get("name"));
course.setContext(pmap.get("context"));
course.setType(pmap.get("type"));
course.setPrice("1");
return course;
}
}
mav.setViewName("login");
return mav;
}else if(!"admin".equals(loginUser.getMission())&&!"showadmin".equals(loginUser.getMission())){
//添加管理员的再次验证
mav.setViewName("redirect:course");
return mav;
}else{
List<User> userss = userBiz.selectAllUser();
int totalpage = 14;//一页的数量
List<User> users = new ArrayList<User>();
mav.addObject("maxpage", (userss.size()-1)/totalpage);
for(int i = page*totalpage;i<page*totalpage+totalpage;i++){
if(userss.size()==i){
mav.addObject("users", users);
mav.addObject("page", page);
mav.setViewName("admin/alluser");
return mav;
}
users.add(userss.get(i));
}
mav.addObject("page", page);
mav.addObject("loginUser", loginUser);
mav.addObject("users", users);
mav.setViewName("admin/alluser");
return mav;
}
}
@RequestMapping(value = "banuser")//屏蔽和恢复用户
public String banuser(String userid,int type, HttpSession session,HttpServletRequest req) {
User loginUser = (User) session.getAttribute("loginUser");
if (loginUser == null) {
return "login";
}else if(!"admin".equals(loginUser.getMission())){
//添加管理员的再次验证
session.setAttribute("loginUser", loginUser);
return "redirect:course";
}else{
if(type==0){//0为屏蔽用户
User user = userBiz.selectByPrimaryKey(userid);
user.setBuycase("1");
userBiz.updateByPrimaryKeySelective(user);
session.setAttribute("ip", ipsetBiz.selectip(ip));
return "admin/ipset";
}
@RequestMapping(value="banip")//封禁ip
public void banip(HttpServletResponse resp,HttpSession session,String ip,String mark,String time) throws IOException{
User loginUser = (User) session.getAttribute("loginUser");
if (loginUser == null) {
return ;
}else if(!"admin".equals(loginUser.getMission())){
//添加管理员的再次验证
return ;
}
Date date = new Date();
Ipset ip1 = ipsetBiz.selectip(ip);
boolean isnull = false;
if(ip1==null) {
ip1=new Ipset();
ip1.setIp(ip);
isnull =true;
}
ip1.setIp(ip);
ip1.setMark(mark);
ip1.setType("1");
switch (time) {
case "5m":
if (date.getMinutes() > 55) {
date.setMinutes(date.getMinutes() - 55);
date.setHours(date.getHours() + 1);
} else {
date.setMinutes(date.getMinutes() + 5);
}
ip1.setBantime(date);
break;
case "2h":
date.setHours(date.getHours() + 2);
ip1.setBantime(date);
break;
case "1d":
date.setDate(date.getDate() + 1);
session.setAttribute("varcodenumber",varcodenumber);*/
//使用新的验证码
// 设置位数
//CaptchaUtil.out(5, req, res);
// 设置宽、高、位数
//CaptchaUtil.out(130, 48, 5, req, res);
// 使用gif验证码
GifCaptcha gifCaptcha = new GifCaptcha(130,48,4);
gifCaptcha.setFont(gifCaptcha.FONT_7);
CaptchaUtil.out(gifCaptcha,req, res);
}
@RequestMapping(value = "admin")//管理员登录入口
public String admin(HttpSession session) {
return "loginadmin";
}
@RequestMapping(value = {"index",""})
public ModelAndView index(ModelAndView mav) {
List<Course> freecourses = courseBiz.freeCourse();
List<Course> vipcourses = courseBiz.vipCourse();
mav.addObject("freecourses", freecourses);
mav.addObject("vipcourses", vipcourses);
mav.setViewName("index");
return mav;
}
@RequestMapping(value = "subreview")
// 提交评论
public String subreview(HttpSession session, Review review,HttpServletRequest req) {
User loginUser = (User) session.getAttribute("loginUser");
if (loginUser == null) {
return "login";
}
int vip ;
if(loginUser.getVip()!=null){
vip=1;
}else{
vip=0;
}
Course course = new Course();
course.setId(review.getCourseid());
course.setLabel(reviewBiz.avglable(review.getCourseid()));
courseBiz.updateByPrimaryKeySelective(course);
review.setVip(vip);
review.setSex(loginUser.getSex());
review.setReviewid(DateUtil.getId());
review.setUsername(loginUser.getUsername());
}
if (userBiz.selectUser(username) == 1 || !CaptchaUtil.ver(varcode, req)) {
return mav;
}
user.setId(id);
user.setMission(null);
user.setBuycase(null);
user.setMycase(null);
user.setVip(null);
userBiz.insertSelective(user);
setlog(user, req.getRemoteAddr(), "普通注册");
return mav;
}
@RequestMapping(value = "registerPage")
// 注册
public ModelAndView registerPage(ModelAndView mav, String varcode, User user, HttpSession session, HttpServletRequest req) {
User loginUser = (User) session.getAttribute("loginUser");
mav.setViewName("regist");
if (loginUser == null) {
return mav;
}
mav.setViewName("redirect:course");
return mav;
}
@RequestMapping(value = "showvip")
// 会员中心
public ModelAndView showvip(HttpSession session,ModelAndView mav) {
User loginUser = (User) session.getAttribute("loginUser");
if (loginUser != null) {
loginUser = userBiz.selectByPrimaryKey(loginUser.getId());
session.setAttribute("loginUser", loginUser);
}
mav.setViewName("vip");
return mav;
}
@RequestMapping(value = "mylearn")
// 我的课程查询
public ModelAndView myCourse(HttpSession session, ModelAndView mav) {
User loginUser = (User) session.getAttribute("loginUser");
if (loginUser == null) {
mav.setViewName("login");
return mav;
* @param response
* @return
* @return
*/
public static Object uploadFile(String refilename,HttpServletRequest request){
/*//程序状态
boolean isok = true;*/
// 检测是否为多媒体上传
if (!ServletFileUpload.isMultipartContent(request)) {
// 如果不是则停止
System.err.println("Error: 表单必须包含 enctype=multipart/form-data");
/* PrintWriter writer = response.getWriter();
writer.println("Error: 表单必须包含 enctype=multipart/form-data");
writer.flush();*/
return null;
}
// 配置上传参数
DiskFileItemFactory factory = new DiskFileItemFactory();
// 设置内存临界值 - 超过后将产生临时文件并存储于临时目录中
factory.setSizeThreshold(MEMORY_THRESHOLD);
// 设置临时存储目录
factory.setRepository(new File(System.getProperty("java.io.tmpdir")));
ServletFileUpload upload = new ServletFileUpload(factory);
// 设置最大文件上传值
upload.setFileSizeMax(MAX_FILE_SIZE);
// 设置最大请求值 (包含文件和表单数据)
upload.setSizeMax(MAX_REQUEST_SIZE);
// 中文处理
upload.setHeaderEncoding("UTF-8");
// 构造临时路径来存储上传的文件
// 这个路径相对当前应用的目录
String uploadPath = request.getServletContext().getRealPath("./") + File.separator + UPLOAD_DIRECTORY;
String uploadImagePath = request.getServletContext().getRealPath("./") + File.separator + UPLOADImage_DIRECTORY;
// 如果目录不存在则创建
@Controller
public class AdminController {
@Autowired
UserBiz userBiz;
@Autowired
LogBiz logBiz;
@Autowired
CourseBiz courseBiz;
@Autowired
IpsetBiz ipsetBiz;
public void setlog(User loginUser,String ip,String type,String adminname){
Log log = new Log();
log.setUserid(loginUser.getId());
log.setUsername(loginUser.getUsername());
log.setIp(ip);
log.setType(type);
log.setExecutor(adminname);
logBiz.insert(log);
}
@RequestMapping(value = "adminindex")
public String adminindex(HttpSession session){
User loginUser = (User) session.getAttribute("loginUser");
if (loginUser == null) {
return "login";
}else if(!"admin".equals(loginUser.getMission())&&!"showadmin".equals(loginUser.getMission())){
//添加管理员的再次验证
session.setAttribute("loginUser", loginUser);
return "redirect:course";
}
return "admin/adminindex";
}
@RequestMapping(value = "adminlogin")//管理员登录
public String adminlogin(User user, HttpSession session,HttpServletRequest req) {
Map<String, String> paramMap = new HashMap<String, String>();
paramMap.put("username", user.getUsername());
paramMap.put("password", user.getPassword());
User loginUser = userBiz.selectLoginUser(paramMap);
if (loginUser == null) {
return "login";
}else if(!"admin".equals(loginUser.getMission())&&!"showadmin".equals(loginUser.getMission())){
//添加管理员登录的再次验证,防止直接跳过前端验证进行强制登录
session.setAttribute("page", page);
return "admin/log";
}
logs.add(logss.get(i));
}
session.setAttribute("logs", logs);
session.setAttribute("page", page);
return "admin/log";
}
@RequestMapping(value = "allcourse")//全部课程界面
public String allcourseindex(int page, HttpSession session) {
User loginUser = (User) session.getAttribute("loginUser");
if (loginUser == null) {
return "login";
}else if(!"admin".equals(loginUser.getMission())&&!"showadmin".equals(loginUser.getMission())){
//添加管理员的再次验证
return "redirect:course";
}
List<Course> coursess = courseBiz.selectAllCourse();
int totalpage = 14;//一页的数量
List<Course> courses = new ArrayList<Course>();
session.setAttribute("maxpage", (coursess.size()-1)/totalpage);
for(int i = page*totalpage;i<page*totalpage+totalpage;i++){
if(coursess.size()==i){
session.setAttribute("courses", courses);
session.setAttribute("page", page);
return "admin/allcourse";
}
courses.add(coursess.get(i));
}
session.setAttribute("page", page);
session.setAttribute("courses", courses);
return "admin/allcourse";
}
@RequestMapping(value = "bancourse")//上下架课程
public String bancourse(int type,int courseid, HttpSession session,HttpServletRequest req) {
User loginUser = (User) session.getAttribute("loginUser");
int page = (int) session.getAttribute("page");
String result = "订阅成功!";
User user = (User) session.getAttribute("loginUser");
Course c = courseBiz.selectByPrimaryKey(courseid);
if (user.getVip() == null && "1".equals(c.getType())) {
result = "此课程是会员课程,请购买会员!";
} else {
Message message = new Message();
message.setCourseid(courseid);
message.setUserid(userid);
int i = messageBiz.insert(message);
setlog(user, req.getRemoteAddr(), "订阅课程:" + c.getName());
}
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
out.print(result);
}
@RequestMapping(value = "deleteCourse")
// 删除课程
public String deleteCourse(int courseid, String userid, HttpServletResponse response, HttpServletRequest req)
throws IOException {
Message message = new Message();
message.setCourseid(courseid);
message.setUserid(userid);
PrintWriter out = response.getWriter();
int i = messageBiz.delete(message);
User loginUser = userBiz.selectByPrimaryKey(userid);
Course c = courseBiz.selectByPrimaryKey(courseid);
setlog(loginUser, req.getRemoteAddr(), "取消课程:" + c.getName());
String result = i > 0 ? "true" : "false";
return result;
}
@RequestMapping(value = "info")
//个人信息页面
public String Info(User user, HttpSession session) {
User loginUser = (User) session.getAttribute("loginUser");
if (loginUser == null) {
return "login";
}
return "infoset";
}
@RequestMapping(value = "infoset")
System.out.println(filePath);
// 保存文件到硬盘
item.write(storeFile);
System.out.println("文件上传成功!");
/*request.setAttribute("message",
"文件上传成功!");*/
}
}
}
} catch (Exception ex) {
System.err.println( "错误信息: " + ex.getMessage());
/* request.setAttribute("message",
"错误信息: " + ex.getMessage());*/
}
if(pmap.get("id")!=null&&!pmap.get("id").equals("")) {
course.setId(Integer.parseInt(pmap.get("id")));
}
course.setName(pmap.get("name"));
course.setContext(pmap.get("context"));
course.setType(pmap.get("type"));
course.setPrice("1");
return course;
}
}
// 配置上传参数
DiskFileItemFactory factory = new DiskFileItemFactory();
// 设置内存临界值 - 超过后将产生临时文件并存储于临时目录中
factory.setSizeThreshold(MEMORY_THRESHOLD);
// 设置临时存储目录
factory.setRepository(new File(System.getProperty("java.io.tmpdir")));
ServletFileUpload upload = new ServletFileUpload(factory);
// 设置最大文件上传值
upload.setFileSizeMax(MAX_FILE_SIZE);
// 设置最大请求值 (包含文件和表单数据)
upload.setSizeMax(MAX_REQUEST_SIZE);
// 中文处理
upload.setHeaderEncoding("UTF-8");
// 构造临时路径来存储上传的文件
// 这个路径相对当前应用的目录
String uploadPath = request.getServletContext().getRealPath("./") + File.separator + UPLOAD_DIRECTORY;
String uploadImagePath = request.getServletContext().getRealPath("./") + File.separator + UPLOADImage_DIRECTORY;
// 如果目录不存在则创建
File uploadDir = new File(uploadPath);
File uploadImageDir = new File(uploadImagePath);
if (!uploadDir.exists()) {
uploadDir.mkdir();
}
if (!uploadImageDir.exists()) {
uploadImageDir.mkdir();
}
Map<String,String> pmap = new HashMap<>();
Course course = new Course();
try {
// 解析请求的内容提取文件数据
@SuppressWarnings("unchecked")
List<FileItem> formItems = upload.parseRequest(new ServletRequestContext(request));
if (formItems != null && formItems.size() > 0) {
// 迭代表单数据
out.println("1");// 正常登录密码正确
} else {
out.println("1");
}
} else {
out.println("2");// 管理员返回
}
} else {
Log log = new Log();
log.setIp(req.getRemoteAddr());
log.setType("尝试登录账号:" + user.getUsername() + ",密码错误");
logBiz.insert(log);
out.println("0");//密码错误返回值
}
}
@RequestMapping(value = "usercheck")
// 注册检查
public void Usercheck(String username, HttpSession session, HttpServletResponse response) throws IOException {
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
int i = userBiz.selectUser(username);
out.println(i);
}
@RequestMapping(value = "quickregist")
// 快速注册
public ModelAndView insertUser(String varcode, User user, HttpSession session, HttpServletRequest req, ModelAndView mav) {
String id = DateUtil.getId();
String username = user.getUsername();
mav.setViewName("redirect:course");
if (varcode == null) {
return mav;
}
if (userBiz.selectUser(username) == 1 || !CaptchaUtil.ver(varcode, req)) {
return mav;
}
user.setId(id);
user.setMission(null);
user.setBuycase(null);
private static final int MAX_FILE_SIZE = 1024 * 1024 * 500; // 500MB
private static final int MAX_REQUEST_SIZE = 1024 * 1024 * 500; // 500MB
/**
* 方法uploadFile("保存的文件名",HttpServletRequest,HttpServletResponse)
* @param refilename
* @param request
* @param response
* @return
* @return
*/
public static Object uploadFile(String refilename,HttpServletRequest request){
/*//程序状态
boolean isok = true;*/
// 检测是否为多媒体上传
if (!ServletFileUpload.isMultipartContent(request)) {
// 如果不是则停止
System.err.println("Error: 表单必须包含 enctype=multipart/form-data");
/* PrintWriter writer = response.getWriter();
writer.println("Error: 表单必须包含 enctype=multipart/form-data");
writer.flush();*/
return null;
}
// 配置上传参数
DiskFileItemFactory factory = new DiskFileItemFactory();
// 设置内存临界值 - 超过后将产生临时文件并存储于临时目录中
factory.setSizeThreshold(MEMORY_THRESHOLD);
// 设置临时存储目录
factory.setRepository(new File(System.getProperty("java.io.tmpdir")));
ServletFileUpload upload = new ServletFileUpload(factory);
// 设置最大文件上传值
upload.setFileSizeMax(MAX_FILE_SIZE);
// 设置最大请求值 (包含文件和表单数据)
upload.setSizeMax(MAX_REQUEST_SIZE);
// 中文处理
upload.setHeaderEncoding("UTF-8");
// 构造临时路径来存储上传的文件
// 这个路径相对当前应用的目录
String uploadPath = request.getServletContext().getRealPath("./") + File.separator + UPLOAD_DIRECTORY;
Log log = new Log();
log.setId(courseid);
log.setExecutor(loginUser.getUsername());
log.setIp(req.getRemoteAddr());
if(type==1) {//下架课程
course.setPrice("1");
log.setType("下架课程:"+course.getName());
}
if(type==0) {//上架课程
course.setPrice("0");
log.setType("上架课程:"+course.getName());
}
logBiz.insert(log);
courseBiz.updateByPrimaryKeySelective(course);
return "redirect:allcourse?page="+page;
}
@RequestMapping(value = "deletecourse")//删除课程
public void deletecourse(int courseid, String removepassword,HttpSession session,HttpServletRequest req,HttpServletResponse resp) throws IOException {
User loginUser = (User) session.getAttribute("loginUser");
resp.setCharacterEncoding("utf-8");
PrintWriter pw = resp.getWriter();
if(!removepassword.equals("591284209")){
pw.print("0");
}else{
Course course = courseBiz.selectByPrimaryKey(courseid);
courseBiz.deleteByPrimaryKey(String.valueOf(courseid));
Log log = new Log();
log.setId(courseid);
log.setExecutor(loginUser.getUsername());
log.setIp(req.getRemoteAddr());
log.setType("删除课程:"+course.getName());
logBiz.insert(log);
pw.print("课程:"+course.getName()+",删除成功!请刷新页面后操作");
}
}
@RequestMapping(value = "allip")//展示所有IP信息
public String allip(int page, HttpSession session) {
User loginUser = (User) session.getAttribute("loginUser");
@Controller
public class UserController {
@Autowired
UserBiz userBiz;
@Autowired
CourseBiz courseBiz;
@Autowired
MessageBiz messageBiz;
@Autowired
ReviewBiz reviewBiz;
@Autowired
LogBiz logBiz;
/**
* 普通日志写入
*
pw.print("0");
}else{
User user = userBiz.selectByPrimaryKey(userid);
userBiz.deleteByPrimaryKey(userid);
setlog(user,req.getRemoteAddr(),"删除用户",loginUser.getUsername());
pw.print("账户:"+userid+",删除成功");
List<User> users = userBiz.selectAllUser();
session.setAttribute("users", users);
}
}
@RequestMapping(value = "showlog")//日志查看
public String showlog(String seachusername,String type, HttpSession session) {
User loginUser = (User) session.getAttribute("loginUser");
if (loginUser == null) {
return "login";
}else if(!"admin".equals(loginUser.getMission())&&!"showadmin".equals(loginUser.getMission())){
//添加管理员的再次验证
return "redirect:course";
}
List<Log> logs;
if(seachusername!=null&&type==null){
logs = logBiz.selectbyusername(seachusername);
session.setAttribute("logss", logs);
session.removeAttribute("type");
session.setAttribute("logs", initlogpage(logs));
session.setAttribute("maxpage", (logs.size()-1)/15);//10为每页个数
session.setAttribute("page", 0);
return "admin/log";
}
if(type!=null&&seachusername==null){
logs = logBiz.selectadminlog();
session.setAttribute("type", "admin");
session.setAttribute("logss", logs);
session.setAttribute("logs", initlogpage(logs));
session.setAttribute("maxpage", (logs.size()-1)/15);
session.setAttribute("page", 0);
return "admin/log";
}
if(type==null){
logs = logBiz.select();
session.removeAttribute("type");
session.setAttribute("logss", logs);
session.setAttribute("logs", initlogpage(logs));
session.setAttribute("maxpage", (logs.size()-1)/15);
@Controller
public class AdminController {
@Autowired
UserBiz userBiz;
@Autowired
LogBiz logBiz;
@Autowired
CourseBiz courseBiz;
@Autowired
IpsetBiz ipsetBiz;
public void setlog(User loginUser,String ip,String type,String adminname){
Log log = new Log();
log.setUserid(loginUser.getId());
log.setUsername(loginUser.getUsername());
log.setIp(ip);
log.setType(type);
log.setExecutor(adminname);
logBiz.insert(log);
}
@RequestMapping(value = "adminindex")
public String adminindex(HttpSession session){
User loginUser = (User) session.getAttribute("loginUser");
if (loginUser == null) {
return "login";
}else if(!"admin".equals(loginUser.getMission())&&!"showadmin".equals(loginUser.getMission())){
//添加管理员的再次验证
session.setAttribute("loginUser", loginUser);
return "redirect:course";
}
return "admin/adminindex";
}
}else{
vip=0;
}
Course course = new Course();
course.setId(review.getCourseid());
course.setLabel(reviewBiz.avglable(review.getCourseid()));
courseBiz.updateByPrimaryKeySelective(course);
review.setVip(vip);
review.setSex(loginUser.getSex());
review.setReviewid(DateUtil.getId());
review.setUsername(loginUser.getUsername());
reviewBiz.insert(review);
setlog(loginUser, req.getRemoteAddr(), "发表评论,在'"+courseBiz.selectByPrimaryKey(review.getCourseid()).getName() +"'");
return "redirect:coursevideo?courseid=" + review.getCourseid();
}
@RequestMapping(value = "review")
// 查看评论
public ModelAndView review(ModelAndView mav, int courseid) {
List<Review> reviews = reviewBiz.select(courseid);
mav.addObject("reviews", reviews);
mav.setViewName("redirect:coursevideo");
return mav;
}
@RequestMapping(value = "coursesearch")
// 查找课程
public String coursesearch(String search, Map map) {
List<Course> courses = courseBiz.coursesearch(search);
map.remove(courses);
map.put("courses", courses);
map.put("search", search);
return "courseindex";
}
@RequestMapping("/error/{errorcode}")
public String error(@PathVariable int errorcode) {
String pager = "404";
switch (errorcode) {
case 404:
pager = "404";
break;
case 500:
pager = "500";
break;
}
return pager;
}
/*@RequestMapping(value="testfile")
public String testfile(HttpSession session,HttpServletRequest request,HttpServletResponse response) {
if(!UploadFile.uploadFile("20",request)) {
session.setAttribute("message", "上传失败!");