`
ferreousbox
  • 浏览: 287501 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

spring web module应用中的几个需要注意的地方

阅读更多

    这两天在研究spring dm中web module时候遇到些问题,现已成功解决,现在将问题和解决方法发布如下,避免大家继续走弯路,呵呵。

 

1.开发的时候请使用OSGI推荐的Import-Package方式来导入包,不要直接设置工程的依赖,这个不是我遇到的问题,也拿出来说下,因为OSGI的开发方式还是有些不一样的。

 

2.在spring的bean定义文件中,如果有用到spring框架的类,请将其package使用Import-Package导入到class-path中,比如org.springframework.web.servlet.handler.SimpleUrlHandlerMapping等类;

 

3.在MANIFEST.MF文件中指定了Web-DispatcherServletUrlPatterns时千万要注意它的规则,首先它必须是符合servlet的url-pattern的,其规则如下:

    在web.xml文件中,以下语法用于定义映射:
    1.以”/’开头和以”/*”结尾的是用来做路径映射的。
    2.以前缀”*.”开头的是用来做扩展映射的。
    3.“/” 是用来定义default servlet映射的。
    4.剩下的都是用来定义详细映射的。比如: /aa/bb/cc.action
    所以,为什么定义”/*.action”这样一个看起来很正常的匹配会错?因为这个匹配即属于路径映射,也属于扩展映射,导致容器无法判断。

    同时,spring的mvc在进行url匹配的时候是将Web-DispatcherServletUrlPatterns去掉后再匹配mappings的,如spring的定义文件的mappings如下:

<property name="mappings">
  <props>
    <prop key="/abcd/test.do">test_Controller</prop>
  </props>
</property>

    如果你的Web-DispatcherServletUrlPatterns指定为/abcd/*,那么访问地址应该是:/abcd/abcd/test.do,而不是/abcd/test.do。这个问题弄得我很郁闷啊,不过终于解决了,呵呵。

 

4.如果在web module中有用到filter,如下步骤:

   1.新建类实现javax.servlet.Filter接口;

   2.在Bundle中Import-Package如下包:org.springframework.web.filter,因为spring是用DelegatingFilterProxy类来做filter委托代理的,这个是运行时的要求,编译并不会报错的,OSGI的class loader原因,呵呵;

   3.然后在bean定义文件中设置filter的bean,命名ID,然后在MANIFEST.MF中加入:Web-FilterMappings: myfilter;url-patterns:="*.do"行,其中url-patterns可以使用逗号分割多个表达式,但必须都是符合servlet规范的url-patterns.

    完成上面的步骤后,我们就可以使用filter了在spring web  module。

1
0
分享到:
评论

相关推荐

    基于OSGi和Spring开发Web应用.doc

    在基于OSGi和Spring开发Web应用时,需要指定Target Platform到所用到的所有的bundle包的目录中,创建一个Service接口bundle和一个接口bundle的实现bundle,然后将这个实现类发布成为一个OSGI服务。最后,创建一个WEB...

    spring webmvc tx等源码三

    在源码中,主要涉及到以下几个关键组件: 1. DispatcherServlet:这是Spring MVC的前端控制器,它负责接收HTTP请求,并根据配置找到合适的处理器进行处理。 2. HandlerMapping:这个接口定义了如何将请求映射到...

    Spring_Framework_ API_5.0.5 (CHM格式)

    Spring5 是一个重要的版本,距离Spring...随着 Java、JavaEE 和其他一些框架基准版本的增加,SpringFramework5 取消了对几个框架的支持。例如: Portlet Velocity JasperReports XMLBeans JDO Guava

    Spring的69个问题.docx

    该模块还支持了几个面向 web 的任务,如透明的处理多文件上传请求及将请求参数同业务对象绑定起来。 Spring MVC 模块 Spring 提供 MVC 框架构建 web 应用程序。Spring 可以很轻松的同其他 MVC 框架结合,但 Spring...

    在自己的项目中利用axis2+spring发布webservice与客户端调用包括session

    标题中的“在自己的项目中利用axis2+spring发布webservice与客户端调用包括session”指出的是一个关于在实际项目开发中如何使用Axis2和Spring框架来发布Web服务,并且涉及了Web服务客户端调用以及会话(session)...

    java spring简介及相关面试题

    - **定义**: Spring框架的设计理念之一是非侵入性,这意味着基于Spring开发的应用程序中的对象并不需要依赖于Spring的API。 - **意义**: 这种设计使得Spring与其他框架和库的集成变得更加容易,同时也降低了应用...

    spring-developing-java-applications-enterprise

    Spring框架的核心架构主要包括以下几个模块: - **Spring Core Container**:包括了BeanFactory和ApplicationContext两个核心接口,它们是Spring IoC容器的基础。 - **BeanFactory**:是最基本的容器,提供了配置...

    spring-global-context:这个项目展示了如何让 JBoss 模块能够在 Wildfly 下的 web 应用程序之间共享单个 Spring 上下文

    3. 配置 Web 应用:在每个需要共享 Spring 上下文的 Web 应用的 `WEB-INF/jboss-deployment-structure.xml` 文件中,引入刚才创建的 JBoss 模块,这样应用就能访问到共享的上下文。 4. 使用上下文:在 Web 应用的...

    spring-mvc-showcase-case1-client

    整合过程中,需要注意以下几点: 1. Spring MVC配置:设置内容类型为JSON,以便AngularJS能正确解析响应。 2. 安全性:考虑跨域资源共享(CORS)策略,确保前后端通信的安全。 3. 数据交互:定义RESTful API接口,...

    快速开发框架 Spring Boot -ss.pdf

    在集成开发环境(如IntelliJ IDEA)中创建Spring Boot工程,通常包括新建Spring Initializr工程、编辑工程以及运行工程几个步骤。新建工程时,可以指定项目的Group、Artifact以及依赖项。系统会自动生成一个启动类,...

    maven+Spring+mybatis分模块开发

    在"manage-master"这个项目中,我们可以预期有以下几个主要模块: 1. **父模块**(Parent):包含所有子模块的公共依赖和配置。 2. **后端服务模块**(Service Module):包含业务逻辑和服务接口,可能使用Spring的...

    multi-module-serve

    在实际操作中,多模块项目的结构通常包括以下几个部分: 1. **父模块(Parent Module)**:父模块主要用来管理子模块间的版本依赖,设置全局的构建配置,如编码规范、插件版本等。通过在pom.xml或build.gradle文件...

    Gradle构建(war) web项目示例

    总结来说,Gradle构建(war) web项目涉及以下几个关键点: 1. 应用'war'插件:提供构建web应用的基本配置。 2. 配置依赖:通过`dependencies`声明项目所需的库。 3. 设置源代码和资源目录:确保编译和打包时正确处理...

    spring-boot-activiti-moduler-test.zip

    在整合Spring Boot与Activiti时,我们需要以下几个关键步骤: 1. **添加依赖**:在Spring Boot的`pom.xml`文件中,我们需要引入Activiti的依赖。这通常包括`activiti-spring`和`activiti-modeler`等模块,确保...

    java源码:Spring4GWT.zip

    【Spring4GWT】是一个将Spring框架与Google Web Toolkit(GWT)集成的项目源码,旨在帮助开发者在GWT应用程序中充分利用Spring的功能,如依赖注入、服务定位、AOP等。这个压缩包包含了实现这一集成的关键代码和配置...

    Spring面试题和答案

    Spring框架的核心组成部分包括以下几个关键模块: 1. **核心容器(Core Container)** - **Core module**:提供Spring框架的基本功能,是Spring的基础。 - **Bean module**:提供BeanFactory的实现,这是Spring...

    tapestry4+spring+hibernate整合实例

    这通常涉及到以下几个步骤: 1. **环境配置**:首先,我们需要确保正确安装了JDK、Tomcat服务器以及相关的开发工具,如Eclipse或IntelliJ IDEA。同时,需要在项目中引入Tapestry4、Spring和Hibernate的依赖库。 2....

    java私塾][Spring讲解+webwork2整合+webwork2整合全套

    WebWork2的架构主要包括以下几个部分: - **Action**:处理具体的业务逻辑。 - **Interceptor**:类似于过滤器,可以在请求到达Action之前或之后执行某些操作。 - **Module**:一组相关的Action和配置文件的集合。 -...

    [SpringBoot学习]-IDEA创建Gradle多Module结构的SpringBoot项目代码

    创建一个多模块Spring Boot项目时,我们需要考虑以下几个步骤: 1. **初始化Gradle项目**:在IDEA中选择“New Project”,然后选择“Gradle”,勾选“Use Gradle Wrapper”并指定Java版本。确保选择“空项目”,...

    SpringBoot 配置构建war部署到tomcat运行

    接下来,为了使Spring Boot应用可以被Tomcat识别为一个标准的Servlet容器应用,我们需要在`src/main/webapp/WEB-INF`目录下创建`web.xml`文件。但要注意,Spring Boot 2.x及以上版本默认并不支持这种方式,因为它们...

Global site tag (gtag.js) - Google Analytics