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

Struts2中使用servlet的问题

阅读更多

      最近整合SSH碰到一个棘手的问题就是同时使用Struts2和Servlet的问题,大家知道Struts2使用转发器转发请求,那怎么使用自定义的servlet转发一些特殊的请求呢,如果直接向平时使用Servlet那样(在web.xml配置一下)是肯定不行的,下面就介绍一下如何使用:

首先向平时在web.xml配置一下:如下本人做的一个验证码servlet。

<servlet>
    <servlet-name>image</servlet-name>
    <servlet-class>cn.edu.hrbeu.servlet.AuthImg</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>image</servlet-name>
    <url-pattern>/image</url-pattern>
  </servlet-mapping>

 同时配置好struts2的servlet转发所有的请求:

 <filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

 因为Struts2是只能通过上边的转发器(FilterDispatcher)转发请求的,因此必须创建一个Action类,作为中间的跳板来转发请求。

下面是我创建的Action类:

public class DispatchMyServletAction extends ActionSupport {

 /**
  * 转发自定义的Servlet,如验证码的生成
  */
 private static final long serialVersionUID = 1L;
 
 public String authImg()
 {
  return SUCCESS;
 }
}

 通过Spring注册一下管理Action

bean id="dispatchMyServletAction" class="cn.edu.hrbeu.action.DispatchMyServletAction"> 
 </bean>

 

<package name="struts-common" namespace="/" extends="struts-default">
     <!-- 验证码的解决 -->
    <action name="authImg" class="dispatchMyServletAction" method="authImg">
    <result>/image</result>
    </action>   
     </package>

 这样就可以在页面中通过action正常使用自己定义的servlet了。我的使用部分如下:

....

验证码如图:<img src="authImg" id="authImg"/>看不清?<a href="#" onClick="refresh()">单击此处刷新</a>

 

详细参考我的微博:http://yuexiaodong2011.blog.163.com

分享到:
评论

