SpringMVC系列之技术点定向爆破一
- 游戏开发
- 2025-07-21 19:02:08

对SpringMVC的技术点进行逐个拆解,定向爆破。
DispatcherServlet详解DispatcherServlet中init-param的配置
DispatcherServlet负责接收除“.jsp”外的所有请求并交给Spring处理。因此DispatcherServlet需要优先启动。同时需要加载spring容器的配置,目的是为了让SpringMVC中相关bean也能被初始化。如何实现Spring容器的配置加载呢?需要在init-param中指明。
<init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:mvc.xml</param-value> </init-param>当然,如果不做这一块的配置,SpringMVC也会默认去找web-inf文件夹中的名为当前DispatcherServlet的Servlet名字的[servletname]-servlet.xml文件作为默认的Spring容器配置文件。
DispatcherServlet的映射路径:
路径符号匹配内容/匹配除了.jsp以为的所有路径/*匹配所有请求.action或 .do匹配url以.do或 .action为结尾的路径/request/*只匹配以“/request”路径前缀的请求 SpringMVC的运行流程客户端发送请求
tomcat接收对应的请求
SpringMVC的核心调度器DispatcherServlet接收到所有请求
请求地址与@RequestMapping注解进行匹配,定位到具体的类和具体的处理方法(封装在Handler中)
核心调度器找到Handler后交给HandlerAdapter执行具体的Handler
执行后Controller将具体的执行结果(ModelAndView)返回给HandlerAdapter
核心调度器吧ModelAndView交给视图解析器,视图解析器找到具体的jsp封装到View对象中
View视图把jsp转换成html内容再交给核心调度器
核心调度器把html内容返回给客户端。
RequestMapping注解在Controller中通过RequestMapping注解来定义匹配请求的URL。
RequestMapping注解可以定义在类的上方,作为类的中多个方法的统一URL前缀。
RequestMapping注解定义在方法的上方,作为此次请求具体要执行的方法的限定。
/** @Author: 索尔 */ @Controller //声明这是一个控制器 @RequestMapping("/hello") //访问路径,等价于url-pattern public class HelloController { @RequestMapping("/test1") //访问路径 public String hello1(){ System.out.println("hello world");//具体的业务逻辑 return "redirect:/index.jsp"; //跳转:/index.jsp } } RequestParam注解RequestParam注解往往和RequestMapping注解配合使用,用来绑定请求参数和处理方法的参数。
我们来看下RequestParam注解的源码:
@Target({ElementType.PARAMETER}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface RequestParam { @AliasFor("name") String value() default ""; @AliasFor("value") String name() default ""; boolean required() default true; String defaultValue() default "\n\t\t\n\t\t\n\ue000\ue001\ue002\n\t\t\t\t\n"; }通过返回的测试我们得出以下结论:
@RequestParam(required = false/true,value = “参数名”,defaultValue = “”) 其中name和value等效这里用value,推荐使用value。
value:用于重命名参数,若使用了value,则前端请求时该参数必须与value相同。
required:用来制定该参数是否必须传入
true:默认值,前端请求时默认必须传入,否则会报400异常。
false:前端请求时可以不传,不传时后端收到的是null
defaultValue:如果设置了defaultValue,则required不会使用默认值true,而自动为false。当没有穿参数时,就使用默认值。
总结这一篇文章我们攻克了SpringMVC的四大技术难点,下一期我们将继续对SpringMVC作详细拆解。
SpringMVC系列之技术点定向爆破一由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“SpringMVC系列之技术点定向爆破一”
上一篇
第一章Linux初探