`

Struts 学习笔记 一

    博客分类:
  • java
 
阅读更多

struts 1.2 

涉及到的包:
    commons-beanutils.jar : commons-beanutils.jar 提供对Java 反射和自省API的包装.
    commons-digester.jar  : Digester基于规则的XML文档解析,主要用于XML到Java对象的映射. 
    commons-fileupload.jar : 上传组件
    commons-logging.jar : 目的是提供一套轻量级的中间层日志接口,将项目与具体的日志框架解耦,
                                       从而实现不同日志框架之间的切换
    commons-validator.jar :包用来把验证规则程序提取出来,以供重复使用 
    jakarta-oro.jar : 一个Java工具包用来在 Java 类中进行文本处理的功能,
                                 提供兼容 Perl5 的正则表达式、类 AWK 的正则表达式等。
    struts.jar :     struts核心包
    antlr.jar:    语法分析生成器
    servlet_api.jar  : Java Servlet API的全部类和接口的详细说明
    aspectjweaver.jar : 用于在Spring 2.0中集成AspectJ AspectJ LTW织入器


web.xml 配置解析:

<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>

 
    ActionServlet是Struts中最核心的部分,我们从这里开始。它相当于中央控制器,
我们来看看他是怎么样实现核心Control的。它是通过org.apache.struts.action.ActionServlet来实现的,
所有的请求通过它进行中转。它负责接受所有的request,并且产生相对应的response到请求的页面。
但是它怎么知道对应呢?这里就存在一个map文件(我习惯这么叫它)Struts-config.xml,
它包括了resource文件、如何到达下一个页面、下面一个页面是什么、页面的校验规则、
怎么样显示错误信息(如ActionMessage的使用)的定义。

<init-param>  
    <param-name>config</param-name>  
    <param-value>/WEB-INF/struts-config.xml</param-value>  
</init-param>  
<init-param>  
    <param-name>debug</param-name>  
    <param-value>3</param-value>  
</init-param> 

 
    
ActionServlet  初始化 config  成员变量 进行赋值
  public ActionServlet()//构造函数也已经进行了默认
 {
     ...
     config = "/WEB-INF/struts-config.xml";
     debug = 0;    
     ...
  }

<load-on-startup>0</load-on-startup>

     
    标记容器是否在启动的时候就加载这个servlet。
当值为0或者大于0时,表示容器在应用启动时就加载这个servlet;
当是一个负数时或者没有指定时,则指示容器在该servlet被选择时才加载。
正数的值越小,启动该servlet的优先级越高。
    所以tomcat启动时会加载ActionServlet,也就是会执行ActionServlet中的init()方法,
Struts 的初始化实现就是在这里实现的。

<servlet-mapping>
  <servlet-name>action</servlet-name>
  <url-pattern>*.do</url-pattern>
</servlet-mapping>

    ActionServlet收到请求之后,它将会调用RequestProccessor对象来
处理httprequest请求的消息。如checkerrors等。下一步,它根据浏
览器的请求路径、struts-config.xml文件中对应的请求路径和Action Bean
的对应关系来调用对应的Action Bean的excute方法,action bean处理完成之后,
调用业务模型,调用完成之后,将含有返回下一个页面返回信息的ActionForward
对象传给ActionServlet,然后由actionservlet转换到下一个页面返回给浏览器。

web.xml

<servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
        <param-name>config</param-name>
        <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
        <param-name>debug</param-name>
        <param-value>3</param-value>
    </init-param>
    <init-param>
        <param-name>detail</param-name>
        <param-value>3</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>

 

 

默认的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

分享到:
评论
1 楼 sblig 2012-09-17  
-Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M

相关推荐

Global site tag (gtag.js) - Google Analytics