SpringBoot-demo
定义拦截器
package com.circle.interceptor;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* 登录检测
* 1. 配置好拦截器要拦截哪些请求
* 2. 把这些配置放在容器中
*/
public class LoginInterceptor implements HandlerInterceptor {
/**
* 目标方法执行之前
* @param request
* @param response
* @param handler
* @return
* @throws Exception
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
HttpSession session = request.getSession();
Object user = session.getAttribute("user");
if (user != null){
return true;
}
response.sendRedirect("/login");
return false;
}
/**
* 目标方法执行之后
* @param request
* @param response
* @param handler
* @param modelAndView
* @throws Exception
*/
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
}
/**
* 页面渲染以后
* @param request
* @param response
* @param handler
* @param ex
* @throws Exception
*/
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
}
添加拦截器
package com.circle.config;
import com.circle.interceptor.LoginInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class AdminWebConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoginInterceptor())
.addPathPatterns("/**") //所有请求,包括静态资源
.excludePathPatterns("*.png","/", "/login", "/loginHandle", "/index", "/css/**");
}
}
文件上传
/**
* MultipartFile 自动封装上传来的文件
* @param headImage
* @param photos
* @return
*/
@PostMapping("/uploadHandle")
public String uploadHandle(@RequestPart("headImage")MultipartFile headImage,
@RequestPart("photos") MultipartFile[] photos, HttpSession session) throws IOException {
session.setAttribute("msg", "");
if (headImage.isEmpty() || photos == null || photos.length == 0) {
session.setAttribute("msg", "文件不能为空");
return "redirect:/upload";
}
if (headImage.getSize() > 1024){
session.setAttribute("msg", "大小超限");
return "redirect:/upload";
}
String originalFilename = headImage.getOriginalFilename();
File file = new File( "E:\\cache\\" + originalFilename);
headImage.transferTo(file);
for (MultipartFile photo : photos) {
originalFilename = photo.getOriginalFilename();
file = new File("E:\\cache\\" + originalFilename);
photo.transferTo(file);
}
return "redirect:/upload";
}
<!DOCTYPE html>
<html lang="zh-cn" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form th:action="@{/uploadHandle}" method="post" enctype="multipart/form-data">
<input type="file" name="headImage" max="10">
<input type="file" name="photos" multiple>
<input type="submit" value="上传">
</form>
<span th:text="${session.msg}"></span>
</body>
</html>
挣钱养媳妇儿^.^

浙公网安备 33010602011771号