SpringMVC入门一(运行流程、配置)

本文深入解析MVC架构模式及其在SpringMVC框架中的应用。从servlet的响应设置到模型、视图和控制层的分工,再到SpringMVC的运行流程,包括前端控制器的配置与工作原理,以及视图解析器的作用。了解如何通过配置实现请求处理与视图渲染的高效分离。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.MVC模式:客户端运行的servlet程序,当对请求处理完成之后,要在浏览器中进行显示,因此要在servlet中这样写:

resp.setContentType("text/html;charset=utf-8");
PrintWriter out=resp.getWriter();
out.println("<h1>Hello World</h1>")

为了避免每次都要out.println(),因此要将数据和页面相互分离。MVC分别代表model(模型)、view(视图)和controller(控制)。控制层用于处理用户发发来的请求,处理完成后会产生模型(数据),之后交由视图进行显示。
SpringMVC中,我们只关心如何编写控制层。其他都交由spring容器来完成。


SpringMVC的运行流程:所有的请求都会发送到前端控制器。前端控制器是一个servlet,前端控制器通过处理映射器和请求的url来找到controller后端控制器。后端控制器处理完成后会生成模型并返回逻辑视图名给前端控制器。前端控制器在通过视图解析器还原出真正的物理视图名。最后交由视图进行渲染。 前端控制器相当于中央控制器,负责按时间先后顺序进行安排任务。
开始配置: web.xml文件:
   <!--配置监听器,监听ServletContext对象-->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    
    <!--配置ServletContext的初始化参数-->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:/ApplicationContext.xml</param-value>
    </context-param>
    
    <!--配置前端控制器-->
    <servlet>
        <servlet-name>app</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>app</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    <!--配置编码过滤器-->
    <filter>
        <filter-name>characterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

由配置文件中的Servlet配置可知,所有的请求都发送到了DispatcherServlet,也就是前端控制器。由Filter配置可知,所有的请求都会被编码过滤器所过滤。
app-servlet.xml文件:

 <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
     <property name="prefix" value="/WEB-INF/page/"/>
     <property name="suffix" value=".jsp"/>
 </bean>

该文件配置了视图解析器,作用是将Controller返回的逻辑视图转变为物理视图。这个文件的名字是约定好的,格式为servlet的名字-servlet.xml,其中servlet的名字是servlet配置中的名字app
ApplicationContext.xml:这个文件是Spring的配置。没有新内容。如何配置可以参考Spring入门一

上一篇
---The End---
下一篇
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值