安徽商贸职业技术学院
response.getWriter().print(\指定文件不存在!\); return; }
// 读取文件名:用于设置客户端保存时指定默认文件名
int index = path.lastIndexOf(\); // 前提:传入的path字符串以“\\”
表示目录分隔符 System.out.println(index); String fileName = path.substring(index + 1); System.out.println(fileName);
// 写流文件到前端浏览器
ServletOutputStream out = response.getOutputStream(); response.setHeader(\, \ + fileName);
bis = new BufferedInputStream(new FileInputStream(\+path));
bos = new BufferedOutputStream(out); byte[] buff = new byte[2048]; int bytesRead;
while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) { bos.write(buff, 0, bytesRead); }
} catch (IOException e) {
e.printStackTrace(); } finally {
if (bis != null) try { bis.close();
} catch (IOException e1) {
// TODO Auto-generated catch block e1.printStackTrace(); } if (bos != null)
try { bos.close();
} catch (IOException e) {
// TODO Auto-generated catch block e.printStackTrace();
}
}
}
- 35 -
安徽商贸职业技术学院
3.教师批改作业界面如图4-10所示:
图4-10教师批改作业界面
重点代码如下:
private void docomment(HttpServletRequest request,
HttpServletResponse response) { // TODO Auto-generated method stub boolean flag=false; boolean flag1=false; try {
PrintWriter out=response.getWriter(); HttpSession session=request.getSession(); request.setCharacterEncoding(\);
Comment comment=new Comment();
response.setContentType(\); String userid=request.getParameter(\); System.out.println(\+userid);
String jobid=request.getParameter(\); System.out.println(\+jobid);
String score=request.getParameter(\); String content=request.getParameter(\); comment.setContent(content);
- 36 -
安徽商贸职业技术学院
comment.setJobid(Integer.parseInt(jobid)); comment.setScore(Integer.parseInt(score)); comment.setUserid(Integer.parseInt(userid)); flag=commentdao.AddComment(comment); System.out.println(\+flag);
flag1=jobdao.updateStatue(\, Integer.parseInt(jobid));
if(flag&&flag1){
out.print(\评论成功')\);
request.getRequestDispatcher(\
obid=\+jobid+\).forward(request, response);
}
}
} catch (Exception e) { }
// TODO Auto-generated catch block e.printStackTrace();
}
(三)学生模块设计
学生模块主要实现对上传作业、查看作业评价、向老师提问、和查看个人信息、改密码、查看公告等等。
1.学生上传作业界面如图4-11所示:
- 37 -
安徽商贸职业技术学院
图4-11学生上传作业界面
重点代码如下:
private void doaddJob(HttpServletRequest request,
// 解析表单数据,返回一个集合
@SuppressWarnings(\)
List
HttpServletResponse response) { // TODO Auto-generated method stub PrintWriter out = null; try {
out = response.getWriter();
response.setContentType(\);
HttpSession session = request.getSession() ; out.println(\); // 创建一个磁盘文件的工厂
DefaultFileItemFactory factory = new
request.setCharacterEncoding(\);
DefaultFileItemFactory();
// 创建一个用于解析文件的文件上传处理类
DiskFileUpload upload = new DiskFileUpload(factory);
- 38 -
安徽商贸职业技术学院
String path=null; String pcname=null; int pcid=0;
String fileUploadName =null;
for (FileItem item : items) {
if (!item.isFormField()) { // 判断一个表单元素是一个文件域元
素
job.setJobname(jobName); job.setPath(path);
// 得到文件域提交的文件的带路径的名称 String fileName = item.getName();
System.out.println(\+fileName); // 获取文件不到路径的名称,作为上传后文件的名称
fileUploadName = fileName.substring(fileName
// 设置一个上传文件的保存路径
String fileUpLoadPath=\;
File file = new File(fileUpLoadPath); if (!file.exists()) { }
// 将文件写到指定的路径下
item.write(new File(fileUpLoadPath, path = \+fileUploadName; }else { }
if(item.getFieldName().equals(\)) }
System.out.println(\+pcname); if(item.getFieldName().equals(\))
jobName = item.getString(\);
pcname = item.getString(\);
System.out.println(\); file.mkdir();
.lastIndexOf(\) + 1);
System.out.println(\+fileUploadName);
System.out.println(\+fileUpLoadPath);
fileUploadName));
System.out.println(\+jobName);
int userid
=Integer.parseInt( session.getAttribute(\).toString());
- 39 -