SpringMVC基础
在开发中service和dao层交给Spring框架而controller层则使用SpringMVC框架。
SpringMVC如何管理浏览器发来的请求:
请求来到服务器后,服务器【Tomcat】找到前端控制器【DispatcherServlet】;
前端控制器【DispatcherServlet】接收任何请求,但不做处理,把请求交给处理器映射器【HandlerMapping】;
处理器映射器【HandlerMapping】根据请求的路径,根据路径去找可执行的组件,并把映射到的组件串起来返回,即处理器执行链【HandlerExecutionChain】返回至前端控制器【DispatcherServlet】;
前端控制器【DispatcherServlet】不执行改内容,并把返回处理器执行链【HandlerExecutionChain】交给处理器适配器【HandlerAdaptor】;
处理器适配器【HandlerAdaptor】可以与处理器【Handler】执行返回处理器执行链【HandlerExecutionChain】内容完毕并输出一个模型和视图【ModelAndView】给前端控制器【DispatcherServlet】;
前端控制器【DispatcherServlet】把模型和视图【ModelAndView】交给视图解析器【ViewResolver】返回视图对象【View】给前端控制器【DispatcherServlet】;
前端控制器【DispatcherServlet】渲染对象【View】为视图页面【jsp】并且返回给请求来源。
SpringMVC开发步骤:
导入SpringMVC坐标:
导入坐标后还需要配置SpringMVC
编写Controller
@RequestMapping("/user")注解如果写在UserController上面
那么请求地址会从http://localhost:8080/test变为http://localhost:8080/user/test
return
是对
转发forward的省略,同样可以换成重定向redirect
jsp存放位置:
写完注解配置后Spring并不能知道我们的配置,需要进行扫描,但是我们不会把扫描写道applicationContext.xml中,我们会专门写一个spring-mvc.xml来专门配置SpringMVC
配置Spring-mvc配置文件
首先复制并把beans改为context来添加引用,然后只扫描controller包
这里内部资源视图解析器的前后字符串配置要与jsp文件位置一致
然后我们必须加载spring-mvc.xml
在web.xml中配置前端控制器
其中这一步是为了加载spring-mvc.xml
通常有两种配置的方式:
/缺省配置:除了jsp文件以外的所有请求都被当前Servlet接收,会覆盖tomcat自带的DefaultServlet的缺省配置,所以要自行处理静态资源
*.xxx扩展名匹配:不会接收jsp,可以有效规避静态资源(.html)处理问题
获得POJO类型参数
Controller中的业务方法的POJO参数的属性名与请求参数的name一致,参数值会自动映射匹配
user类:
UserController类:
运行测试
test
这是转发
user
SpringMVC流程图
前端控制器是一个Servlet,Servlet里接受请求返回视图的就是Service