在webapp目录下创建如图所示的文件夹:
1.编写fileLoad.jsp的代码如下:
<%@page pageEncoding="UTF-8" contentType="text/html; UTF-8" isELIgnored="false" %>
文件上传
如图所示:
2.编写FileController的代码如下:
package com.txw.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.util.UUID;
@SuppressWarnings("all") // 注解警告信息
@Controller
@RequestMapping("/file")
public class FileController {
@RequestMapping("/upload")
public String upload(MultipartFile multipartFile, HttpServletRequest request) throws Exception {
// 通过相对路径方式获取项目部署到服务器的绝对路径
String realPath = request.getRealPath("/upload");
// 设置文件名为:uuid+原始文件后缀
int i = multipartFile.getOriginalFilename().lastIndexOf(".");
String substring = multipartFile.getOriginalFilename().substring(i);
String newFileName = UUID.randomUUID().toString().replace("-","") + substring;
// 文件上传
multipartFile.transferTo(new File(realPath,newFileName));
return "index";
}
}
如图所示:
1.编写fileLoad.jsp的代码如下:
<%@page pageEncoding="UTF-8" contentType="text/html; UTF-8" isELIgnored="false" %>
文件上传
如图所示
2.编写FileController的代码如下:
package com.txw.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.util.UUID;
@SuppressWarnings("all") // 注解警告信息
@Controller
@RequestMapping("/file")
public class FileController {
@RequestMapping("/upload")
public String upload(MultipartFile[] multipartFiles, HttpServletRequest request) throws Exception {
for (MultipartFile multipartFile : multipartFiles) {
if (multipartFile.getSize() != 0){
// 通过相对路径方式获取项目部署到服务器的绝对路径
String realPath = request.getRealPath("/upload");
// 设置文件名为:uuid+原始文件后缀
int i = multipartFile.getOriginalFilename().lastIndexOf(".");
String substring = multipartFile.getOriginalFilename().substring(i);
String newFileName = UUID.randomUUID().toString().replace("-","") + substring;
// 文件上传
multipartFile.transferTo(new File(realPath,newFileName));
}
}
return "index";
}
}
如图所示:
3.在application.properties添加的代码如下:
#设置文件上传的 文件大小限制 spring.servlet.multipart.max-file-size=200MB spring.servlet.multipart.max-request-size=200MB #开启jsp页面的调试模式 server.servlet.jsp.init-parameters.development=true
如图所示:
总结,如图所示:
在webapp目录下创建如图所示的文件夹:
1.编写downLoad.jsp的代码如下:
<%@page pageEncoding="UTF-8" contentType="text/html; UTF-8" isELIgnored="false" %>
文件下载
a.git
aa.txt
如图所示:
2.编写FileController的代码如下:
@RequestMapping("/download")
public void download(String fileName, HttpServletRequest request, HttpServletResponse response) throws Exception {
// 文件下载
String realPath = request.getRealPath("/download");
// 将服务器的文件读取到系统中
FileInputStream is = new FileInputStream(new File(realPath, fileName));
// 获取响应输出流
ServletOutputStream os = response.getOutputStream();
// 设置文件下载的方式 以及下载后的文件名 响应输出流编码
response.setHeader("content-disposition","attachment;fileName="+ URLEncoder.encode(fileName,"UTF-8"));
// 交换数据
IOUtils.copy(is,os);
// 关闭资源
IOUtils.closeQuietly(is);
IOUtils.closeQuietly(os);
}
如图所示:
总结,如图所示:
1.编写MyInterceptor的代码如下:
package com.txw.interceptor;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@SuppressWarnings("all") // 注解警告信息
public class MyInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("----------1----------");
// 返回true 放行 返回false阻止
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("----------3----------");
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("----------4----------");
}
}
如图所示:
2.编写InterceptorConfig的代码如下:
package com.txw.config;
import com.txw.interceptor.MyInterceptor;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Component
@SuppressWarnings("all") // 注解警告信息
public class InterceptorConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
//添加那个拦截器
registry.addInterceptor(new MyInterceptor())
// 拦截所有控制器请求
.addPathPatterns("/test
@Controller
@RequestMapping("test")
public class TestController {
@RequestMapping("test1")
public String test1(){
System.out.println("----------2----------");
return "index";
}
@RequestMapping("test2")
public String test2(){
System.out.println("----------2----------");
return "index";
}
}
如图所示:
4 war包部署1.设置打包方式为war的代码如下:
war
如图所示:
2. 在插件中指定入口类的代码如下:
org.springframework.boot spring-boot-maven-plugin true -Dfile.encoding=UTF-8 com.txw.SpringBoot02Application
如图所示:
3.排除内嵌的tomcat的代码如下:
org.springframework.boot spring-boot-starter-tomcat provided org.apache.tomcat.embed tomcat-embed-jasper provided
如图所示:
6.编写的代码如下:
package com.txw;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
@MapperScan("com.txw.dao") // 必须在入口类中加入这个配置
@SpringBootApplication
public class SpringBoot02Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(SpringBoot02Application.class);
}
}
如图所示:
7.如图所示:说明打包成功!
8.这时在target目录下生成war,成功!
9.把springboot_02.war拷贝到Tomcat的webapps的目录下,如图所示:
10.启动Tomcat服务器,如图所示:说明启动成功!
通过浏览器访问:http://localhost:8080/springboot_02/fileLoad.jsp,如图所示:说明部署成功!总结,如图所示:



