`
former
  • 浏览: 96520 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

spring3.0 rest在resin中的实现

阅读更多

spring3.0发布后,其web方面一个很大的特性是支持rest的架构。rest的好处不用多说,spring中关于rest的配置也很简单。看了下spring-sample中的例子,主要的设置在web.xml中,首先增加了tomcat容器中关于响应静态资源的servlet:

	<!--
		Defines the 'default' servlet (usually for service static resources).
		Uncomment this in containers (GlassFish) that do not declare this 
		implicit definition out of the box, or change the name of the servlet mapping 
		below to the appropriate one.
		
	<servlet>
		<servlet-name>default</servlet-name>
		<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
		<init-param>
			<param-name>debug</param-name>
			<param-value>0</param-value>
		</init-param>
		<init-param>
			<param-name>listings</param-name>
			<param-value>false</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	-->
	<!--
	 - Map static resources to the default servlet
	 - examples:
	 -     http://localhost:8080/static/images/pets.png
	 -     http://localhost:8080/static/styles/petclinic.css
	-->
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>/static/*</url-pattern>
	</servlet-mapping>

 

 其次将org.springframework.web.servlet.DispatcherServlet的url过滤改为“/”:

	<!--
		- Servlet that dispatches request to registered handlers (Controller implementations).
		- Has its own application context, by default defined in "{servlet-name}-servlet.xml",
		- i.e. "petclinic-servlet.xml".
		-
		- A web app can contain any number of such servlets.
		- Note that this web app has a shared root application context, serving as parent
		- of all DispatcherServlet contexts.
	-->
	<servlet>
		<servlet-name>petclinic</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<load-on-startup>2</load-on-startup>
	</servlet>

	<!--
		- Maps the petclinic dispatcher to "*.do". All handler mappings in
		- petclinic-servlet.xml will by default be applied to this subpath.
		- If a mapping isn't a /* subpath, the handler mappings are considered
		- relative to the web app root.
		-
		- NOTE: A single dispatcher can be mapped to multiple paths, like any servlet.
	-->
	<servlet-mapping>
		<servlet-name>petclinic</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>

 

 

最后有一个辅助的filter:

    <filter>
        <filter-name>httpMethodFilter</filter-name>
        <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>httpMethodFilter</filter-name>
        <servlet-name>petclinic</servlet-name>
    </filter-mapping>

 

第一个servlet处理的静态资源的请求,但是只有在tomcat容器(或者是spring的那个容器)中才有效果,如果放在resin中是不行的,即使你将tomcat的jar包通过maven将其引入你的项目lib中。根据看DefaultServlet的源码可知,其需要找一些默认的容器资源,而这些在resin中是没有的……而且通过看spring-sample的源码可知,这个方法要求页面引用WebRoot根目录下的资源时,通过“/static/styles/petclinic.css”这样的路径去引用css,而不是真正的路径“/petclinic.css”。

如果不再resin中解决这个问题,spring的DispatcherServlet就会处理静态资源进而报错。为此,我们使用resin自带的servlet:“resin-file”,详见resin中的配置文件:app-default.xml。其做法也很简单,将之前tomcat的servlet中web.xml中去掉,换成这个:

	<servlet-mapping>
		<servlet-name>resin-file</servlet-name>
		<url-pattern>/resources/*</url-pattern>
	</servlet-mapping>

 

这个配置与之前tomcat的不同,区别在于,我们将静态资源放在WebRoot的resources文件夹下(或者任何一个你喜欢的并且允许放的位置),在页面上直接使用这个css的真正路径“/resources/css/system.css”即可。如果静态资源有任何的变动,只要将servlet中的url-pattern修改或者多配几个</servlet-mapping>即可。

0
2
分享到:
评论

相关推荐

    Spring3.0实现REST实例

    在Spring 3.0中,我们可以使用以下技术实现REST服务: **1. @RestController注解:** 这是Spring MVC提供的一个新注解,它将@Controller和@ResponseBody合并在一起,表明控制器方法的返回值将直接转换为HTTP响应体...

    spring3.0 jar包

    在“lib”文件夹中,可能包含了Spring 3.0所需的一系列jar包,如spring-context、spring-beans、spring-webmvc等,这些jar包分别对应Spring框架的不同组件和服务。正确导入这些库文件,开发者就可以利用Spring 3.0的...

    Spring3.0 rest 实例

    在Spring 3.0中,我们可以通过定义`@Controller`类和使用`@RequestMapping`注解来映射HTTP方法到特定的处理函数,从而实现这些原则。 ### 2. 创建RESTful控制器 首先,我们需要创建一个`@Controller`注解的类,该...

    spring3.0帮助文档(包含REST资料)

    ◆全面的REST支持:在Spring MVC中天然支持REST,如REST式的请求映射,URI变量提取等。 ◆富Portlet 2.0支持:Spring MVC完全支持Portlet 2.0环境以及Portlet 2.0中新的事件与资源请求模型。 ◆对象/XML映射(OXM...

    spring3.0jar包

    Spring 3.0 是一个里程碑式的版本,在Java企业级应用开发领域中占据着核心地位。这个版本的发布引入了许多新特性、改进和优化,旨在提升开发者的工作效率和应用程序的可维护性。Spring 框架以其强大的依赖注入...

    Spring3.0中文帮助文档

    以上只是Spring 3.0中部分关键特性和功能的概述,实际的中文帮助文档会详细解释这些概念,提供使用示例,并指导开发者如何在项目中有效地应用Spring框架。通过深入学习和实践,开发者能够充分利用Spring 3.0的优势,...

    Spring 3.0就这么简单_Part3.pdf

    《Spring3.0就这么简单》适合于具有一定Java编程基础的读者,以及在Java平台下进行各类软件开发的开发人员和测试人员等。 Spring 3.0就这么简单_Part1.pdf Spring 3.0就这么简单_Part2.pdf Spring 3.0就这么简单_...

    spring3.0 全部jar包

    在下载的"spring3.0 全部jar包"中,"dist"文件夹可能包含了所有Spring 3.0框架运行所需的库文件,包括核心容器、AOP、ORM、Web、Test等多个模块的jar包。这些jar文件是构建和运行Spring 3.0应用的基础,它们包含了...

    Spring 3.0就这么简单源代码

    《Spring3.0就这么简单》的主旨就是帮助读者尽快上手,掌握Spring3.0的核心内容,正确地进行项目实战,同时汲取Spring的思想,并最终将这种思想灵活运用到实际工作中。《Spring3.0就这么简单》主要介绍了Spring3.0的...

    spring3.0完整框架

    这个压缩包中的"spring3.0"文件很可能包含了所有需要的Spring 3.0框架相关的jar包,包括核心库、AOP、Web、MVC等模块的jar,是搭建Spring 3.0环境所必需的。开发者可以通过这些jar包快速构建基于Spring 3.0的应用,...

    spring 3.0 jar 包

    Spring 3.0是Spring框架的一个重要版本,它在Java应用程序开发中扮演着核心角色,尤其是在企业级应用中。这个版本引入了许多新特性,优化了性能,并提供了更好的开发者体验。以下是一些关于Spring 3.0及其jar包的...

    spring3.0 mvc和rest入门例子

    在压缩包文件"spring3_rest"中,可能包含了一个简单的Spring 3.0 MVC和REST的例子,你可以通过这个例子学习如何配置Spring MVC的DispatcherServlet,创建RESTful端点,处理请求和响应,以及如何使用JUnit进行测试。...

    spring 3.0 jar包

    Spring 3.0是Spring框架的一个重要版本,它在2009年发布,为Java开发者带来了许多新特性和改进。这个版本标志着Spring框架在企业级应用开发中的成熟,提供了更强大、更灵活的解决方案。 1. **依赖注入增强**: ...

    spring3.0的API

    在Spring 3.0中,核心容器(Core Container)组件得到了显著提升,主要体现在以下几个方面: 1. **Bean表达式语言(Bean Expression Language, BEML)**:Spring 3.0引入了基于Groovy的表达式语言,允许在配置中...

    spring3.0MVC中文教材

    Spring 3.0 MVC的核心组件是`DispatcherServlet`,需要在`web.xml`中进行配置: ```xml &lt;servlet-name&gt;example &lt;servlet-class&gt;org.springframework.web.servlet.DispatcherServlet &lt;load-on-startup&gt;1 ...

    spring3.0 MVC中文教程

    2. **第2部分:在Spring 3.0 MVC中创建Hello World应用程序** - 通过一个简单的示例来展示如何快速启动一个Spring MVC项目。 3. **第3部分:在Spring 3.0 MVC中进行表单处理** - 探讨如何使用Spring MVC处理表单提交...

    spring3.0发行版

    面向切面编程(AOP)在Spring 3.0中也得到了强化。新增的@Aspect注解使得定义切面更加直观,而@AfterReturning、@AfterThrowing等注解则方便了后置通知的编写。此外,Spring 3.0还支持了基于注解的切点表达式,让...

    Spring3.0中文版

    在这个CHM文件中,你将找到3.2版本的API文档,涵盖了所有类和常量字段值,这对于深入理解和使用Spring3.0至关重要。 1. **模块化设计**:Spring3.0强化了其模块化结构,允许开发者根据项目需求选择使用特定模块,如...

    Spring3.0Jar包

    Spring 3.0 是 Spring 框架的一个重要版本,发布于2009年,它带来了许多新特性和改进,极大地增强了 Java 开发者在企业级应用开发中的灵活性和效率。Spring 框架是一个全面的后端开发解决方案,核心特性包括依赖注入...

Global site tag (gtag.js) - Google Analytics