第一步,用户发出请求,给DispatchServlet.前端控制器。DispatchServlet把请求发给映射器映射器处理之后返回给DispatchServlet。

在web.xml中配置DispatchServlet前端控制器

springmvc
org.springframework.web.servlet.DispatcherServlet

    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:springmvc-servlet.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

第二步,DispatchServlet根据返回信息配置具体的适配器,交给controller执行。返回ModelAndView,

public class hello implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
ModelAndView mv = new ModelAndView();

    //封装对象,放在ModelAndView中。Model
    mv.addObject("msg","HelloSpringMVC!");
    //封装要跳转的视图,放在ModelAndView中
    mv.setViewName("test");
    return mv;
}

}

第三步,通过ModelAndView配置具体的视图解析器,视图解析器返回给DispatchServlet(和用户连接)前端,展示具体的信息。

 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/"/>
    <property name="suffix" value=".jsp"/>
</bean>
<!--   BeanNameUrlHandlerMapping,需要视图名字 -->
<bean id="/hello" class="com.kuang.controller.hello"/>

映射器,适配器(前两者实际开发可用注解代替),视图解析器都在springmvc文件中配置,

<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<!--处理器,适配器-->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
<!--视图解析器-->
 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/"/>
    <property name="suffix" value=".jsp"/>
</bean>
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