搭建SpringMVC开发环境
2014-07-06 15:42
363 查看
通常在开发JavaEE项目中Web应用比较常用的框架组合Struts+Spring+Hibernate(SSH)和Struts+Spring+Mybatis(ibatis)(SSM)。
当使用Spring的MVC时候,整个Web应用的层次更加简单和情绪。
引入SpringMVC所依赖的两个jar,Spring-web-*.jar Spring-webmv-*.jar(*表示对应的版本)
在Web应用(web.xml)中配置Spring WebAppliactionContext的监听
Spring的配置文件进行了拆分,配置文件名格式为:spring-context-*.xml, 位于classes(src)目录下。
在Web应用(web.xml)中配置Spring MVC的Servlet(SpringMVC的核心类,前端控制器,处理请求)
SpringMVC的默认配置文件名为:<servletname>-servlet.xml 并且位于WEB-INF下,上面通过servlet的初始化参数contextConfigLocation对配置文件重新设置和命名。
关于servlet的url-pattern的设置非常重要的,并且很容易出错。上述配置表示所有的请求都要经servlet name是spring的这个servlet来处理,并且名为spring这个servlet的Web应用的默认servlet。
关于servlet的url-pattern的设置可以仔细阅读这篇文章:http://blog.csdn.net/caoxu1987728/article/details/2757877
4.处理特殊请求
根据上面的配置所有请求就要经过spring这个servlet来处理,这样对静态文件的请求由于没有对应的请求处理程序,将无法访问到静态资源,这个问题的解决方法是在spring-web-servlet.xml(如果不设置默认名称为:spring-servlet.xml)中添加静态资源处理配置。
5.servlet的url-pattern
a.如果url-pattern设置为:*.do,则请求通过扩展名类分发,就不存在4中的静态资源无法访问的问题
b.如果url-pattern设置为:/*, 则请求经过再次转发,重定向将再次被名为spring的servlet拦截(导致.*.jsp无效得到解析),默认的servlet名则是取自对应的web应用服务器的默认servlet命名。
下面配置是来自tomcat下conf/web.xml文件:
c.如果url-pattern设置为:/, 则覆盖了DefaultServlet,但是隐式的JspServlet仍然可以映射。
上面 a 是后缀映射,b是路径映射, c是默认映射,其它(/a/c/d, /a/b/c.do)这些都是精确的映射。
6.基于注解写一个SpringMVC的Controller用来处理请求
注:
编写这个示例用到Spring的注解,SpringMVC的jsp视图处理。因此需要在spring-web-servlet.xml文件中添加如下配置:
在/WEB-INF/view/下创建index.jsp文件,然后通过GET方式访问:http://localhost/webname/hello/index 将返回index.jsp中的内容。
7.Web应用中spring MVC和Spring WeabAppliactionContext(IOC)的关系
从上面的web.xml配置文件中可以看到SpringMVC的集成我们使用了配置org.springframework.web.servlet.DispatcherServlet,而servlet确实是可以在一个Web应用中配置多个,所以我们可以配置多个这样的servlet。
如下图是SpringWeb应用中Spring WebApplicationContext和Spring MVC(DispatcherServlet)的WebApplicationContext的关系
本文出自 “野马红尘” 博客,谢绝转载!
当使用Spring的MVC时候,整个Web应用的层次更加简单和情绪。
引入SpringMVC所依赖的两个jar,Spring-web-*.jar Spring-webmv-*.jar(*表示对应的版本)
在Web应用(web.xml)中配置Spring WebAppliactionContext的监听
<context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-context-*.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
Spring的配置文件进行了拆分,配置文件名格式为:spring-context-*.xml, 位于classes(src)目录下。
在Web应用(web.xml)中配置Spring MVC的Servlet(SpringMVC的核心类,前端控制器,处理请求)
<servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-web-servlet.xml</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
SpringMVC的默认配置文件名为:<servletname>-servlet.xml 并且位于WEB-INF下,上面通过servlet的初始化参数contextConfigLocation对配置文件重新设置和命名。
关于servlet的url-pattern的设置非常重要的,并且很容易出错。上述配置表示所有的请求都要经servlet name是spring的这个servlet来处理,并且名为spring这个servlet的Web应用的默认servlet。
关于servlet的url-pattern的设置可以仔细阅读这篇文章:http://blog.csdn.net/caoxu1987728/article/details/2757877
4.处理特殊请求
根据上面的配置所有请求就要经过spring这个servlet来处理,这样对静态文件的请求由于没有对应的请求处理程序,将无法访问到静态资源,这个问题的解决方法是在spring-web-servlet.xml(如果不设置默认名称为:spring-servlet.xml)中添加静态资源处理配置。
<mvc:resources location="/resource/css/" mapping="/resource/css/**" cache-period="3600000" /> <mvc:resources location="/resource/images/" mapping="/resource/images/**" cache-period="3600000" /> <mvc:resources location="/resource/js/" mapping="/resource/js/**" cache-period="3600000" />
5.servlet的url-pattern
a.如果url-pattern设置为:*.do,则请求通过扩展名类分发,就不存在4中的静态资源无法访问的问题
b.如果url-pattern设置为:/*, 则请求经过再次转发,重定向将再次被名为spring的servlet拦截(导致.*.jsp无效得到解析),默认的servlet名则是取自对应的web应用服务器的默认servlet命名。
下面配置是来自tomcat下conf/web.xml文件:
<!-- 注: 由此看出tomcat的默认servlet name是default--> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
<servlet-mapping> <servlet-name>jsp</servlet-name> <url-pattern>*.jsp</url-pattern> <url-pattern>*.jspx</url-pattern> </servlet-mapping>
c.如果url-pattern设置为:/, 则覆盖了DefaultServlet,但是隐式的JspServlet仍然可以映射。
上面 a 是后缀映射,b是路径映射, c是默认映射,其它(/a/c/d, /a/b/c.do)这些都是精确的映射。
6.基于注解写一个SpringMVC的Controller用来处理请求
package com.name.web; import java.util.Date; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @Controller @RequestMapping(value = { "/hello" }) public class HelloController { @RequestMapping(value = "/index", method = RequestMethod.GET) public String index(HttpServletRequest request, Map<String, Object> model) { return "index"; } }
注:
编写这个示例用到Spring的注解,SpringMVC的jsp视图处理。因此需要在spring-web-servlet.xml文件中添加如下配置:
<context:component-scan base-package="com.name.web"></context:component-scan>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"> </property> <property name="prefix" value="/WEB-INF/view/"></property> <property name="suffix" value=".jsp" /> </bean>
在/WEB-INF/view/下创建index.jsp文件,然后通过GET方式访问:http://localhost/webname/hello/index 将返回index.jsp中的内容。
7.Web应用中spring MVC和Spring WeabAppliactionContext(IOC)的关系
从上面的web.xml配置文件中可以看到SpringMVC的集成我们使用了配置org.springframework.web.servlet.DispatcherServlet,而servlet确实是可以在一个Web应用中配置多个,所以我们可以配置多个这样的servlet。
如下图是SpringWeb应用中Spring WebApplicationContext和Spring MVC(DispatcherServlet)的WebApplicationContext的关系
本文出自 “野马红尘” 博客,谢绝转载!
相关文章推荐
- java后台接口开发框架SpringMVC框架搭建,环境配置,Tomcate服务器搭建
- 关于开发springmvc和mybatis的环境搭建
- AngularJS整合Springmvc、Spring、Mybatis搭建开发环境
- 01.0 SpringMVC4 的开发环境搭建
- springmvc开发问题汇总(环境搭建)
- springMVC(一)、springMVC框架开发环境搭建
- springMVC笔记系列(17 特别篇的开始)——springMVC要点回顾及idea开发环境搭建
- SpringMVC学习-->第一天-搭建开发环境
- Java Web开发SpringMVC和MyBatis框架开发环境搭建和简单实用
- 如何搭建一个SpringMVC的开发环境(非注解)
- 搭建SpringMVC开发环境
- 1、搭建springMVC开发环境以及HelloWorld测试
- 详解SpringMVC和MyBatis框架开发环境搭建和简单实用
- SpringMVC学习使用一:搭建简单的SpringMVC开发项目环境并使用
- AngularJS整合Springmvc、Spring、Mybatis搭建开发环境
- AngularJS整合Springmvc、Spring、Mybatis搭建开发环境
- SpringMVC基础(一)开发环境搭建
- Eclipse开发J2ME的环境搭建(文章链接收集)
- Redhat Linux9 Gnome桌面上搭建C/C++IDE开发环境
- 使用EclipseME+Eclipse3.0+J2METoolKit2.2 搭建 J2ME 开发环境