14 个 SpringMVC顶级技巧,随时用随时爽
译文:blog.csdn.net/Summer_Lyf/article/details/102911215
原文:dzone.com/articles/14-tips-for-writing-spring-mvc-
通常 , 在Spring MVC中 , 我们编写一个控制器类来处理来自客户端的请求 。 然后 , 控制器调用业务类来处理与业务相关的任务 , 然后将客户端重定向到逻辑视图名称 , 该名称由Spring的调度程序Servlet解析 , 以呈现结果或输出 。
这样就完成了典型的请求-响应周期的往返 。
今天整理了一下编写Spring MVC控制器的14个技巧 , 你今天get到了吗?(≧▽≦)/
1.使用@Controller构造型这是创建可以处理一个或多个请求的控制器类的最简单方法 。 仅通过用构造型注释一个类@Controller, 例如:
import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controllerpublic class HomeController {@RequestMapping("/")public String visitHome() {return "home";}}
如你所见 , visitHome()方法通过重定向到名为home的视图来处理来自应用程序上下文路径(/)的请求 。
注意:@Controller原型只能在Spring的配置文件中启用注解驱动时使用:
启用注释驱动时 , Spring容器自动在以下语句指定的包下扫描类:
由@Controller 注释注释的类被配置为控制器 。 这是最可取的 , 因为它很简单:无需在配置文件中为控制器声明bean 。
注意:通过使用@Controller 注解 , 您可以拥有一个多动作控制器类 , 该类能够处理多个不同的请求 。 例如:
@Controllerpublic class MultiActionController {@RequestMapping("/listUsers")public ModelAndView listUsers() {}@RequestMapping("/saveUser")public ModelAndView saveUser(User user) {}@RequestMapping("/deleteUser")public ModelAndView deleteUser(User user) {}}
正如你可以在上面的控制器类看 , 有处理三种不同的请求3种处理方法 /listUsers , /saveUser , 和/deleteUser分别 。
2.实现控制器接口在Spring MVC中创建控制器的另一种(也许是经典的)方法是让类实现 Controller 接口 。 例如:
import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.mvc.Controller;public class MainController implements Controller {@Overridepublic ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response) throws Exception {System.out.println("Welcome main");return new ModelAndView("main");}}
实现类必须重写该 handleRequest() 方法 , 当匹配请求进入时 , 该方法将由Spring调度程序Servlet调用 。 此控制器处理的请求URL模式在Spring的上下文配置文件中定义如下:
但是 , 此方法的缺点是控制器类无法处理多个请求URL 。
3.扩展AbstractController类如果要轻松控制受支持的HTTP方法 , 会话和内容缓存 。 扩展你的控制器 AbstractController 类是理想的选择 。 请考虑以下示例:
import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.mvc.AbstractController;public class BigController extends AbstractController {@Overrideprotected ModelAndView handleRequestInternal(HttpServletRequest request,HttpServletResponse response) throws Exception {System.out.println("You're big!");return new ModelAndView("big");}}
- Python高级技巧:用一行代码减少一半内存占用
- S20屏幕分辨率更改技巧
- 系统小技巧:恢复Windows纯色极简登录
- 信也科技再攀科研高峰:复杂网络研究成果登上国际顶级期刊IEEE TKDE
- RX 6950?AMD还有顶级大招?
- 追求顶级性能体验,你怎能错过RTX 3090?
- 苹果手机相机除了拍照,还有6大办公技巧,可惜很多人不会用
- 出门儿在外不求人问路——手机导航的最重要技巧
- 10 个 VS Code 使用技巧
- 带你了解MySQL数据库小技巧