maven创建多bundle的springMVC框架模块简单概述(补充中)

本文简述了如何使用Maven创建多bundle的SpringMVC框架,并详细解析了DispatcherServlet的配置,包括视图解析器的`prefix`和`suffix`属性,以及在web.xml中的设置。DispatcherServlet作为Spring MVC的核心,负责请求分发,通过`<servlet-name>`区分不同的实例,`<load-on-startup>`控制启动顺序,`<url-pattern>`定义请求匹配规则。同时,`contextConfigLocation`参数用于指定Spring配置文件的位置。

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

首先使用maven创建多bundle的一个工程demo-parent。


。。。。暂略


在自定义的springMVC-dispatcher-servlet.xml下,有

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
<!-- 配置jsp路径前缀 -->
<property name="prefix" value="/WEB-INF/pages/"></property>
<!-- 配置URl后缀 -->
<property name="suffix" value=".jsp"></property>
</bean>

针对这块标签配置,在视图ViewResolver解析中,属性"prefix" 和"suffix"负责组装呈现视图的前缀和后缀,再配合指定的controller中的return "result";语句,那么对应关系如下:

[prefix]+[controller return]+[stuffix]="/WEB-INF/pages/"+"result"+".jsp"=/WEB-INF/pages/result.jsp;

在web.xml文件下,截取部分代码片段如下做解释说明:

<display-name>Archetype Created Web Application</display-name>
  <!-- Spring应用上下文, 理解层次化的ApplicationContext -->
  <context-param>
  <param-name>contextConfigLocation</param-name>
<param-value>classpath:configs/spring/applicationContext*.xml</param-value>
  </context-param>
  
  <listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
  </listener>
    
  <!-- spring MVC的核心就是DispatcherServlet,使用springMVC的第一步就是将下面的servlet放入web.xml
  servlet-name属性非常重要,默认情况下,DispatchServlet会加载这个名字-servlet.xml的文件,如下,就会加载
  dispather-servlet.xml,也是在WEN-INF目录下。
   -->
  <servlet>
    <servlet-name>springMVC-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:configs/spring/springMVC-dispatcher-servlet.xml</param-value>
</init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <!-- 设置dispatchservlet的匹配模式,通过把dispatchservlet映射到/,默认servlet会处理所有的请求,包括静态资源 -->
  <servlet-mapping>
    <servlet-name>springMVC-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

配置说明:

使用Spring MVC,配置DispatcherServlet是第一步。DispatcherServlet是一个Servlet(这个Servlet从HttpServlet继承而来),所以可以配置多个DispatcherServlet。DispatcherServlet是前置控制器,配置在web.xml文件中的。负责拦截匹配的请求,Servlet拦截匹配规则要自已定义,把拦截下来的请求,依据“指定规则”分发到目标Controller来处理。“指定规则”:是根据你使用了哪个HandlerMapping接口的实现类的不同而不同。

<servlet-name>springMVC-dispatcher</servlet-name>这个Servlet的名字是springMVC-dispatcher,可以有多个DispatcherServlet,是通过名字来区分的。每一个DispatcherServlet有自己的WebApplicationContext上下文对象(称之为层次化的ApplicationContext)。同时保存的ServletContext中和Request对象中。 

上边的web.xml为例

1.<servlet>定义了一个名字为springMVC-dispatcher的servlet,其中<load-on-startup>1</load-on-startup>是启动顺序,让这个Servlet随Servlet容器一起启动。

2.<servlet-mapping>定义了哪个servlet应该处理什么样的url匹配,上例中定义mvc-dispatcher这个servlet来处理所有匹配“/”的url,

 <url-pattern>/</url-pattern>,会匹配到类似“/welcome”这样的路径型url,不会匹配到模式为*.jsp这样的后缀型url”。(URL匹配参见我URL文章)

3.<context-param>元素含有一对参数名和参数值,用作应用的ServletContext上下文初始化参数。参数名在整个Web应用中必须是惟一的。

这里contextConfigLocation这个参数名,是被spring定义好的,会去加载spring的配置文件

 

在DispatcherServlet的初始化过程中,框架会在web应用的 WEB-INF文件夹下寻找名为[servlet-name]-servlet.xml 的配置文件,生成文件中定义的bean,此处就会寻找mvc-dispatcher-servlet.xml文件来加载spring的配置。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值