SpringMvc web.xml的基本配置总结

分两种情况:

        第一种是基于xml配置的方式那么SpringMvc的配置文件就是(直接上代码):

  

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>SpringMVC_01</display-name>
<!-- 配置前端控制器DispatcherServlet -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--springmvc.xml 是自己创建的SpringMVC全局配置文件,用contextConfigLocation作为参数名来加载
如果不配置 contextConfigLocation,那么默认加载的是/WEB-INF/servlet名称-servlet.xml,在这里也就是 springmvc-servlet.xml
-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
</servlet>

<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<!--第一种配置:*.do,还可以写*.action等等,表示以.do结尾的或者以.action结尾的URL都由前端控制器DispatcherServlet来解析
第二种配置:/,所有访问的 URL 都由DispatcherServlet来解析,但是这里最好配置静态文件不由DispatcherServlet来解析
错误配置:/*,注意这里是不能这样配置的,应为如果这样写,最后转发到 jsp 页面的时候,仍然会由DispatcherServlet进行解析,
而这时候会找不到对应的Handler,从而报错!!!
-->
<url-pattern>*.do</url-pattern>
</servlet-mapping>

<!--配置处理器适配器-->

<!-- 配置处理器适配器第一种方法,所有适配器都得实现 HandlerAdapter接口 -->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />

<!-- 配置处理器适配器第二种方法,所有适配器都得实现 HandlerAdapter接口 ,这样配置所有Handler都得实现 HttpRequestHandler接口-->
<bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter" />

<!--配置处理器映射器-->

<!--第一种方法

<--配置Handler -->
<bean name="/hello.do" class="com.ys.controller.HelloController2" />

<!-- 配置处理器映射器
将bean的name作为url进行查找,需要在配置Handler时指定bean name(就是url)-->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />

<!--第二种方法 -->

<!-- 配置Handler -->
<bean id="hello1" class="com.ys.controller.HelloController" />
<bean id="hello2" class="com.ys.controller.HelloController" />
<!-- 第二种方法:简单URL配置处理器映射器 -->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/hello1.do">hello1</prop>
<prop key="/hello2.do">hello2</prop>
</props>
</property>
</bean>

<!--配置视图解析器 -->

<!-- 第一种方法,配置视图解析器
进行jsp解析,默认使用jstl标签,classpath下得有jstl的包。
如果这样配,那么在 Handler 中返回的必须是路径+jsp页面名称+".jsp" 
-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" />


<!--第二种方法啊,配置视图解析器 ,如果这样配,那么在 Handler 中只需要返回在 view 文件夹下的jsp 页面名就可以了 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 返回视图页面的前缀 -->
<property name="prefix" value="/WEB-INF/view"></property>
<!-- 返回页面的后缀 -->
<property name="suffix" value=".jsp"></property>
</bean>

</web-app>

       第二种情况是基于注解的方式:

     <?xml version="1.0" encoding="UTF-8"?>

< beans  xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
         http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
         http://www.springframework.org/schema/mvc
         http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd
         http://www.springframework.org/schema/context
         http://www.springframework.org/schema/context/spring-context.xsd
         http://www.springframework.org/schema/aop
         http://www.springframework.org/schema/aop/spring-aop-4.2.xsd
         http://www.springframework.org/schema/tx
         http://www.springframework.org/schema/tx/spring-tx.xsd">
     <!--注解处理器映射器  -->   
     < bean  class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></ bean >
     
     <!--注解处理器适配器  -->   
     < bean  class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></ bean >  
 
     <!--使用mvc:annotation-driven可以代替上面的映射器和适配器
         这里面会默认加载很多参数绑定方法,比如json转换解析器就默认加载,所以优先使用下面的配置
       -->
     <!-- <mvc:annotation-driven></mvc:annotation-driven> -->
 
 
     <!--单个配置Handler  -->
     <!-- <bean class="com.ys.controller.HelloController"></bean> -->
     
     <!--批量配置Handler,指定扫描的包全称  -->
     < context:component-scan  base-package="com.ys.controller"></ context:component-scan >
     
 
     <!--配置视图解析器  -->
     < bean  class="org.springframework.web.servlet.view.InternalResourceViewResolver">
         <!-- 返回视图页面的前缀 -->
         < property  name="prefix" value="/WEB-INF/view/"></ property >
         <!-- 返回页面的后缀 -->
         < property  name="suffix" value=".jsp"></ property >
     </ bean >
</ beans >

猜你喜欢

转载自www.cnblogs.com/wangqian281016/p/10539170.html