使用vue+servlet构建学生信息管理带文件上传.docx
- 文档编号:18015238
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:50
- 大小:257.68KB
使用vue+servlet构建学生信息管理带文件上传.docx
《使用vue+servlet构建学生信息管理带文件上传.docx》由会员分享,可在线阅读,更多相关《使用vue+servlet构建学生信息管理带文件上传.docx(50页珍藏版)》请在冰点文库上搜索。
使用vue+servlet构建学生信息管理带文件上传
一、使用VUE构建学生信息管理
1.1.在当前项目中导入javaee组件库、comm组件库、mysql驱动包、fastjson.jar。
1.2.在当前项目的web目录下建立js文件夹,将jQuery1.9.1.js复制到js目录下,拷贝vue文件夹到web目录下。
1.3.将以前构建的学生信息管理的项目源代码以及html文件全部复制到对应的目录下
1.4.修改Servlet类,将向客户端传递的数据全部转为json字符串使用out对象输出到客户端(out.print(...))。
1.5.在student,html页面引入vue组件和jQuery组件。
接收服务器Servlet返回的json对象或者结果码。
二、实施步骤
2.1.新建项目引入组件包
导入jar包后的目录结构
2.2.将源代码复制到指定的包中
拷贝完成以后的文件夹结构
确定上传的文件路径和以前一致
2.3.在web目录下将jQuery和vue复制到此目录下
2.4.修改StudentServlet,将封装的学生对象以及学生集合和班级集合转为JSON字符串输出。
packagecom.servlet;
importjavax.servlet.ServletException;
importjavax.servlet.annotation.WebServlet;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjavax.servlet.http.HttpSession;
importjava.io.*;
importjava.io.PrintWriter;
importjava.util.*;
importcom.alibaba.fastjson.JSONObject;
importcom.bean.*;
importcom.biz.StudentBiz;
importcom.biz.StudentBizImp;
importmons.fileupload.FileItem;
importmons.fileupload.FileUploadException;
importmons.fileupload.disk.DiskFileItemFactory;
importmons.fileupload.servlet.ServletFileUpload;
@WebServlet(name="StudentServlet",urlPatterns={"/studentServlet"})
publicclassStudentServletextendsHttpServlet{
//创建业务对象
privateStudentBizsbiz=newStudentBizImp();
protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
response.setContentType("text/html");
PrintWriterout=response.getWriter();
/*********************************************************/
//获取操作码
Stringscode=request.getParameter("code");
intcode=Integer.parseInt(scode);
HttpSessionsession=request.getSession();
DiskFileItemFactorydiskFileItemFactory=newDiskFileItemFactory();
Studentst=null;
try{
switch(code){
case1:
//增加
/****************************文件上传处理***********************/
ServletFileUploadservletFileUpload=newServletFileUpload(diskFileItemFactory);
//解析请求,获取上传的选项列表
List
st=newStudent();//创建学生对象
for(FileItemitem:
fileItems){//从集合中获取上传选项
if(item.isFormField()){//判断是不是普通的表单元素
//获取表单元素的名称,sname表单元素
StringfieldName=item.getFieldName();
if(fieldName.equals("sname")){
Stringsname=item.getString("utf-8");//获取学生的名称
System.out.println("sname-->"+sname);
st.setSname(sname);
}
if(fieldName.equals("sex")){
Stringsex=item.getString("utf-8");//获取学生的性别
System.out.println("sex-->"+sex);
st.setSex(sex);
}
if(fieldName.equals("address")){
Stringaddress=item.getString("utf-8");//获取学生的地址
System.out.println("address-->"+address);
st.setAddress(address);
}
if(fieldName.equals("birthday")){
Stringbirthday=item.getString("utf-8");//获取学生的生日
System.out.println("birthday-->"+birthday);
st.setBirthday(birthday);
}
if(fieldName.equals("cid")){
Stringcid=item.getString("utf-8");//获取学生的班级
System.out.println("cid-->"+cid);
st.setCid(newInteger(cid));//设置到学生对象
}
}else{//是文件域
//获取上传文件的大小
longfilesize=item.getSize();
if(filesize>300*1024){//上传的文件大小不能超过300K
out.print("文件超出限制,不能上传!
");
return;
}
//获取上传文件的字节数组
byte[]b=item.get();
System.out.println("文件字节数--->"+b.length);
if(b.length==0){//没有照片上传文件
st.setPhoto("default.jpg");//设置照片是默认的照片
}else{//有上传的照片
//获取上传在服务器上的物理路径
Stringrealpath=getServletContext().getRealPath("/");
//获取上传的文件名称
Stringfname=item.getName();//获取文件名称
if(fname.lastIndexOf(".")==-1){
out.print("文件没有后缀,请
");
return;
}
//获取文件的后缀
Stringext=fname.substring(fname.lastIndexOf("."));
System.out.println("后缀名:
"+ext);
//判断上传的文件是不是.jpg格式,只允许上传jpg格式的文件
if(ext.equalsIgnoreCase(".jpg")){
//给上传的文件改名
Stringnewfname=newDate().getTime()+ext;
System.out.println("新的文件名:
"+newfname);
//创建文件对象,指定上传文件的存储位置
FiledestFile=newFile(realpath+"/uploadpic/"+newfname);
FileOutputStreamfout=newFileOutputStream(destFile);
BufferedOutputStreambout=newBufferedOutputStream(fout);
bout.write(b);//将照片写入到指定的文件夹
bout.flush();
bout.close();
st.setPhoto(newfname);//保存照片名称到数据库
}else{
out.print("文件必须是jpg格式,请
");
return;
}
}
}
}
/*****************************************************/
System.out.println("servlet----st--->"+st);
System.out.println("servlet--st--sname--->"+st.getSname());
//保存学生
booleanflag=sbiz.save(st);
if(flag){
//response.sendRedirect("studentServlet?
code=5");
out.print("1");//1--表示保存成功
return;
}else{
out.print("0");
}
break;
case2:
//修改
/****************************文件上传处理***********************/
servletFileUpload=newServletFileUpload(diskFileItemFactory);
//解析请求,获取上传的选项列表
fileItems=servletFileUpload.parseRequest(request);
st=newStudent();//创建学生对象
for(FileItemitem:
fileItems){//从集合中获取上传选项
if(item.isFormField()){//判断是不是普通的表单元素
//获取表单元素的名称,sname表单元素
StringfieldName=item.getFieldName();
if(fieldName.equals("sid")){
Stringsid=item.getString("utf-8");//获取学生的编号
System.out.println("sid-->"+sid);
st.setSid(Integer.parseInt(sid));
}
if(fieldName.equals("sname")){
Stringsname=item.getString("utf-8");//获取学生的名称
System.out.println("sname-->"+sname);
st.setSname(sname);
}
if(fieldName.equals("sex")){
Stringsex=item.getString("utf-8");//获取学生的性别
System.out.println("sex-->"+sex);
st.setSex(sex);
}
if(fieldName.equals("address")){
Stringaddress=item.getString("utf-8");//获取学生的地址
System.out.println("address-->"+address);
st.setAddress(address);
}
if(fieldName.equals("birthday")){
Stringbirthday=item.getString("utf-8");//获取学生的生日
System.out.println("birthday-->"+birthday);
st.setBirthday(birthday);
}
if(fieldName.equals("cid")){
Stringcid=item.getString("utf-8");//获取学生的班级
System.out.println("cid-->"+cid);
st.setCid(newInteger(cid));//设置到学生对象
}
}else{//是文件域
//获取上传文件的大小
longfilesize=item.getSize();
if(filesize>300*1024){//上传的文件大小不能超过300K
//out.print("文件超出限制,不能上传!
");
out.print("4");//4表示文件大小超出限制,不能大于300k
return;
}
//获取上传文件的字节数组
byte[]b=item.get();
System.out.println("文件字节数--->"+b.length);
if(b.length==0){//没有照片上传文件
//获取原来的学生照片
Stringphoto=sbiz.findById(st.getSid()).getPhoto();
st.setPhoto(photo);//设置原来学生的照片
}else{//有上传的照片
//获取上传在服务器上的物理路径
Stringrealpath=getServletContext().getRealPath("/");
//获取上传的文件名称
Stringfname=item.getName();//获取文件名称
if(fname.lastIndexOf(".")==-1){
//out.print("文件没有后缀,请
");
out.print("3");//3表示上传文件没有后缀
return;
}
//获取文件的后缀
Stringext=fname.substring(fname.lastIndexOf("."));
System.out.println("后缀名:
"+ext);
//判断上传的文件是不是.jpg格式,只允许上传jpg格式的文件
if(ext.equalsIgnoreCase(".jpg")){
//给上传的文件改名
Stringnewfname=newDate().getTime()+ext;
System.out.println("新的文件名:
"+newfname);
//创建文件对象,指定上传文件的存储位置
FiledestFile=newFile(realpath+"/uploadpic/"+newfname);
FileOutputStreamfout=newFileOutputStream(destFile);
BufferedOutputStreambout=newBufferedOutputStream(fout);
bout.write(b);//将照片写入到指定的文件夹
bout.flush();
bout.close();
st.setPhoto(newfname);//保存照片名称到数据库
}else{
out.print("2");//2表示文件必须是jpg格式
return;
}
}
}
}
/*****************************************************/
System.out.println("servlet----st--->"+st);
System.out.println("servlet--st--sname--->"+st.getSname());
//更新学生
flag=sbiz.update(st);
if(flag){
//response.sendRedirect("studentServlet?
code=5");
out.print("1");//1更新成功
return;
}else{
//out.print("更新失败!
");
out.print("0");
}
break;
case3:
//删除
Stringsid=request.getParameter("sid");//获取删除的学生编号
flag=sbiz.delById(Integer.parseInt(sid));
if(flag){
//response.sendRedirect("studentServlet?
code=5");
out.print("1");
return;
}else{
//out.print("删除失败!
");
out.print("0");
}
break;
case4:
//查找
sid=request.getParameter("sid");//获取查找的学生编号
Studentoldst=sbiz.findById(Integer.parseInt(sid));
//session.setAttribute("oldst",oldst);
//response.sendRedirect("studentupdate.jsp");
//将oldst对象转为json字符串,输出到客户端
Stringoldstjsonstring=JSONObject.toJSONString(oldst);
out.print(oldstjsonstring);
break;
case5:
//分页显示
//初始化班级列表
List
session.setAttribute("lsca",lsca);
/************************************************************/
//从session中获取分页的实体对象
PageBeanpb=(PageBean)session.getAttribute("pb");
if(pb==null){
pb=newPageBean();
}
//获取当前页数
Stringspage=request.getParameter("page");
if(spage==null){
spage=""+pb.getPage();
}
intcurrpage=Integer.parseInt(spage);
if(currpage<1)currpage=1;
//获取每页记录数
StringspageSize=request.getParameter("pagesize");
if(spageSize==null){
spageSize=pb.getPagesize()+"";
}
intpagesize=Integer.parseInt(spageSize);
if(pagesize>20)pagesize=20;//限制每页记录数为20条记录
//获取总记录数
intmaxrow=sbiz.findMaxRow();
//获取总页数
intmaxpage=maxrow%pagesize==0?
maxrow/pagesize:
maxrow/pagesize+1;
if(currpage>maxpage){
currpage=maxpage;
}
//获取每页的记录集合
List
//封装分页的数据到分页的实体对象中
pb.setPage(currpage);
pb.setMaxpage(maxpage);
pb.setPagesize(pagesize);
pb.setPagelist(lsst);
session.setAttribute("pb",pb);
//response.sendRedirect("studentlist.jsp");
//将pb对象转为json字符串
StringpbjsonString=JSONObject.toJSONString(pb);
out.print(pbjsonString);//将pagebean的json对象字符串输出到客户端显示
/************************************************************/
break;
case6:
//班级列表显示
lsca=sbiz.findClazzAll();
//session.setAttribute("lsca",lsca);
//response.sendRedirect("studentadd.jsp");
//将班级列表集合转为json字符串
StringlscajsonString=JSONObject.toJSONString(lsca);
out.print(lscajsonString);//输出到客户端
break;
case7:
//查找详细信息
sid=request.getParameter("sid");//获取查找的学生编号
Student
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 使用 vue servlet 构建 学生 信息管理 文件 上传