springMVC之web.xml,spring-mvc.xml与applicationContext.xml

    整理了一下springmvc 是如何对请求路径的拦截,转发,返回试图的。

         先上web.xml中的核心配置:

            

         在上spring-mvc.xml中的配置

         自定义权限拦截器:可以配置直接放行的请求。


三:openSessionInViewFilter的的作用


Spring为我们解决Hibernate的Session的关闭与开启问题。
Hibernate 允许对关联对象、属性进行延迟加载,但是必须保证延迟加载的操作限于同一个 Hibernate Session 范围之内进行。如果 Service 层返回一个启用了延迟加载功能的领域对象给 Web 层,当 Web 层访问到那些需要延迟加载的数据时,由于加载领域对象的 Hibernate Session 已经关闭,这些导致延迟加载数据的访问异常

(eg: org.hibernate.LazyInitializationException:(LazyInitializationException.java:42)
- failed to lazily initialize a collection of role: cn.easyjava.bean.product.ProductType.childtypes, no session or session was closed
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: cn.easyjava.bean.product.ProductType.childtypes, no session or session was closed)

用来把一个Hibernate Session和一次完整的请求过程对应的线程相绑定。目的是为了实现"Open Session in View"的模式。例如: 它允许在事务提交之后延迟加载显示所需要的对象。

而Spring为我们提供的OpenSessionInViewFilter过滤器为我们很好的解决了这个问题。OpenSessionInViewFilter的主要功能是用来把一个Hibernate Session和一次完整的请求过程对应的线程相绑定。目的是为了实现"Open Session in View"的模式。例如: 它允许在事务提交之后延迟加载显示所需要的对象。
OpenSessionInViewFilter 过滤器将 Hibernate Session 绑定到请求线程中,它将自动被 Spring 的事务管理器探测到。所以 OpenSessionInViewFilter 适用于 Service 层使用HibernateTransactionManager 或 JtaTransactionManager 进行事务管理的环境,也可以用于非事务只读的数据操作中。

它有两种配置方式OpenSessionInViewInterceptor和OpenSessionInViewFilter,功能相同,只是一个在web.xml配置,另一个在application.xml配置而已。

Open Session In View在request把session绑定到当前thread期间一直保持hibernate session在open状态,使session在request的整个期间都可以使用,如在View层里PO也可以lazy loading数据,如 ${ company.employees }。当View 层逻辑完成后,才会通过Filter的doFilter方法或Interceptor的postHandle方法自动关闭session。


四:springMVC 适配器:

org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter的Bean配置中,我们加入了messageConverters属性,在该属性中我们有配置mappingJacksonHttpMessageConverter这个Bean,它就是用来处理json数据转换的。

在mappingJacksonHttpMessageConverter的Bean配置中,我们有一个supportedMediaTypes属性,在这个属性

中我们添加了application/json;charset=UTF-8这个值,它是为了处理返回的json数据的编码,默认是ISO-88859-1的,这里我们把它设置为UTF-8,如果有乱码的情况,我们只需要修改这里就可以了。

五:1视图解析器

使用InternalResourceViewResolver视图解析器进行视图的解析。

这里的property的name很关键:

viewClass指定了选择何种视图技术,这里使用JSTL技术;

prefix是视图文件的前缀,即目录名,如果我们把.jsp放到了目录/WebRoot/之下,只需要配置一个“/”,如果放在目录/WebRoot/WEB-INF/目录下的一个名称为pages的目录中,这里prefix的值应该为/WEB-INF/pages;

suffix是视图文件的后缀,即扩展名,如使用JSP文件,则为“.jsp”。

五.2文件上传配置


书山有路勤为径,学海无涯苦作舟。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring MVC是基于Spring框架实现的Web MVC框架,需要在Web应用程序中配置相关的配置文件以启动和使用它。其中,applicationContext.xmlweb.xml是两个必须的配置文件。 applicationContext.xml文件是Spring IOC容器的配置文件,用于管理和配置Spring容器中的Bean,其中包括Controller、Service、DAO等组件的配置。该文件通常放在WEB-INF目录下的classes文件夹中。 web.xml文件是Web应用程序的配置文件,用于配置Servlet、Filter和Listener等Web组件。其中包括DispatcherServlet的配置,该Servlet是Spring MVC的核心控制器。web.xml文件通常放在WEB-INF目录下。 在web.xml文件中,需要配置DispatcherServlet以启动Spring MVC框架,如下所示: ```xml <web-app> <!--配置DispatcherServlet--> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--配置Spring MVC配置文件的路径--> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <!--配置DispatcherServlet映射--> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app> ``` 在上述配置中,需要配置DispatcherServlet的servlet-class为org.springframework.web.servlet.DispatcherServlet,同时配置Spring MVC配置文件的路径。此外,还需要配置DispatcherServlet的映射。 总的来说,applicationContext.xmlweb.xml是Spring MVC框架启动和使用的必要配置文件,需要根据具体的应用程序需求进行配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值