SpringBoot--web开发常见配置
时间:2021-08-07
本文章向大家介绍SpringBoot--web开发常见配置,主要包括SpringBoot--web开发常见配置使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
- 拦截器
-
package com.model.config; 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; /** * @Description:测试类 * @Author: 张紫韩 * @Crete 2021/8/4 18:31 */ public class MyHandlerInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { HttpSession session = request.getSession(); return session.getAttribute("loginUser") != null; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { } }
-
package com.model.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; /** * @Description:测试类 * @Author: 张紫韩 * @Crete 2021/8/4 18:30 */ @Configuration //配置类实现扩展类接口 public class MyWebMvcConfig implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new MyHandlerInterceptor()) .addPathPatterns("/**") .excludePathPatterns("/index","/","/toLogin","/doLogin","/css/**","/js/**","/images/**","/fonts/**"); } }
- 文件上传与下载
-
<!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form th:action="@{/doLogin}" method="post" enctype="multipart/form-data"> 头像:<input type="file" name="picture"> <br> 生活照:<input type="file" name="photos" multiple> <br> <input type="submit" th:value="提交"> </form> </body> </html>
-
package com.model.controller; 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.RequestPart; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.IOException; /** * @Description:测试类 * @Author: 张紫韩 * @Crete 2021/8/4 18:43 */ @Controller public class PageController { @RequestMapping("/toLogin") public String toForm(){ return "form"; } @RequestMapping("/doLogin") public String foForm(@RequestPart("picture")MultipartFile picture, @RequestPart("photos")MultipartFile[] photos) throws IOException { if (!picture.isEmpty()) { String filename = picture.getOriginalFilename(); picture.transferTo(new File("D:\\qq\\IDEA\\IdeaProjects\\technical_framework\\SpringBooot\\springboot11\\src\\main\\resources\\static\\images\\" + filename)); } if (photos.length>0){ for (MultipartFile photo : photos) { if (!photo.isEmpty()) { String filename = photo.getOriginalFilename(); photo.transferTo(new File("D:\\qq\\IDEA\\IdeaProjects\\technical_framework\\SpringBooot\\springboot11\\src\\main\\resources\\static\\images\\" + filename)); } } } return "redirect:/index"; } }
-
- 异常处理:
-
我们在templates 中自定义 error/404.html,5xx.html 。springboot会对这两个页面进行解析,遇到错误时,会自动跳转到这两个界面
-
Web原生组件的注入(Servlet,listener,Filter)
-
package com.model.servlet;
import org.springframework.boot.autoconfigure.web.ServerProperties;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* @Description:测试类
* @Author: 张紫韩
* @Crete 2021/8/4 20:33
* 注入源生组件Servlet
*/
//第一种使用注解,将我们自定义的组件放入到容器中
// 第二中我们使用配置文件将组件放到容器中
//@WebServlet(urlPatterns = "/my")
public class MyServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.getWriter().write("6666");
}
} -
package com.model.servlet; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.boot.web.servlet.ServletListenerRegistrationBean; import org.springframework.boot.web.servlet.ServletRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.util.Arrays; import java.util.EventListener; /** * @Description:测试类 * @Author: 张紫韩 * @Crete 2021/8/4 20:52 */ @Configuration(proxyBeanMethods = true)//保证我们依赖的组件是单实例的 public class MyRegistrationBeanConfig { @Bean public ServletRegistrationBean<MyServlet> servletRegistrationBean(){ MyServlet servlet = new MyServlet(); ServletRegistrationBean<MyServlet> bean = new ServletRegistrationBean<>(servlet, "/my"); return bean; } @Bean public FilterRegistrationBean<MyFilter> filterRegistrationBean() { MyFilter filter = new MyFilter(); FilterRegistrationBean<MyFilter> registration = new FilterRegistrationBean<>(filter); registration.setUrlPatterns(Arrays.asList("/css/*")); return registration; } @Bean public ServletListenerRegistrationBean<MyListener> listerRegistrationBean() { MyListener listener = new MyListener(); ServletListenerRegistrationBean<MyListener> bean = new ServletListenerRegistrationBean<>(listener); return bean; } }
-
- 定制化原理
原文地址:https://www.cnblogs.com/zzhAylm/p/15099963.html
- UWP基础教程 - 重启应用
- html5打开摄像头
- UWP基础教程 - App多语言支持
- Golang实现Fibonacii的几种算法
- 【译】使用 dotnet watch 开发 ASP.NET Core 应用
- vmware安装ubuntu12.04嵌套安装xen server(实现嵌套虚拟化)
- Golang语言切片slice的线程协程安全问题
- ASP.NET Core 在 Azure 开启 HTTPS
- 算法基础:最大递减数问题(Golang实现)
- 亲身经历的痛--database/sql: Stmt的使用以及坑
- Ubuntu上通过nginx部署Django笔记
- Go学习笔记:golang交叉编译
- Python魔术方法-Magic Method
- python类中super()和__init__()的区别
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释