From b9d60e644b730bf3e356fd0b49d2e1b5e450526f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=E5=98=89=E9=98=B3?= Date: Sat, 3 Feb 2018 20:44:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E6=96=87=E4=BB=B6=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E5=92=8C=E6=95=B0=E6=8D=AE=E5=BA=93=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E3=80=81Element+vue=E7=99=BB=E5=BD=95=E6=B3=A8=E5=86=8CUI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../spring/controller/DownLoadController.java | 94 ++++++++++ .../spring/controller/LoginController.java | 2 +- .../spring/controller/RegisterController.java | 34 ++++ .../spring/controller/UpLoadController.java | 175 ++++++++++++++++++ .../java/com/fjy/spring/domain/TbFile.java | 93 ++++++++++ .../java/com/fjy/spring/domain/TbUser.java | 6 +- .../java/com/fjy/spring/enums/ResultEnum.java | 14 +- .../spring/properties/ServerProperties.java | 18 ++ .../spring/repository/TbFileRepository.java | 10 + .../com/fjy/spring/service/FileService.java | 35 ++++ .../com/fjy/spring/service/UserService.java | 21 ++- .../fjy/spring/untils/FormatFileSizeUtil.java | 25 +++ .../com/fjy/spring/untils/ResultUtil.java | 7 + src/main/resources/application-dev.yml | 7 +- src/main/resources/templates/home.html | 12 -- src/main/resources/templates/home/home.html | 75 ++++++++ src/main/resources/templates/index.html | 14 ++ src/main/resources/templates/login.html | 99 +++++++++- src/main/resources/templates/moreUpload.html | 26 +++ .../resources/templates/moreUploadResult.jsp | 28 +++ src/main/resources/templates/oneUpload.html | 31 ++++ .../controller/LoginControllerTest.java | 6 +- .../controller/RegisterControllerTest.java | 38 ++++ 23 files changed, 846 insertions(+), 24 deletions(-) create mode 100644 src/main/java/com/fjy/spring/controller/DownLoadController.java create mode 100644 src/main/java/com/fjy/spring/controller/RegisterController.java create mode 100644 src/main/java/com/fjy/spring/controller/UpLoadController.java create mode 100644 src/main/java/com/fjy/spring/domain/TbFile.java create mode 100644 src/main/java/com/fjy/spring/properties/ServerProperties.java create mode 100644 src/main/java/com/fjy/spring/repository/TbFileRepository.java create mode 100644 src/main/java/com/fjy/spring/service/FileService.java create mode 100644 src/main/java/com/fjy/spring/untils/FormatFileSizeUtil.java delete mode 100644 src/main/resources/templates/home.html create mode 100644 src/main/resources/templates/home/home.html create mode 100644 src/main/resources/templates/index.html create mode 100644 src/main/resources/templates/moreUpload.html create mode 100644 src/main/resources/templates/moreUploadResult.jsp create mode 100644 src/main/resources/templates/oneUpload.html create mode 100644 src/test/java/com/fjy/spring/controller/RegisterControllerTest.java diff --git a/src/main/java/com/fjy/spring/controller/DownLoadController.java b/src/main/java/com/fjy/spring/controller/DownLoadController.java new file mode 100644 index 0000000..18945ae --- /dev/null +++ b/src/main/java/com/fjy/spring/controller/DownLoadController.java @@ -0,0 +1,94 @@ +package com.fjy.spring.controller; + +import com.fjy.spring.domain.TbFile; +import com.fjy.spring.enums.ResultEnum; +import com.fjy.spring.exception.UserException; +import com.fjy.spring.service.FileService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.List; + +@Controller +public class DownLoadController { + @Autowired + private FileService fileService; + + @GetMapping("/download") + public String toDownloadPage(){ + return "download"; + } + + @GetMapping("/download/findall") + @ResponseBody + public List toDownloadAll(){ + List files = fileService.findAllFile();//此处做空指针判断并抛出错误 + if (files!=null) + return files; + new UserException(ResultEnum.EMPTY_DATA); + return null; + } + + @RequestMapping("/download/dodownload") + public String download(@RequestParam String fileName , HttpServletRequest request, HttpServletResponse response){ + + response.setContentType("text/html;charset=utf-8"); + try { + request.setCharacterEncoding("UTF-8"); + } catch (UnsupportedEncodingException e1) { + e1.printStackTrace(); + } + java.io.BufferedInputStream bis = null; + java.io.BufferedOutputStream bos = null; + + TbFile file = new TbFile(); + file.setColfilename(fileName); + + TbFile tbFile = fileService.findFile(file); + + System.out.println(tbFile.getColfilepath()); + + String ctxPath = tbFile.getColfilepath(); + String downLoadPath = ctxPath + fileName; + System.out.println(downLoadPath); + try { + long fileLength = new File(downLoadPath).length(); + response.setContentType("application/x-msdownload;"); + response.setHeader("Content-disposition", "attachment; filename=" + new String(fileName.getBytes("utf-8"), "ISO8859-1")); + response.setHeader("Content-Length", String.valueOf(fileLength)); + bis = new BufferedInputStream(new FileInputStream(downLoadPath)); + bos = new BufferedOutputStream(response.getOutputStream()); + byte[] buff = new byte[2048]; + int bytesRead; + while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) { + bos.write(buff, 0, bytesRead); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (bis != null) + try { + bis.close(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + if (bos != null) + try { + bos.close(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + return null; + + } +} diff --git a/src/main/java/com/fjy/spring/controller/LoginController.java b/src/main/java/com/fjy/spring/controller/LoginController.java index f3e3ff6..a5e06f2 100644 --- a/src/main/java/com/fjy/spring/controller/LoginController.java +++ b/src/main/java/com/fjy/spring/controller/LoginController.java @@ -21,7 +21,7 @@ public class LoginController { @PostMapping("/login/dologin") public String doLogin(TbUser tbUser)throws Exception{ if (userService.doLoginService(tbUser.getColname(),tbUser.getColpassword())){ - return "home"; + return "/home/home"; } return "login"; } diff --git a/src/main/java/com/fjy/spring/controller/RegisterController.java b/src/main/java/com/fjy/spring/controller/RegisterController.java new file mode 100644 index 0000000..92ee638 --- /dev/null +++ b/src/main/java/com/fjy/spring/controller/RegisterController.java @@ -0,0 +1,34 @@ +package com.fjy.spring.controller; + +import com.fjy.spring.domain.TbUser; +import com.fjy.spring.enums.ResultEnum; +import com.fjy.spring.exception.UserException; +import com.fjy.spring.service.UserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; + +import javax.validation.Valid; + +@Controller +public class RegisterController { + + @Autowired + private UserService userService; + + @PostMapping(value = "/register/doregister") + public String doRegister(@Valid TbUser tbUser, BindingResult bindingResult)throws Exception{ + if (bindingResult.hasErrors()){ + ResultEnum resultEnum = ResultEnum.WRONG_FORM; + resultEnum.setData(bindingResult.getFieldError().getDefaultMessage()); + throw new UserException(resultEnum); + } + if (userService.doRegisterService(tbUser)){ + return "login"; + } + throw new UserException(ResultEnum.UNKOWN_ERROR); + } + +} diff --git a/src/main/java/com/fjy/spring/controller/UpLoadController.java b/src/main/java/com/fjy/spring/controller/UpLoadController.java new file mode 100644 index 0000000..2423096 --- /dev/null +++ b/src/main/java/com/fjy/spring/controller/UpLoadController.java @@ -0,0 +1,175 @@ +package com.fjy.spring.controller; + +import com.fjy.spring.domain.TbFile; +import com.fjy.spring.properties.ServerProperties; +import com.fjy.spring.service.FileService; +import com.fjy.spring.untils.FormatFileSizeUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +import javax.servlet.http.HttpServletRequest; +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@Controller +public class UpLoadController { + + @Autowired + private ServerProperties serverProperties;//服务器配置信息 + + @Autowired + private FileService fileService;//文件相关数据库操作 + + @GetMapping("/toOneUpload") + public String toOneUpload() { + return "oneUpload"; + } + + @GetMapping("/toMoreUpload") + public String toMoreUpload() { + return "moreUpload"; + } + + /** + * 测试文件上传路径地址 + * + * @param imageFile + * @param request + * @return + */ + @RequestMapping("/test") + @ResponseBody + public String testURL(@RequestParam("imageFile") MultipartFile imageFile, HttpServletRequest request) { + String uploadUrl = request.getSession().getServletContext().getRealPath("/") + "upload/"; + return uploadUrl; + } + + /** + * 单文件上传 + * + * @param imageFile + * @param request + * @return + */ + @RequestMapping(value = "/oneUpload") + public String oneUpload(@RequestParam("imageFile") MultipartFile imageFile, HttpServletRequest request) { + + String uploadUrl = request.getSession().getServletContext().getRealPath("/") + "upload/"; + String filename = imageFile.getOriginalFilename(); + File dir = new File(uploadUrl); + if (!dir.exists()) {//判断目录是否存在,否则自动创建 + dir.mkdirs(); + } + /** + * 存储文件信息 + */ + TbFile file = new TbFile(); + file.setColfilesize(new FormatFileSizeUtil().GetFileSize(imageFile.getSize())); + file.setColfilename(filename); + file.setColfilepath(uploadUrl + filename); + file.setColip(request.getRemoteAddr()); + + if (fileService.addFile(file)) + System.out.println("记录写入数据库成功"); + else + System.out.println("记录写入数据库失败"); + + System.out.println("文件上传到: " + uploadUrl + filename); + System.out.println("文件大小: " + new FormatFileSizeUtil().GetFileSize(imageFile.getSize())); + System.out.println("文件名: " + filename); + + File targetFile = new File(uploadUrl + filename); + if (!targetFile.exists()) { + try { + targetFile.createNewFile(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + try { + imageFile.transferTo(targetFile); + } catch (IllegalStateException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return "redirect:" + request.getScheme() + "://" + request.getServerName() + ":" + + serverProperties.getPortNum() + request.getContextPath() + "/upload/" + filename; + //return "redirect:http://localhost:8080/cms/upload/" + filename; + // return "index"; + } + + /** + * 多文件上传 + * + * @param request + * @return + */ + @RequestMapping("/moreUpload") + public String moreUpload(HttpServletRequest request) { + + MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest) request; + Map files = multipartHttpServletRequest.getFileMap(); + + String uploadUrl = request.getSession().getServletContext().getRealPath("/") + "upload/"; + + + File dir = new File(uploadUrl); + if (!dir.exists()) { + dir.mkdirs(); + } + + List fileList = new ArrayList(); + + for (MultipartFile file : files.values()) { + File targetFile = new File(uploadUrl + file.getOriginalFilename()); + + + TbFile tbFile = new TbFile(); + tbFile.setColfilesize(new FormatFileSizeUtil().GetFileSize(file.getSize())); + tbFile.setColfilename(file.getName()); + tbFile.setColfilepath(uploadUrl + file.getName()); + tbFile.setColip(request.getRemoteAddr()); + + if (fileService.addFile(tbFile)) + System.out.println("记录写入数据库成功"); + else + System.out.println("记录写入数据库失败"); + + if (!targetFile.exists()) { + try { + targetFile.createNewFile(); + } catch (IOException e) { + e.printStackTrace(); + } + + try { + file.transferTo(targetFile); + fileList.add( + request.getScheme() + "://" + request.getServerName() + ":" + + serverProperties.getPortNum() + request.getContextPath() + "/upload/" + + file.getOriginalFilename()); + } catch (IllegalStateException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + + } + } + + request.setAttribute("files", fileList); + + return "moreUploadResult"; + } +} diff --git a/src/main/java/com/fjy/spring/domain/TbFile.java b/src/main/java/com/fjy/spring/domain/TbFile.java new file mode 100644 index 0000000..f009a63 --- /dev/null +++ b/src/main/java/com/fjy/spring/domain/TbFile.java @@ -0,0 +1,93 @@ +package com.fjy.spring.domain; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; + +@Entity +public class TbFile { + @Id + @GeneratedValue + private int colfileid; + + private int coluserid; + + //private String coltime; + + private String colip; + + private String colrealname; + + private String colfilename; + + private String colfilesize; + + private String colfilepath; + + @Override + public String toString() { + return "TbFile{" + + "colip='" + colip + '\'' + + ", colrealname='" + colrealname + '\'' + + ", colfilename='" + colfilename + '\'' + + ", colfilesize='" + colfilesize + '\'' + + ", colfilepath='" + colfilepath + '\'' + + '}'; + } + + public int getColfileid() { + return colfileid; + } + + public void setColfileid(int colfileid) { + this.colfileid = colfileid; + } + + public int getColuserid() { + return coluserid; + } + + public void setColuserid(int coluserid) { + this.coluserid = coluserid; + } + + public String getColip() { + return colip; + } + + public void setColip(String colip) { + this.colip = colip; + } + + public String getColrealname() { + return colrealname; + } + + public void setColrealname(String colrealname) { + this.colrealname = colrealname; + } + + public String getColfilename() { + return colfilename; + } + + public void setColfilename(String colfilename) { + this.colfilename = colfilename; + } + + public String getColfilesize() { + return colfilesize; + } + + public void setColfilesize(String colfilesize) { + this.colfilesize = colfilesize; + } + + public String getColfilepath() { + return colfilepath; + } + + public void setColfilepath(String colfilepath) { + this.colfilepath = colfilepath; + } +} diff --git a/src/main/java/com/fjy/spring/domain/TbUser.java b/src/main/java/com/fjy/spring/domain/TbUser.java index acd22bd..46bb555 100644 --- a/src/main/java/com/fjy/spring/domain/TbUser.java +++ b/src/main/java/com/fjy/spring/domain/TbUser.java @@ -2,17 +2,21 @@ package com.fjy.spring.domain; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; +import javax.validation.constraints.NotNull; @Entity public class TbUser { @Id @GeneratedValue private Integer coluserid; - + @NotNull(message = "用户名必填") private String colname; + @NotNull(message = "密码不能为空") private String colpassword; private String colemail; + @NotNull(message = "学号必填") private String colstudentno; + @NotNull(message = "真实姓名必填") private String colrealname; public Integer getColuserid() { diff --git a/src/main/java/com/fjy/spring/enums/ResultEnum.java b/src/main/java/com/fjy/spring/enums/ResultEnum.java index a0dcec8..621dc82 100644 --- a/src/main/java/com/fjy/spring/enums/ResultEnum.java +++ b/src/main/java/com/fjy/spring/enums/ResultEnum.java @@ -8,10 +8,13 @@ public enum ResultEnum { DELETE_ERROR(103,"删除失败"), ADD_ERROR(104,"添加失败"), WRONGPASS(105,"用户名或密码错误"), - ILLEGAL_ACCESS(106,"非法访问") + ILLEGAL_ACCESS(106,"非法访问"), + WRONG_FORM(107,"表单错误"), + EMPTY_DATA(108,"无数据") ; private Integer code; private String msg; + private String data; public Integer getCode() { return code; @@ -21,6 +24,15 @@ public enum ResultEnum { return msg; } + public void setData(String data) { + this.data = data; + } + + public String getData() { + return data; + + } + ResultEnum(Integer code, String msg) { this.code = code; this.msg = msg; diff --git a/src/main/java/com/fjy/spring/properties/ServerProperties.java b/src/main/java/com/fjy/spring/properties/ServerProperties.java new file mode 100644 index 0000000..d404495 --- /dev/null +++ b/src/main/java/com/fjy/spring/properties/ServerProperties.java @@ -0,0 +1,18 @@ +package com.fjy.spring.properties; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Component +@ConfigurationProperties(prefix = "serverproperties") +public class ServerProperties { + private String portNum; + + public String getPortNum() { + return portNum; + } + + public void setPortNum(String portNum) { + this.portNum = portNum; + } +} diff --git a/src/main/java/com/fjy/spring/repository/TbFileRepository.java b/src/main/java/com/fjy/spring/repository/TbFileRepository.java new file mode 100644 index 0000000..26be043 --- /dev/null +++ b/src/main/java/com/fjy/spring/repository/TbFileRepository.java @@ -0,0 +1,10 @@ +package com.fjy.spring.repository; + +import com.fjy.spring.domain.TbFile; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.Optional; + +public interface TbFileRepository extends JpaRepository{ + public Optional findByColfilename(String name); +} diff --git a/src/main/java/com/fjy/spring/service/FileService.java b/src/main/java/com/fjy/spring/service/FileService.java new file mode 100644 index 0000000..424e0e1 --- /dev/null +++ b/src/main/java/com/fjy/spring/service/FileService.java @@ -0,0 +1,35 @@ +package com.fjy.spring.service; + +import com.fjy.spring.domain.TbFile; +import com.fjy.spring.repository.TbFileRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class FileService { + @Autowired + private TbFileRepository tbFileRepository; + + public boolean addFile(TbFile tbFile) { + TbFile file = tbFileRepository.save(tbFile); + if (file != null) + return true; + return false; + } + + public TbFile findFile(TbFile tbFile){ + TbFile file = (TbFile) tbFileRepository.findByColfilename(tbFile.getColfilename()).get(); + if (file!=null) + return file; + return null; + } + + public List findAllFile(){ + return tbFileRepository.findAll(); + } + + + +} diff --git a/src/main/java/com/fjy/spring/service/UserService.java b/src/main/java/com/fjy/spring/service/UserService.java index 38d5515..5f482af 100644 --- a/src/main/java/com/fjy/spring/service/UserService.java +++ b/src/main/java/com/fjy/spring/service/UserService.java @@ -7,6 +7,7 @@ import com.fjy.spring.repository.TbUserRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + @Service public class UserService { @@ -16,9 +17,23 @@ public class UserService { public boolean doLoginService(String name,String password){ TbUser user = (TbUser)tbUserRepository.findByColname(name).get(); - if (password.equals(user.getColpassword())){ - return true; + if (user!=null){ + if (password.equals(user.getColpassword())){ + return true; + }else { + throw new UserException(ResultEnum.WRONGPASS); + } + }else { + throw new UserException(ResultEnum.USER_NOTEXIST); } - throw new UserException(ResultEnum.USER_NOTEXIST); + } + + public boolean doRegisterService(TbUser tbUser){ + + TbUser user = tbUserRepository.save(tbUser); + if (user!=null){ + throw new UserException(ResultEnum.SUCCESS); + } + return false; } } diff --git a/src/main/java/com/fjy/spring/untils/FormatFileSizeUtil.java b/src/main/java/com/fjy/spring/untils/FormatFileSizeUtil.java new file mode 100644 index 0000000..6ed6517 --- /dev/null +++ b/src/main/java/com/fjy/spring/untils/FormatFileSizeUtil.java @@ -0,0 +1,25 @@ +package com.fjy.spring.untils; + +import java.text.DecimalFormat; + +public class FormatFileSizeUtil { + public static String GetFileSize(long sizes){ + String size = ""; + if(sizes!=0){ + long fileS = sizes; + DecimalFormat df = new DecimalFormat("#.00"); + if (fileS < 1024) { + size = df.format((double) fileS) + "BT"; + } else if (fileS < 1048576) { + size = df.format((double) fileS / 1024) + "KB"; + } else if (fileS < 1073741824) { + size = df.format((double) fileS / 1048576) + "MB"; + } else { + size = df.format((double) fileS / 1073741824) +"GB"; + } + }else{ + size = "非法!"; + } + return size; + } +} diff --git a/src/main/java/com/fjy/spring/untils/ResultUtil.java b/src/main/java/com/fjy/spring/untils/ResultUtil.java index 3101824..28b1b03 100644 --- a/src/main/java/com/fjy/spring/untils/ResultUtil.java +++ b/src/main/java/com/fjy/spring/untils/ResultUtil.java @@ -9,4 +9,11 @@ public class ResultUtil { result.setMessage(msg); return result; } + public static Result error(Integer code,String msg,Object data){ + Result result = new Result(); + result.setCode(code); + result.setMessage(msg); + result.setData(data); + return result; + } } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 9888da6..c0dcc46 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -3,6 +3,8 @@ server: servlet: context-path: /cms port: 8080 +serverproperties: + port_num: 8080 spring: thymeleaf: prefix: classpath:/templates/ @@ -16,4 +18,7 @@ spring: hibernate: ddl-auto: update show-sql: true -debug: true \ No newline at end of file + resources: + static-locations: classpath:/templates/ +debug: true + diff --git a/src/main/resources/templates/home.html b/src/main/resources/templates/home.html deleted file mode 100644 index 38c6cf8..0000000 --- a/src/main/resources/templates/home.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - 主页 - - -
-

欢迎访问主页

-
- - \ No newline at end of file diff --git a/src/main/resources/templates/home/home.html b/src/main/resources/templates/home/home.html new file mode 100644 index 0000000..172cbcf --- /dev/null +++ b/src/main/resources/templates/home/home.html @@ -0,0 +1,75 @@ + + + + + 主页 + + + + + + + + +
+ + + + +
默认颜色
+ + + + + + 选项1 + 选项2 + + + 选项3 + + + + 选项1 + + + + + 导航二 + + + + 导航三 + + +
+
+
+ + + + 处理中心 + + + 选项1 + 选项2 + 选项3 + + 登出 + + + + + + +
+
+ + + + \ No newline at end of file diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html new file mode 100644 index 0000000..b010eca --- /dev/null +++ b/src/main/resources/templates/index.html @@ -0,0 +1,14 @@ + + + + + 导航 + + +单文件上传

+多文件上传

+登录

+注册

+ + + \ No newline at end of file diff --git a/src/main/resources/templates/login.html b/src/main/resources/templates/login.html index 75edb52..b2feb07 100644 --- a/src/main/resources/templates/login.html +++ b/src/main/resources/templates/login.html @@ -3,9 +3,102 @@ 登录 + + + -
+ + + + +
+ + +
+

登录系统

+
+
+
+ + +
+ +
+
+
+
+ + \ No newline at end of file diff --git a/src/main/resources/templates/moreUpload.html b/src/main/resources/templates/moreUpload.html new file mode 100644 index 0000000..93e25b4 --- /dev/null +++ b/src/main/resources/templates/moreUpload.html @@ -0,0 +1,26 @@ + + + + + 多文件 上传 + + +
+ +
+

+ 文件1: + +

+

+ 文件2: + +

+

+ +

+
+ +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/moreUploadResult.jsp b/src/main/resources/templates/moreUploadResult.jsp new file mode 100644 index 0000000..5449f87 --- /dev/null +++ b/src/main/resources/templates/moreUploadResult.jsp @@ -0,0 +1,28 @@ +<%@page import="java.util.List"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> + + + + +多文件 上传结果 + + + +
+ + <% + List fileList = (List)request.getAttribute("files"); + for(String url : fileList){ + %> + + + + <% + } + %> + +
+ + + \ No newline at end of file diff --git a/src/main/resources/templates/oneUpload.html b/src/main/resources/templates/oneUpload.html new file mode 100644 index 0000000..3500a23 --- /dev/null +++ b/src/main/resources/templates/oneUpload.html @@ -0,0 +1,31 @@ + + + + + 单文件 上传 + + +
+
+

+ 文件路径测试: + +

+

+ +

+
+ +
+

+ 文件: + +

+

+ +

+
+ +
+ + \ No newline at end of file diff --git a/src/test/java/com/fjy/spring/controller/LoginControllerTest.java b/src/test/java/com/fjy/spring/controller/LoginControllerTest.java index 0d6777d..d87ed22 100644 --- a/src/test/java/com/fjy/spring/controller/LoginControllerTest.java +++ b/src/test/java/com/fjy/spring/controller/LoginControllerTest.java @@ -28,12 +28,14 @@ public class LoginControllerTest { @Test public void doLogin() throws Exception { + //测试正常登录 mvc.perform(MockMvcRequestBuilders.post("/login/dologin").param("colname", "root").param("colpassword", "root")) .andExpect(MockMvcResultMatchers.status().isOk()); + //测试密码错误 mvc.perform(MockMvcRequestBuilders.post("/login/dologin").param("colname", "root").param("colpassword", "123")) .andExpect(MockMvcResultMatchers.content().json("{\n" + - " \"code\": 101,\n" + - " \"message\": \"用户不存在\",\n" + + " \"code\": 105,\n" + + " \"message\": \"用户名或密码错误\",\n" + " \"data\": null\n" + "}")); } diff --git a/src/test/java/com/fjy/spring/controller/RegisterControllerTest.java b/src/test/java/com/fjy/spring/controller/RegisterControllerTest.java new file mode 100644 index 0000000..ecb3ca5 --- /dev/null +++ b/src/test/java/com/fjy/spring/controller/RegisterControllerTest.java @@ -0,0 +1,38 @@ +package com.fjy.spring.controller; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.result.MockMvcResultMatchers; + +import static org.junit.Assert.*; + +@RunWith(SpringRunner.class) +@SpringBootTest +@AutoConfigureMockMvc +public class RegisterControllerTest { + + @Autowired + private MockMvc mvc; + + @Test + public void doRegister()throws Exception { + //测试正常注册,abc每次调试必须改,因为唯一约束 + mvc.perform(MockMvcRequestBuilders.post("/register/doregister") + .param("colname", "abc") + .param("colpassword", "123456") + .param("colemail","test@gmail.com") + .param("colstudentno","0003") + .param("colrealname","TestRegister")) + .andExpect(MockMvcResultMatchers.content().json("{\n" + + " \"code\": 0,\n" + + " \"message\": \"请求成功\",\n" + + " \"data\": null\n" + + "}")); + } +} \ No newline at end of file