JavaWeb+MySQL+MVC三层架构实现课程管理系统(1)

String strPageNumb = req.getParameter(“pageNumb”);

Integer pageNumb = 1;

if (!StringUtils.isEmpty(strPageNumb) && NumberUtils.isDigits(strPageNumb)) {

pageNumb = Integer.valueOf(strPageNumb);

}

PageInfo pager = courseService.queryList(pageNumb, PAGE_SIZE, courseName, cid, min, max);

List categoryList = categoryService.queryList();

req.setAttribute(“courseName”, courseName);

req.setAttribute(“cid”, cid);

req.setAttribute(“min”, min);

req.setAttribute(“max”, max);

req.setAttribute(“categoryList”, categoryList);

req.setAttribute(“pager”, pager);

req.getRequestDispatcher(“/WEB-INF/list.jsp”)

.forward(req, resp);

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public void add(HttpServletRequest req, HttpServletResponse resp) {

try {

List categoryList = categoryService.queryList();

req.setAttribute(“categoryList”, categoryList);

req.getRequestDispatcher(“/WEB-INF/add.jsp”)

.forward(req, resp);

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public void edit(HttpServletRequest req, HttpServletResponse resp) {

try {

String id = req.getParameter(“id”);

Course course = courseService.getById(id);

List categoryList = categoryService.queryList();

req.setAttribute(“categoryList”, categoryList);

req.setAttribute(“course”, course);

req.getRequestDispatcher(“/WEB-INF/edit.jsp”)

.forward(req, resp);

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

FileUploadUtils

文件工具上传类,该类封装了上传文件方法

public class FileUploadUtils extends HttpServlet{

/**

  • @param basePath 用户指定的上传目录

  • @return 返回上传之后的文件名称

  • @throws FileUploadException

*/

public static String upload(String basePath,HttpServletRequest req) throws Exception{

//1. 先上传文件,并返回上传的文件名称,便于将来通过名字找到该文件

DiskFileItemFactory factory = new DiskFileItemFactory();

ServletFileUpload fileUpload = new ServletFileUpload(factory);

//将request请求的内容解析成List集合 {input[type=file],input[type=text],}

List list = fileUpload.parseRequest(req);

String dbpath = “”;

for(FileItem item:list){

if(item.isFormField()){

//普通的文本框:

String fieldName = item.getFieldName(); //获取字段名 username\route_id

String fieldValue = item.getString(“UTF-8”);//获取字段值 张三丰

req.setAttribute(fieldName, fieldValue);

}else{

//文件上传框

//1. 获取文件输入流

InputStream input = item.getInputStream();

if(input.available() > 0){

//2. 获取文件输出流

//String basePath = “D:/uploads/”;

//确定目标文件名

String destFileName = UUID.randomUUID().toString().replace(“-”, “”);

//确定目标文件后缀:.png .jpg .gif

String originName = item.getName();

String suffix = originName.substring(originName.lastIndexOf(“.”));

//保存到数据库中的相对路径

dbpath = destFileName+suffix;

//如果当前文件的父级目录不存在,则创建

File destFile = new File(basePath+dbpath);

if(!destFile.getParentFile().isDirectory()){

destFile.getParentFile().mkdirs();

}

//创建文件输出流

FileOutputStream output = new FileOutputStream(destFile);

//3. 开始读写(上传、拷贝)

byte[] arr = new byte[1024];

int res = 0;

while( (res = input.read(arr)) > 0){

output.write(arr, 0, res);

}

//关闭资源

input.close();

output.close();

}

}

}

return dbpath; // 返回文件名称

}

}

前端部分代码

list.jsp

<%@ page language=“java” contentType=“text/html; charset=UTF-8”

pageEncoding=“UTF-8”%>

<%@taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%>

<%

request.setAttribute(“APP_PATH”, request.getContextPath());

%>

Document

课程列表

请选择

<c:forEach items=“${categoryList }” var=“cat”>

</c:forEach>

-

添加课程

课程序号 课程名称 分类名称 总课时 课程价格 课程封面 购买数量 观看数量 状态 操作

<c:forEach items=“${pager.courseList }” var=“course”>

${course.id }

${course.course_name }

${course.cat_name }

${course.lesson_nums }

${course.price }

${course.buy_count }

${course.view_count }

<c:if test=“${course.status == 0 }”>已下架</c:if>

<c:if test=“${course.status == 1 }”>已上架</c:if>

修改 

删除

</c:forEach>

    上一页

    <c:forEach begin=“1” end=“${pager.pageCount }” var=“i”>

    ${i}

    </c:forEach>

    下一页

    p a g e r . t o t a l 条记录,分 {pager.total}条记录,分 pager.total条记录,分{pager.pageCount}页显示

    add.jsp

    注意:form表单需加 enctype=“multipart/form-data”

    将表单设置为支持图片上传

    <%@ page language=“java” contentType=“text/html; charset=UTF-8”

    pageEncoding=“UTF-8”%>

    <%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>

    <%

    request.setAttribute(“APP_PATH”, request.getContextPath());

    %>

    Document

    添加课程

    enctype=“multipart/form-data”>

    请选择

    <c:forEach items=“${categoryList }” var=“cat”>

    ${cat.cat_name }

    </c:forEach>

    最后

    自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

    深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

    因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

    既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

    如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

    由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
    er">课程封面图:

    最后

    自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

    深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

    因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

    [外链图片转存中…(img-KwSi1G6d-1715352520733)]

    [外链图片转存中…(img-Myrgeibn-1715352520733)]

    [外链图片转存中…(img-FhWDruHc-1715352520733)]

    既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

    如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

    由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值