团队冲刺阶段-个人博客
我完成的成就
完成学生页面前端代码的美化和编写。
花费了三个小数。
后面预计再花费2小时将学生前端页面与另外一名同学编辑的主页面进行连接实现,基本功能。
遇到的困难:
如何将学生的作业以文档形式上传储存
解决方法:
采用如下步骤:
创建文件上传表单
在前端页面中创建一个文件上传的表单,以便学生可以选择需要上传的文件。可以使用HTML中的<form>标签来创建表单,设置enctype属性为multipart/form-data,并使用<input>标签的type属性设置为“file”来创建文件上传字段。
处理上传文件
在服务器端,在接受到请求时,需要处理学生上传的文件。通过在JSP页面中使用Java Servlet技术,可以处理文件上传请求,使用组合stream(流),以二进制形式读取上传的文件,并保存在服务器上的指定位置。
储存文件信息
在保存文件之后,需要将上传的文件信息储存在数据库中。为了实现这一功能,需要创建一个用于将文件相关信息(文件名、上传时间、上传者姓名等)保存到数据库中的Java类。
实现下载功能
为学生提供这些保存在服务器上的文件,需要实现文件下载功能。可以使用Java Servlet技术来提供文件下载。例如,在点击“下载”按钮时,使用文件的唯一标识符从数据库中检索文件信息,使用流(stream)将文件发送到客户端。
综上所述,可以使用Java和JSP技术来实现学生作业在网站中以文档形式上传储存。需要完成文件上传表单的创建,文件处理的编写,文件信息存储的编写和文件下载的实现。
今日任务:
和小组将前端后端代码进行整合。
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { // 检查是否是文件上传请求 boolean isMultipart = ServletFileUpload.isMultipartContent(request); if (!isMultipart) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Request is not multipart"); return; } // 创建文件上传对象 ServletFileUpload upload = new ServletFileUpload(); // 解析上传的文件 FileItemIterator iter = upload.getItemIterator(request); while (iter.hasNext()) { FileItemStream item = iter.next(); String name = item.getFieldName(); InputStream stream = item.openStream(); if (item.isFormField()) { // 处理普通表单字段 String value = new BufferedReader(new InputStreamReader(stream)).readLine(); System.out.println("Form field " + name + " with value " + value + " detected."); } else { // 处理上传的文件 String fileName = item.getName(); if (fileName != null) { fileName = FilenameUtils.getName(fileName); FileOutputStream fileOut = new FileOutputStream("path/to/save/" + fileName); IOUtils.copy(stream, fileOut); fileOut.close(); System.out.println("File " + fileName + " has been uploaded."); // 储存文件信息 FileDao fileDao = new FileDao(); Date date = new Date(); Timestamp timestamp = new Timestamp(date.getTime()); fileDao.saveFile(fileName, "uploader", timestamp); } } } } catch (Exception e) { e.printStackTrace(); response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); return; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现