相关推荐

    struts2和jspServlet上传

    Struts2和JSP Servlet上传是Web开发中的常见场景,主要涉及如何在用户提交表单时处理文件上传请求。这两个技术都是Java Web开发的重要组成部分,Struts2是一个基于MVC设计模式的开源框架,而Servlet是Java EE规范的...

    struts2和servlet的共存问题

    但在某些场景下,开发者可能需要同时使用Struts2和其他Servlet技术(如自定义Servlet或第三方Servlet),这时就会遇到Struts2与Servlet的共存问题。 #### 二、问题描述 当Struts2作为Web应用程序的前端控制器时,...

    Struts2中Servlet的配置

    在Struts2中,Servlet的配置和使用方式与标准Servlet容器中的配置有所不同,主要是为了更好地整合框架的功能。以下是关于Struts2中Servlet配置的相关知识点: 1. **实现ServletResponseAware/ServletRequestAware...

    Struts2访问ServletAPI

    本文将深入探讨如何在Struts2中访问Servlet API。 首先,理解Struts2的执行流程至关重要。当一个请求到达服务器时,Struts2的过滤器(通常名为`FilterDispatcher`或`StrutsPrepareAndExecuteFilter`)会捕获这个...

    Struts2 直接访问Servlet API(二十五)

    Struts2是一个非常流行的...综上所述,了解如何在Struts2中直接访问Servlet API是非常有用的技能,它可以帮助开发者更好地控制Web应用程序的行为,并在必要时提升性能。但同时,也要注意平衡灵活性和代码的可维护性。

    java上传与下载——struts2和servlet案例

    在Struts2中,我们通常会在Action类中处理这个逻辑,而在Servlet中,这将在doGet或doPost方法内完成。 现在,我们来看案例中的两个DEMO——JqUploadTest和CosUpload。JqUploadTest可能是指使用jQuery的Upload插件...

    servlet和struts2笔记

    ### servlet和struts2笔记 #### 一、Servlet 基础 **Servlet** 是 Java Web 开发中的一种核心技术,它被设计用于处理客户端发送到服务器的 HTTP 请求,并且能够生成响应。Servlet 可以看作是服务器端的小程序,...

    Struts2 part 3:在Action中使用ServletAPI

    在"Struts2 part 3:在Action中使用ServletAPI"这一主题中,我们将深入探讨如何在Struts2的动作类(Action)中集成和利用Servlet API来增强应用的功能。 Servlet API是Java Servlet规范的一部分,它提供了一系列...

    关于struts和servlet同时用

    2. 服务器接收到请求后,Servlet容器(如Tomcat)根据web.xml中的配置找到对应的Servlet(通常是Struts的Front Controller,如.struts2Dispatcher)。 3. Struts DispatcherServlet解析请求,根据配置文件确定要调用...

    Struts2之Servlet API及单元测试初识案例struts005

    Struts2中的`ActionServlet`就是对Servlet API的一种扩展,它作为整个框架的调度中心,负责接收请求、调用Action并返回相应的结果。 在Struts2中,Servlet API主要体现在以下几点: 1. **过滤器(Filter)**:...

    Servlet简单模拟Struts2

    3. **动态生成Action的代理**:在Struts2中,Action是业务逻辑的载体,通过动态代理,Struts2可以在调用实际Action方法之前/之后执行一些额外的操作。在Servlet中,我们可以使用Java的反射API来创建Action的代理类。...

    MAX的struts2教程、struts2 API、servlet API

    3. **理解注解**:查看Struts2中的注解,了解其在代码中的作用和配置方式。 4. **深入源码**:API文档可以帮助开发者在必要时深入源码,理解框架内部的工作机制。 最后,"Servlet+API[China].chm"是Servlet API的...

    Struts2之Servlet文件上传详解案例struts010

    在Struts2中,我们可以使用`CommonsFileUpload`库来处理上传的文件。首先,需要在`struts.xml`配置文件中启用`params interceptor`和`fileUpload interceptor`。这两个拦截器分别负责解析请求参数和处理文件上传。 ...

    Servlet和Struts2的交互(转载)

    Servlet和Struts2是两种在Java Web开发中广泛使用的框架,它们在构建动态Web应用程序时起着关键作用。Servlet是Java EE规范的一部分,提供了一种服务器端编程模型,用于处理HTTP请求并生成响应。而Struts2是一个基于...

    Struts2中直接和间接访问ServletAPI以及动态方法调用之感叹号

    然而,在Struts2中,我们通常不直接与Servlet API交互,而是通过Action类和Struts拦截器来处理请求。直接访问Servlet API可能涉及使用`HttpServletRequest`、`HttpServletResponse`和`ServletConfig`等对象,这可能...

    servlet与struts简介

    通过本文的介绍,我们可以了解到Servlet和Struts的基本概念及其在构建Web应用程序中的作用。虽然直接使用Servlet和JSP可以快速实现简单的Web应用,但对于更复杂的应用程序,采用如Struts这样的框架可以带来更好的...

    struts2 Action 包 命名空间 servlet API

    总的来说,Struts2 Action包的命名空间和Servlet API的结合使用,使得开发者能够灵活控制请求的处理流程,通过拦截器实现通用功能,同时利用视图组件创建丰富的用户界面。通过对框架核心类的了解,可以更深入地掌握...

    Struts2和servlet的中文乱码问题

    在Web开发中,尤其是使用Struts2和Servlet框架时,中文乱码问题是一个常见的困扰。本文将详细解析如何解决这两个框架中的中文乱码问题。 首先,我们来看Struts2的情况。在处理中文乱码时,主要涉及到两种HTTP请求...

    在struts2中使用freemarker模版

    要开始在Struts2中使用FreeMarker模板,首先需要将`freemarker-2.3.8.jar`库文件导入到你的项目的`WEB-INF/lib`目录下。这个库包含了FreeMarker模板引擎的所有必要组件。然后创建一个新的web工程,例如`...

Global site tag (gtag.js) - Google Analytics