10.Spring mvc的核心类和注解
10.1 DisPatcherServlet
DisPatcherServlet 充当前端控制器的作用,只需要在web.xml中配置即可
其中的元素
<load-on-startup>1</load-on-startup>
表示容器在启动时立即加载Servlet
否则应用程序会在第一个Servlet请求时加载该Servlet。
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-config.xml</param-value>
</init-param>
配置Spring MVC配置文件的路径
10.2 Controller注解类型
通过使用@Controller注解,代替原先的实现controller接口,注意指定需要扫描的包,并加入相应的JAR包
10.3 RequestMapping注解类型
10.3.1 @RequestMapping注解的使用
Spring 通过@Controller 注意找到相应的控制器类后,还需要知道控制器类内部对每一个请求时如何处理的,这里需要使用@RequestMapping注解 .
@RequestMapping既可以标注在类上,也可以标注在方法上。
@RequestMapping(value="/hello")
public class FirstController {
@RequestMapping(value="/firstController")
public String handleRequest(HttpServletRequest request,
HttpServletResponse response,Model model){
model.addAttribute("msg", "我的第一个");
return "first";
}
}
此时访问路径更变为
http://localhost:8080/vacation_11_0220/hello/firstController
10.3.2 @RequestMapping注解的属性
常用的属性如下:
属性名 | 描述 |
---|---|
name | 用于为映射地址指定别名 |
value | 默认属性,用于映射一个请求和一种方法 |
method | 指定该方法处理哪种类型的请求方式 |
10.3.3 组合注解
简而言之就是
@GetMaping = @RequestMapping(method="RequestMethod.GET)
类似的还有
@PostMapping
@PutMapping
@DeleteMapping
@PatchMapping
10.3.4 请求处理方法的参数类型和返回类型
参数类型
在上一个程序中,使用的参数类型包括
HttpServletRequest ,HttpServletResponse
还可以有HttpSession
返回类型
常见的放回类型市ModelAndView,String 和void,其中ModelAndView类型中可以添加Model数据,并指定视图,String类型的返回值可以跳转但不能携带数据,void类型主要在异步请求时使用,它只返回数据而不会跳转视图。企业开发常用String作为返回类型。
10.4 ViewResolver视图解析器
通过在配置文件中定义并配置
<!-- 定义视图解析器 -->
<bean id="viewResolver" class=
"org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 设置前缀 -->
<property name="prefix" value="/WEB-INF/jsp/" />
<!-- 设置后缀 -->
<property name="suffix" value=".jsp" />
</bean>