SpringMVC学习之springMVC项目的相关配置文件配置
来源:互联网 发布:微信淘宝优惠券怎么做 编辑:程序博客网 时间:2024/05/16 05:44
- 在项目的web.xml文件种配置如下的 前端控制器
<!--springMVC的前端控制器-->
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<!--contextConfigLocation配置springMVC加载的配置文件(配置处理器映射器、适配器等等)(一般都要这样配置)
如果不配置contextConfigLocation,默认加载的是/WEB-INF/servlet名称-servlet.xml(springMVC-servlet.xml)
-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:context/springMVC.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 映射路径,不要写成了/*那样会拦截所有的访问,连JSP页面都访问不了
第一种 *.action 访问以.action结尾 由DispatcherServlet进行解析
第二种 / 所有的访问地址都由DispatcherServlet(前端控制器)进行解析,但是对于静态文件的访问会不进行解析,
所以对静态文件(jsp页面,图片什么的)的解析(访问)需要此配置。
第三种 /* 这样配置不对,会解析所有的访问,连JSP页面都访问不了。不能访问静态文件了。(因为根据jsp页面去找Handler,会报错)。
-->
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<!--contextConfigLocation配置springMVC加载的配置文件(配置处理器映射器、适配器等等)(一般都要这样配置)
如果不配置contextConfigLocation,默认加载的是/WEB-INF/servlet名称-servlet.xml(springMVC-servlet.xml)
-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:context/springMVC.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 映射路径,不要写成了/*那样会拦截所有的访问,连JSP页面都访问不了
第一种 *.action 访问以.action结尾 由DispatcherServlet进行解析
第二种 / 所有的访问地址都由DispatcherServlet(前端控制器)进行解析,但是对于静态文件的访问会不进行解析,
所以对静态文件(jsp页面,图片什么的)的解析(访问)需要此配置。
第三种 /* 这样配置不对,会解析所有的访问,连JSP页面都访问不了。不能访问静态文件了。(因为根据jsp页面去找Handler,会报错)。
-->
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
在springMVC.xml种配置 (处理器映等射器、适配器、视图解析器等等)
- 非注解的映射器 和 适配器(了解)。
a.(两种映射器的配置方法)
<!--非注解的处理器映射器和适配器-->
<!--配置Handler 如下 -->
<bean id="businessController" name="/queryList.action" class="cn.ffcs.wifi.portal.web.action.BusinessController"/>
<bean id="CommonDataController" name="/deleteList.action" class="cn.ffcs.wifi.portal.web.action.CommonDataController"/>
<!--1 处理器映射器的bean 的 name作为url进行查找,需要在配置Handler的时候指定beanName(就是url)-->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
<!--2. 简单的 url 映射-->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<!--对BusinessController进行url映射,url 是queryList1.action
一个bean可以由多个url
-->
<prop key="/queryList1.action">businessController</prop>
<prop key="/queryList2.action">businessController</prop>
</props>
</property>
</bean>
<!--配置Handler 如下 -->
<bean id="businessController" name="/queryList.action" class="cn.ffcs.wifi.portal.web.action.BusinessController"/>
<bean id="CommonDataController" name="/deleteList.action" class="cn.ffcs.wifi.portal.web.action.CommonDataController"/>
<!--1 处理器映射器的bean 的 name作为url进行查找,需要在配置Handler的时候指定beanName(就是url)-->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
<!--2. 简单的 url 映射-->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<!--对BusinessController进行url映射,url 是queryList1.action
一个bean可以由多个url
-->
<prop key="/queryList1.action">businessController</prop>
<prop key="/queryList2.action">businessController</prop>
</props>
</property>
</bean>
结论:多个映射器可以并存。(如上两种映射器并存配置);映射是通过url来映射的
b.(两种处理器适配器的配置 )
注:!!!
配置SimpleControllerHandlerAdapter --> Controller要实现Controller接口
配置HttpRequestHandlerAdapter -->Controller 要实现HttpRequestHandler接口
<!--两种非注解的适配器 所有的适配器都实现HandlerAdapter接口-->
<!--第一种:适配器SimpleControllerHandlerAdapter 返回的是ModelAndView-->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
<!--第二种:适配器HttpRequestHandlerAdapter 和原始的servlet类似 使用 request转发或重定向
也可以使用这种方法 可以通过修改response,设置响应的数据格式,比如响应json数据
-->
<bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"/>
<!--第一种:适配器SimpleControllerHandlerAdapter 返回的是ModelAndView-->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
<!--第二种:适配器HttpRequestHandlerAdapter 和原始的servlet类似 使用 request转发或重定向
也可以使用这种方法 可以通过修改response,设置响应的数据格式,比如响应json数据
-->
<bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"/>
如:图1.1
图1.1
注意:前端控制器在以上的配置文件种加载 处理器映射器、处理器适配器,和视图解析器等;如果以上没有在springMVC.xml文件中配置,那么使用默认加载的(Spring 3.1之前的)。如(图1.2)
图1.2
- 注解的映射器 和 适配器。
在spring3.1之前使用的映射器是 org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping
使用的适配器是 org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter
<!--注解的映射器配置-->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
<!--注解的适配器配置-->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
<!--使用annotation-driven 代替以上的注解映射器和解析器的配置
annotation-driven 默认加载很多的参数绑定方法,比如json的转换解析器就默认加载了。
实际开发 使用这种!!!
-->
<mvc:annotation-driven></mvc:annotation-driven>
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
<!--注解的适配器配置-->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
<!--使用annotation-driven 代替以上的注解映射器和解析器的配置
annotation-driven 默认加载很多的参数绑定方法,比如json的转换解析器就默认加载了。
实际开发 使用这种!!!
-->
<mvc:annotation-driven></mvc:annotation-driven>
注意:
- 使用
<mvc:annotation-driven></mvc:annotation-driven>
- 注解的处理器适配器和注解的处理器映射器是配对使用的。 不能和非注解处理器映射器进行映射使用。(一注解和一非注解结合不行)
- 主键扫描配置
<!-- 自动扫描相关包下面的类,通过注解找到controller -->
<context:component-scan base-package="cn.ffcs.wifi.portal.web.action"/>
<context:component-scan base-package="cn.ffcs.wifi.portal.web.action"/>
- 视图解析器
<!--视图解析器
解析jsp,默认使用jstl标签,classpath下得有jstl的包
-->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<!--配置jsp路径的前缀-->
<property name="prefix" value="/WEB-INF/jsp/"/>
<!--配置jsp路径的后缀 这样在放回的modelandview等中的路径就不用写整个具体路径-->
<property name="suffix" value=".jsp"/>
</bean>
解析jsp,默认使用jstl标签,classpath下得有jstl的包
-->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<!--配置jsp路径的前缀-->
<property name="prefix" value="/WEB-INF/jsp/"/>
<!--配置jsp路径的后缀 这样在放回的modelandview等中的路径就不用写整个具体路径-->
<property name="suffix" value=".jsp"/>
</bean>
注:
UrlBasedViewResolver与InternalResourceViewResolver的用法
转:
http://www.cnblogs.com/crazy-fox/archive/2012/02/18/2357675.html
<bean id="viewResolver"
class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
这个定义的含义是指UrlBasedViewResolver将使用JstlView对象来渲染结果,并将handler method返回的modelAndView基础上,加上目录前缀/WEB-INF/jsp/和文件名称后缀.jsp。例如结果返回的viewName为helloworld,则对应的实际jsp为/WEB-INF/jsp/helloworld.jsp
当返回的viewName的前缀为forward:时,spring mvc将结果通过forward的方式转到对应的视图,例如forward:helloworld。这也是spring mvc缺省的使用模式。
当返回的viewName的前缀为redirect:时,spring mvc将结果通过redirect的方式转到对应的视图。例如redirect:helloworld
InternalResourceViewResolver为UrlBasedViewResolver的子类,它将InternalResourceView作为缺省的View类,如果当前classpath中有jstl的jar包时则使用JstlView作为缺省的view来渲染结果。因此以下使用InternalResourceViewResolver的定义应该和之前使用UrlBasedViewResolver定义的viewresolver的作用相同。
<bean id="viewResolver"
class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
1 0
- SpringMVC学习之springMVC项目的相关配置文件配置
- springmvc项目:springmvc配置文件
- SpringMVC的相关配置
- 【SpringMVC学习03】-SpringMVC的配置文件详解
- 关于SpringMVC相关配置文件
- springMVC的xml相关配置
- 创建SpringMVC项目之使用配置文件实现
- 使用springMVC框架的相关配置文件
- springmvc项目:spring配置文件
- SpringMvc的点点滴滴之springMvc的配置
- SpringMvc学习(1) springmvc的基本配置
- springmvc配置文件配置说明
- springMVC学习笔记之配置
- SpringMVC+mybatis+mysql项目开发的配置文件
- springMvc的配置文件springmvc.xml
- SpringMvc项目的完整配置
- springMVC-servlet.xml配置文件的基本配置
- 【springmvc学习】配置文件
- 椭圆机真的不伤膝盖吗
- 第八周OJ(5)打印数字图形
- jar包放在lib目录下,为什么还有build path一下?
- 收集Tomcat异常日志并发送邮件
- 用户-用户等级
- SpringMVC学习之springMVC项目的相关配置文件配置
- 深入理解java中的synchronized关键字
- WebSocket初探
- 错误总结
- 对自己的期望
- C/C++ 图像处理(13)------双目图像の深度图生成
- 生成二维码
- mysql复习小结一
- JavaScript闭包-闭包的作用域