SpringMVC学习笔记
程序员文章站
2022-07-15 11:41:37
...
一. 使用方法简介
1.基本组件:
-
1 DispatcherServlet : 前端控制器,接收所有请求(如果配置/不包含 jsp);
-
2 HandlerMapping: 解析请求格式的.判断希望要执行哪个具体的方法;
-
3 HandlerAdapter: 负责调用具体的方法;
-
4 ViewResovler: 视图解析器.解析结果,准备跳转到具体的物理视图。
2.需要jar包:
导入基于Spring的相关jar包,同时要导入spring.webmvc
3.在web.xml中注册servlet分发器:
<servlet>
<servlet-name>dispatcher-servlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--初始化sevlet分发器所在路径,因更改方便需要,将其放在WEB-INF目录下-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher-servlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
4.创建一个简单的控制器:
package com.usermanager.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 TestController implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception {
String msg = "msg from TestController";
response.getWriter().write(msg);
return null;
}
}
5.在Spring容器中注入控制器的映射;在SpringMVC(dispatcher-servlet)容器中注入HandlerMapper对应的控制器方法的映射:
1.Spring容器代码(applicationContext)
<!--在Spring容器中注册控制器-->
<bean id="testController" class="com.usermanager.controller.TestController"></bean>
2.SpringMVC容器代码(dispatcher-servlet)
<!--将控制器指定为相应的HandlerMapping的成员-->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<!--由于servlet分发器中定义拦截目标为'*.do',因此在key添加后缀.do-->
<prop key="testController.do">testController</prop>
</props>
</property>
</bean>
6.最终效果:
1.发布项目;
2.当输入项目路径+testController.do打印相关语句,表示成功通过SpringMVC管理控制器
7.SpringMVC运行原理:
1. 当项目运行时,用户点击jsp页面触发相应的控制器且携带相应的参数,转交至dispatcher-servlet进行解析;
2. dispatcher-servlet根据请求所指定的控制器的具体名称。由handler-mapping查找该名称对应的控制器方法,转交至相应的控
制器处理该请求;
4. 相应的控制器(重写(override)控制器接口的ModalAndView方法)处理请求,并转交参数给相应的service封装处理数据,
service转交至相应的持久层dao处理与数据库交互的信息,最终逐层返回数据库处理结果给控制器;
5. 控制器接收结果,直接将结果以字节流形式输出给浏览器(用户),或是通过返回一个具体的界面(jsp)来完成页面的跳转
上一篇: SpringMVC学习笔记(四)
下一篇: 手写 | springMVC框架