`
hain
  • 浏览: 449486 次
  • 来自: ...
社区版块
存档分类
最新评论

ActionServlet

阅读更多
java.lang.Object
  |
  +--javax.servlet.GenericServlet
        |
        +--javax.servlet.http.HttpServlet
              |
              +--org.apache.struts.action.ActionServlet

Struts提供了一个缺省版本的ActionServlet类,你可以继承这个类,覆盖其中的一些方法来达到你的特殊处理的需要。ActionServlet继承与javax.servlet.http.HttpServlet,所以在本质上它和一个普通的servlet没有区别,你完全可以把它当做一个servlet来看待,只是在其中完成的功能不同罢了。ActionServlet主要完成如下功能:

将一个来自客户端的URI映射到一个相应的Action类

如果是这个Action类是第一次被调用,那么实例化一个并放入缓存

如果在配置文件(struts-config.xml)中指定了相应的ActionForm,那么从Request中抓取数据填充FormBean

调用这个Action类的perform()方法,传入ActionMapping的一个引用,对应的ActionForm、以及由容器传给ActionServlet的HttpServletRequest、HttpServletResponse对象。


确省版本的ActionServlet会从配置文件web.xml中读取如下初始化参数:

application
应用使用的资源包(resources bundle)的基类

factory
用于创建应用的MessageResources对象的MessageResourcesFactory的类名。确省是org.apache.struts.util.PropertyMessageResourcesFactory。

config
Struts的配置文件,确省是/WEB-INF/struts-config.xml。注意这儿是与应用Context关联的相对路径。

content
定义了确省的内容类型和编码格式,它会被自动地被设置到每个response中,如果JSP/Servlet中没有明确的设置。确省是text/html。

debug
调试信息的级别。默认为0,比当前级别高的调试信息会被log到日志文件中。

detail
与debug的作用类似,只是这个detail是initMapping()时专用的。调试信息会被打印到System.out,而不是日志文件。

formBean
ActionFormBean的实现类,确省为org.apache.struts.action.ActionFormBean

forward
应用中使用的ActionForward类,确省是org.apache.struts.action.ActionForward。

locale
指定了确省使用的Locale对象。设为true,当得到一个session时,会自动在session中存储一个以Action.LOCALE_KEY标示的Locale对象,如果session中还没有与Action.LOCALE_KEY绑定的Locale对象。

mapping
应用中使用的ActionMapping类,确省是org.apache.struts.action.ActionMapping。

multipartClass
文件上传使用的MutipartRequestHandler的实现类。确省为org.apache.struts.upload.DiskMultipartRequestHandler

nocache
如果设为true,那么ActionServlet会自动在每个到客户端的响应中添加nocache的HTML头,这样客户端就不会对应用中的页面进行缓存。确省为false

null
如果设置为true,那么应用在得到一个未定义的message资源时,会返回null,而不是返回一个错误信息。确省是true。

maxFileSize
文件上传的大小上限,确省为250M

bufferSize
文件上传时的缓冲区的大小,确省为4M

tempDir
设置用于上传时的临时目录。工作目录会作为一个Servlet环境(Context)的属性提供。

validate
Are we using the new configuration file format?确省为true。

validating

在解析配置XML文件是是否进行有效性的验证。确省为true

ActionServlet中应用了命令设计模式。

一个Servlet在由容器生成时,首先会调用init()方法进行初始化,在接到一个HTTP请求时,调用相应的方法进行处理;比如GET请求调用doGet()方法,POST请求调用doPost()方法。所以首先看看ActionServlet的init()方法,你就会很清楚为什么ActionServlet可以完成这些功能了。

重写ActionServlet一步解决struts中文问题
1.自己写一个继承actionservlet类的一个新类用来代替默认的actionservlet
public void process(HttpServletRequest request,HttpServletResponse response)throws IOException, ServletException{
    request.setCharacterEncoding("gb2312");
    RequestUtils.selectModule(request, getServletContext());
    getRequestProcessor(getModuleConfig(request)).process(request,response);
  }
2.修改web.xml中的actionservlet
<servlet-name>action</servlet-name>
<servlet-class>com.test.ationservlet.MyActionServlet</servlet-class>
分享到:
评论

相关推荐

    ActionServlet.java

    ActionServlet.java

    ActionServlet深入探讨

    对已ActionServlet的深入讲解,是您在一知半解中彻底明白来龙去脉

    Struts 源码学习之ActionServlet

    可以对struts进行深入的学习.个人觉得是个很不错的文档,因积分的问题不得不出卖自己的珍藏之物

    structs in action中文完全版\9. 扩展 ActionServlet.pdf

    structs in action中文完全版\9. 扩展 ActionServlet.pdf

    web_xml中ActionServlet中的属性

    web_xml中ActionServlet中的属性

    ActionServlet demo

    java ,servlet基础知识代码描述 供学习用

    struts1之ActionServlet详解_动力节点Java学院整理

    主要介绍了struts1之ActionServlet详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Struts1框架执行原理(附Action、ActionServlet、ActionForm工作机制)

    有助于加强我们对Struts1的理解和学习,让我们从原理把握Struts1之后可以更方便更容易的学习Struts2

    外文翻译 stus MVC

    ActionServlet is the Command part of the MVC implementation and is the core of the Framework. ActionServlet (Command) creates and uses Action, an ActionForm, and ActionForward. As mentioned earlier, ...

    Struts原理、开发及项目实施

    即ActionServlet,而ActionServlet的核心就是Struts-config.xml,Struts-config.xml集中了所有页面的导航定义。对于大型的WEB项目,通过此配置文件即可迅速把握其脉络,这不管是对于前期的开发,还是后期的维护或...

    action和servlet混合使用

    对于action和servlet混用的问题进行说明和解答,action和servlet混合使用会产生一些影响。

    Struts模块化编程教程 .doc

    Struts模块化编程教程 .doc1、前言 STRUTS是标准的"模型2"的WEB应用框架,其中的ActionServlet代表了"模型2"MVC设计模式中的"控制器" 。STRUTS应用程序一般使用JSP代码生成用户界面,这些代码不包括任何商业逻辑,...

    Struts_1_Dyna动态实现登录

    因为Struts作者帮我们写好了一个actionServlet,他写这个servlet的目的是希望所有请求都交给它预处理,它预处理完后,再调用你写的action处理请求。当然,Struts的actionServlet在对请求进行预处理时,会帮我们做好...

    struts面试宝典.pdf

    在Struts中,用户的请求一般以*.do作为请求服务名,所有的请求均被指向ActionServlet,ActionServlet根据Struts-config.xml中的配置信息,将用户请求封装成一个指定名称的ActionForm,并将此ActionForm传至指定的...

    谈谈你对Struts的理解。

    1. struts是一个按MVC模式设计的Web层框架,其实它就是一个大大的servlet,这个Servlet名为ActionServlet,或是ActionServlet的子类。我们可以在web.xml文件中将符合某种特征的所有请求交给这个Servlet处理,这个...

    java struts_java_struts_

    Struts技术框架Struts 是一个技术框架,由Craig R....在Struts应用中,所有对应用程序的请求,都会被WEB SERVER 定向到ActionServlet进行统一控制、分配处理,ActionServlet可以看作是Struts框架的核心,枢纽。

    北京大部分公司的ssh面试题

    Execute()从ActionForm对象中获取数据,完成业务逻辑,返回一个ActionForward对象,ActionServlet再把客户请求转发给ActionForward对象指定的jsp组件,ActionForward对象指定的jsp生成动态的网页,返回给客户。

    Struts in Action中文版

    2.6.2. Struts的强项........................................................................................................58 Struts in Action 中文版 Lastest Revised:10/14/2005 10:27:00 AM ...

    一个struts的action跳转大全

    首先,Struts的ActionServlet接收到一个请求,然后根据struts-config.xml的配置定位到相应的mapping (映射);接下来如果form的范围是request或者在定义的范围中找不到这个form,创建一个新的form实例;取得form...

    Struts中文手册[文字版][中文]

    1.4. ActionServlet类6 1.4.1. ActionServlet配置6 1.4.2. ActionServlet方法7 1.5. ActionMapping 类8 1.6. Action 类.8 1.6.1. Action 类的方法.9 1.7. ActionForm类9 1.8. ActionForward 类.10 1.9. 错误处理.11 ...

Global site tag (gtag.js) - Google Analytics