- 浏览: 919544 次
- 性别:
- 来自: 黑龙江
文章分类
- 全部博客 (209)
- struts1 (3)
- hibernate3 (19)
- java (13)
- spring2 (5)
- netBeans (1)
- eclipse (1)
- JSF (1)
- DIV+CSS篇章 (1)
- jFreeChart+Oracle之曲线,柱状及饼状图的实现 (1)
- JSF知识与技巧 (3)
- Oracle数据类型的介绍与比较 (2)
- J2EE (2)
- Ajax技术 (4)
- javaScript技术 (25)
- struts2 (16)
- C/C++程序设计 (1)
- oracle系统学习 (29)
- 算法分析 (0)
- Linux实践 (7)
- extjs开发经验 (13)
- flex开发总结 (1)
- FusionCharts总结 (0)
- 高级数据库总结 (0)
- SVG拓扑图开发总结 (0)
- CSS (1)
- CSS使用简介 (1)
- SVG (0)
- DOJO (0)
- Junit测试 (0)
- lucene (24)
- solr (6)
- tokyo tyrant 技术 (7)
- Html5 (1)
- 算法与数据结构 (0)
- 物联网相关技术学习 (0)
- UI设计 (1)
- webservice (0)
- Android (5)
- hibernate4 (3)
- solrcloud (0)
- dorado5 (0)
- dorado7 (0)
- elasticsearch (0)
- GWT (0)
- node.js (0)
- 并发编程 (1)
- 大数据 (1)
- 项目经验 (5)
最新评论
-
cs261244787:
楼主好人! 平安
struts2,hibernate4,spring3配置时问题汇总及解决办法 -
wxluck666:
我也赞一个 很有用
struts2,hibernate4,spring3配置时问题汇总及解决办法 -
wxluck666:
我也赞一个 很有用
struts2,hibernate4,spring3配置时问题汇总及解决办法 -
xinsiyou:
牛逼,就是样式被搞没了
JS实现选项右移,左移,向上,向下调整顺序 -
unnamed__:
这代码风格就像一坨翔
java获取数据库的列名,类型等信息
配置Struts应用
Struts应用采用两个基于XML的配置文件来配置应用。这两个配置文件为web.xml和struts-config.xml。web.xml实用于所有的JavaWeb应用,它是Web应用的发布描述文件,在Java Servlet规范中对它作了定义。对于Struts应用,在web.xml文件中除了配置Java Web应用的常规信息,还应该配置和Struts相关的特殊信息。
Strus-config.xml文件是Struts应用专有的配置文件,事实上,也可以根据需要给这个配置文件起其他的文件名。
Web应用的发布描述文件
Web应用的发布描述文件可以在应用开发者、发布者和组装者之间传递配置信息。Web容器在启动时从该文件中读取配置信息,根据他来装载和配置Web应用。
所有和Servlet2.3规范兼容的Servlet容器支持以下发布信息:
初始化参数
Session配置
Servlet声明
Servlet映射
应用生命周期的监听类
过滤器定义和映射
MIME类型映射
欢迎文件列表
出错处理页面
当Web应用的JSP文件使用了客户化标签,或者Web容器作为J2EE应用服务器的一部分是,还需要配置以下两个元素:
标签库映射
JNDI引用
Web应用发布描述文件的文档类型定义(DTD)
文档类型定义(DTD,Document Type Definition)对XML文档的格式作了定义。DTD把XML文档(包括Web应用的发布描述文件和Struts配置文件)都划分为以下组件:
元素
属性
实体
每一种XML文档都有独自的DTD文件,2.3版本的Web应用发布描述文件的DTD可以从http://java.sun.com/dtd/index.html上下载。
下面的DTD代码定义了Web应用发布描述文件顶层元素<web-app>:
<!ELEMENT web-app(icon?,display-name?,description?,
Distribuable?,context-param*,filter*,filter-mapping*,
Listener*,servlet*,servlet-mapping*,session-config?,
mime-mapping*,welcome-file-list?,error-page*,taglib*,
resource-env-ref,resource-ref*,secuity-constraint*,login-config?,
security-role*,env-entry*,ejb-ref*,ejb-local-ref*)
>
<web-app>元素是web.xml的根元素,其他元素(即以上DTD代码中括号以内的元素)必须嵌入在<web-app>元素以内。在上面的DTD代码中,还使用了一系列的个特殊符号来修饰元素,下表对这些符号的作用做了说明。
提示: 子元素之间的顺序由他们在父元素中出现的先后顺序决定。例如:在<web-app>父元素中,<servlet>元素必须出现在<servlet-mapping>元素的前面,<servlet-mapping>元素必须出现在<taglib>元素的前面。
DTD中特殊符号的作用
符 号 含 义
无符号 该子元素在父元素内必须存在且只能存在一次
+ 该子元素在父元素在内必须存在,可以存在一次或多次
* 该子元素在父元素中可以不存在,或者存在一次或者多次,它是比较常用的符号
? 该子元素在父元素内可以不存在,或者只存在一次。它是比较常用的符号
为Struts应用配置web.xml文件
web.xml文件对于配置任何Java Web应用都是必须的。当配置Struts应用时,还应该在web.xml文件中配置和Struts相关的配置选项。本节讲述配置Struts应用的必要步骤。
配置Struts的Actionservlet
首先同时也是最重要的一步是配置ActionServlet。在web.xml中配置ActionServlet有2个步骤。第一步是用<servlet>元素声明ActionServlet.
<servlet>元素的DTD定义如下:
<! ELEMENT servlet (icon?,servlet-name,display-name?,description?,
(servlet-class|jsp-file),init-param*,load-on-startup?,
run-as?,security-role-ref*)
>
在以上<servlet>的子元素中,经常用到的有<servlet-name>、<servlet-class>和<init-param>。其中,<servlet-name>元素用来定义Servlet的名称,<servlet-class>元素用来指定Servlet的完整类名。以下是声明ActionServlet的代码:
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
这里应该注意的是,<servlet>元素中的<servlet-name>子元素必须和<servlet-mapping>元素中的<servlet-name>子元素匹配。以上代码的<url-pattern>属性为*.do,表明ActionServlet负责处理所有以*.do扩展名结尾的URL。例如,如果用户请求的URL为http://localhost:8080/HelloWord.do,Web容器将把该请求转发给ActionServlet。
此外,还可以按以下方式设置<url-pattern>属性:
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>/do/*<url-pattern>
</servlet-mapping>
以上代码的<url-pattern>属性为“/do/*”,表明ActionServlet负责处理所有已“/do”为前缀的URL。例如:如果用户请求的URL为http://localhost:8080/helloapp/do/HelloWorld,Web容器将把该请求转发给ActionServlet。
提示: 不管应用程序包含多少子应用,都只需要配置一个ActionServlet。有些开发者希望设置多个ActionServlet类来处理应用中不同的功能,其实这是不必要的,因为Servlet本身支持多线程。而且,目前的Struts框架只允许在应用中配置一个ActionServlet。
声明ActionServlet的初始化参数
初始化参数用来对Servlet的运行时环境进行初始配置。<servlet>的<init-param>子元素用于配置Servlet初始化参数,例如:
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.actions.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>
配置欢迎文件清单
当客户访问Web应用时,如果仅仅给出Web应用的RootURL,没有指定具体的文件名,Web容器会自动调用Web应用的欢迎文件。<welcome-file-list>元素用来设置欢迎文件清单。以下代码声明了两个欢迎文件:welcome.jsp和index.jsp。
<welcome-file-list>
<welcome-file>welcome.jsp</welcome-file>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
<welcome-file-list>元素中可以包含多个<welcome-file>子元素,当Web容器调用Web应用的欢迎文件时,首先寻找第一个<welcome-file>自定的文件。如果这个文件存在,将把这个文件返回给客户;如果这个文件不存在,Web容器将依次寻找下一个欢迎文件,直到找到为止;如果<welcome-file-list>元素指定的所有文件都不存在,服务器将向客户段返回“HTTP 404 Not Found”的出错信息.
由于在<welcome-file-list>元素中不能配置Servlet映射,因此不能直接把Struts的Action作为欢迎文件。可以采用一种变通的方法来实现在欢迎文件中调用Struts Action。首先,在Struts配置文件中为被调用的Action创建一个全局的转发项,例如:
<global-forwards>
<forward name=”welcome” path=”HelloWorld.do”/>
</global-forwards>
然后创建一个名叫welcome.jsp的jsp文件(也可以采用其他文件名),当该页面被加载时,他把请求转发给以上<forward>元素指定的Action。Welcome.jsp的代码如下:
<%@tablib uri=”/WEB-INF/struts-logic.tld” prefix=”logic” %>
<html>
<body>
<logic:forward name=“welcome”/>
</body>
</html>
最后在web.xml文件中把welcome.jsp文件配置为欢迎文件,代码如下:
<welcome-file-list>
<welcome-file>welcome.jsp</welcome-file>
</welcome-file-list>
配置错误处理
尽管Struts框架提供了强大的通用错误处理机制,但不能保证处理所有的错误或异常。当错误发生时,如果Struts框架不能处理这种错误,就会把错误抛给Web容器。在默认情况下,Web容器会向用户浏览器返回原始错误信息。如果想避免直接让用户看到原始错误信息,可以在Web应用的发布描述文件中配置<error-page>元素。以下代码演示了如何使用<error-page>元素来避免让用户直接看到HTTP 404 或HTTP 500错误。
<error-code>404</error-code>
<location>/error/error_404.htm</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error/error_500.htm</location>
</error-page>
如果在web.xml文件中作了以上配置,当Web容器捕获到HTTP 404或500错误时,将根据错误代码检索<error-page>元素,如果有匹配项,就放回<loation>子元素指定的文件。例如:404错误发生将返回404.htm网页。
也可以为Web容器捕获的Java异常配置<error-page>元素,这时需要设置<exception-type>子元素,它用于指定Java异常类。Web容器可能捕获如下异常:
RuntimeException或Error
ServletExeption或它的子类
IOException或它的子类
在<exception-type>元素中声明的Java异常类必须是以上列举的情况之一。以下代码演示了如何配置ServletExceptio异常和IOException:
<error-page> <exception-type>java.lang.NullPointerException</exception-type>
<location>/error/error_npe.htm</location>
</error-page>
<error-page>
<exception-type>javax.servlet.ServletException</exception-type>
<location>/noRegister.html</location>
</error-page>
如果在web.xml文件中作了以上配置,当Web容器捕获到ServletException或IOException异常时,将根据异常类型检索<error-page>元素,如果有匹配项,就返回<location>子元素指定的文件。例如,如果发生ServletExceptio异常,将返回noRegister.html网页。
配置文件
Struts框架在启动时会读入其配置文件,根据它来创建和配置各种Struts组件。Struts配置文件使得开发者可以灵活的组装和配置各个组件,提高了应用软件的可扩展性和灵活性,可以避免硬编码。Struts配置文件是基于XML的,相应的DTD文件为struts-config_1_2.dtd。
org.apache.struts.config包
在Struts1.1种加入了org.apache.struts.config包。在Struts应用启动时,会把Struts配置文件中的配置信息读入到内存中,并把他们存放在config包中相关JavaBean类的实例中。
下图为org.apache.struts.config包中主要类框架图。
Org.apache.struts.config包中的每一个类都和Struts配置文件中特定的配置元素对应,例如,<action>元素和ActionMapping类对应,<forward>元素和ActionForWard类对应。由于一个<action>元素可以包含多个<forward>子元素,因此Actionmapping类和Actionforward类之间存在一堆多的关联关系。
当Struts框架完成了对配置文件的验证和解析后,就把配置文件中的信息存放在这些类的实例中。这些类的实例可以充当配置信息的运行时容器,Struts组件可以方便的通过它们来获取配置信息。
Org.apache.struts.config.ModuleConfig在Struts框架中扮演了十分重要的角色。如上图所示,它是整个orgapache.struts.config包核心,在Struts应用运行时用来存放整个Struts ModuleConfig和Struts配置文件的根元素<struts-config>对应。<struts-config>根元素中包含<form-bean>、<action>和<forward>等一系列子元素,因此ModuleConfig中包含了每个子元素对应的配置类实例。在ModuleConfig的实现类ModuleConfigImp中定义了如下成员变量:
protected HashMap actionConfigs =null;
protected HasMap dataSources =null;
protected HasMap exceptions =null;
protected HasMap formBeans =null;
protected HasMap forwards =null;
protected HasMap messageResources =null;
protected AyyayList plugIns =null;
protected controllerConfig controllrconfig =null;
orgapache.struts.config.configRuleSet类的功能不同于其他类,它包含了解析Struts配置文件所需要的一组规则。在应用启动时,该类负责构造org.apache.struts.config包中其他用于保存配置信息的JavaBean类的实例。
下面分别介绍Struts配置文件中每个元素的用法。
<struts-config>元素
<struts-config>元素是Struts配置文件的根元素,和他对应得配置类为org.apache.struts.config.ModuleConfig类。<struts-config>元素有8个子元素,他的DTD定义如下:
<!ELEMENT struts-config(data-sources?,form-beans?,global-exceptions?,global-forwards?,Action-mappings?,controller?,message-resources*,plug-in*)
>
在Struts配置文件中,必须按照以上DTD指定的先后顺序来配置<struts-config>元素的各个子元素,如果颠倒了这些子元素在配置文件中的顺序,在Struts应用启动时会生成如下图所示的XML解析错误。
<data-sources>元素
<data-source>元素用来配置应用所需要的数据源。数据源负责建立和特定数据库的连接,许多数据源采用连接池机制实现,以便提高数据库访问性能。Java语言提供了javax.sql.DataSource接口,所有的数据源必须实现该接口。许多应用服务器和Web容器提供了内在的数据源组件,很多数据库厂商业提供了数据源的实现。下图,表现了Web应用通过数据源访问数据库的过程。
<data-sources>元素包含零个、一个多个<data-source>子元素。<data-source>元素用于配置特定的数据源,它可以包含多个<set-property>子元素。<set-property>元素用于设置数据源的各种属性。下面的代码演示了如何在Struts配置文件中配置数据源:
<data-source>
<data-source type=”org.apache.commons.dbcp.BasicDataSource”>
<set-property property=”autoCommit” value=”true”/>
<set-property property=”description” value=”MySQL Data Source”/>
<set-property property=”driverClass” value=”com.mysql.jdbc.Driver”/>
<set-property property=”maxCount” value=”10”/>
<set-property property=”minCount” value=”2”/>
<set-property property=”user” value=”root”/>
<set-property property=”password” value=””/>
<set-property property=”url” value=”jdbc:mysql://localhost:3306/mydatabase”/>
</data-source>
</data-sources>
以上代码使用<data-source>元素配置了MySQL数据库的连接。<data-source>元素的type属性用来指定数据源的实现类。以上代码使用的是Apache软件组织提供的DBCP数据源。开发者应该根据实际应用的需要来选用合适的数据源实现。下表列出了集中比较流行的数据源实现。
可以选则的数据源实现
名称 供应商 URL
Poolman 开发源代码软件 http://sourceforge.net/projects/poolman
Expresso Jcorporate http://www.jcorporate.com
JDBC Pool 开放源代码软件 http://www.bitmechanic.com/jdbcpool/
DBCP Jakata http://jakata.apache.org/commons/index.html
配置了数据源后,就可以在Action类中访问数据源。在org.apache.struts.action.Action类中定义了getDataSource(HttpRequest)方法,他用于获取数据源对象的引用。以下程序代码演示了如何在Action类中访问数据源:
Public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse reponse) thows Exception
{
javax.sql.DataSource dataSource;
javax.sql.Conntion myConnection;
try{
dataSource = getDataSource(request);
myConnection = dataSource.getConection();
}catch(SQLException sqle){
getServlet().log(“Connection.process”,sqle);
}finally{
try{
myConnection.close();
}catch(SQLException e){
getServlet().log(“Connection.close”,e);
}
}
}
也可以在配置文件中声明多个数据源,此时需要为每一个数据源分配唯一的key值,通过key值来表示特定的数据源。例如:
<data-source>
<data-source key=”A” type =”org.apache.commons.dbcp.BasicDataSource”>
…属性和前面的配置一样 …
</data-sourde>
<data-source key=”B” type=”org.apache.commons.dbcp.BasicDataSource”>
…属性和前面的配置一样 …
</data-source>
…
</data-sources>
在Action类中通过以下访问特定的数据源:
dataSourceA = getDataSource(request,”A”);
datasourceB = getDataSource(request,”B”);
<form-beans>元素
<form-bean>元素用来配置多个ActionForm Bean。<form-beans>元素包含零个或多个<form-bean>子元素。每个<form-bean>元素又包含多个属性,下表对<form-bean>元素的主要属性作了说明。
<form-bean>元素的属性
属 性 描 述
className 指定和<form-bean>元素对应的配置类,默认值为org.apache.struts.config.FormBeanConfig。如果在这里设置自定义的类,该类必须扩展FormBeanConfig类
name 指定该ActionFormBean的唯一标识符来引用这个bean。该属性是必须的
type 指定ActionForm类的完整类名,该属性是必须的
提示:在配置<form-bean>元素的type属性是必须给出ActionForm类的完整类名,即应该把类的包名也包含在内。
以下是代码示例:
<form-beans>
<form-bean name=”lognForm”
type=”myTest.forms.LogonForm”/>
</form-beans>
如果配置动态ActionForm Bean,还必须配置<form-bean>元素的<form-property>子元素。<form-property>元素用来指定表单字段,他有四个属性,如表所示。
<form-property>元素属性
属 性 描 述
className 指定和<form-property>元素对应的配置类,默认值为org.apache.struts.config.FormPropertyConfig
initial 以字符串的形式设置表单字段的初始值,如果没有设置该属性,则基本类型的表单字段的默认值为0,对象类型的表单字段默认值为null
name 指定表单字段的名字。该属性是必须的
type 指定表单字段的类型。如果表单字段为java类,必须给出完整的类名。该属性是必须的
下面代码演示了如何使用<form-property>元素来配置动态ActionForm Bean:
<form-bean name=”userForm”
type=”org-apache.sturts.action.DynaActionForm”>
<form-property name=firstname” type=”java.lang.String”/>
<form-property name=”age” type=”java.lang.Interger” initial=”18”/>
</form-bean>
<global-exceptions>元素
<global-exceptions>元素用于配置异常处理。<global-exceptions>元素可以包含零个或者多个<exception>元素。
<exception>元素用来设置Java异常和异常处理类org.apache.struts.apache.ExceptionHandler之间的映射。下表对<exception>元素的属性作了说明。
<exception>元素的属性
属 性 描 述
className 指定和<exceptin>元素对应的配置类。默认值为org.apache.struts.config.ExceptionConfig
handler 指定异常处理类。默认值为org.apache.struts.action.ExceptionHandler
key 指定在Resource Bundle中描述该异常来的消息key
path 指定当异常发生时的转发路径
scope 指定ActionMessage实例的存放范围,可选值包括request和session。此项的默认值为request
type 指定所需要处理的异常类的名字,此项是必须的
bundle 指定Resource Bundle
以下是配置global-exception>元素的示例:
<global-exceptions>
<exception
key=”global.error.invalidlogin”
path=”/security/signs.jsp”
scope=”request.jsp”
type=”mywebshop.exceptions.InvalidLoginException”/>
</global-exceptions>
<golbal-forwards>元素
<global-forwords>元素用来声明全局转发关系。<global-forwards>元素有零个或者多个多个<forward>组成。<forward>元素用于把一个逻辑名映射到特定的URL。通过这种方式,Action类或者JSP文件无需指定实际的URL,只要指定逻辑名就能实现请求转发或者重定向,这可以减弱控制组件和试图组件之间耦合,并且有助于维护JSP文件。下图演示了如何通过<forword>元素来实现Web组件之间的相互转发.
对<forward>元素的属性作了描述
属 性 描 述
className 和<forward>元素对应的配置类,默认值为org.appache.struts.action.ActionForward
contextRelative 如果此项为true,表示path属性以”/”开头时,给出的是相对上下文的URL。此项的默认值是false
Name 转发路径的逻辑名,此项是必须的
Path 转发或重定向的URL,此项是必须的。必须以“/”开头
Redirect 此项为true是,表示重定向
controller元素
<controller>元素用于配置ActionServlet,下表对<controller>元素的属性做了描述。
<set-property>属性
属性 描述
bufferSize 指定上载文件的输入缓冲的大小。该属性为可选项,默认值为4096
className 指定<controller>元素对应的配置类。默认值为org.apache.struts. config.ControllerConfig 。
contentType 指定响应结果的内容类型和字符编码。该属性为可选项,默认值为text/html 。 如果在Action和JSP网页中也设置了内容类型和字符编码,将会覆盖该设置。
locale 指定是否把Locale 对象保存到当前用户的Session 中。默认值为false 。
processorClass 指定负责处理请求的类的完整类名。默认值为org. apache.struts.action.RequestProcessor。如果把此项设置为自定义的类,那么应该保证该类扩展了org. apache.struts.action.RequestProcessor类。
tempDir 指定处理文件上载的临时工作目录。如果此项没有设置,将采用Servlet容器为Web应用分配临时工作目录。
nochache 如果为true,在响应结果中将加入特定的头参数:Pragma,Cache-Control和Expires,防止页面被存储在客户浏览器的缓存中。默认值为false。
如果应用包含多个子应用,可以在每个子应用的struts配置文件中配置<controller>元素。这样,尽管这些子应用共享同一个ActionServlet对象,但是它们可以使用不同的RequestProcessor类。
以下是<controller>元素的配置代码示例:
<controller
contentType=”text/html; charset=UTF-8”
locale=”true”
processorClass=”CustomRequestProcessor”/>
message-resources元素
< message-resources >元素用来配置Resource Bundle,Resource Bundle用于存放本地化消息文本。下表对< message-resources >元素的属性做了描述。
< message-resources >属性
属性 描述
className 和<message-resources>元素对应的配置类。默认值为org.apache.struts. config.MessageResourcesConfig
factory 指定消息资源的工厂类。默认值为org. apache.struts.util.PropertyMessageResourcesFactory 类。
key 指定Resource Bundle 存放在ServletContext 对象中时采用的属性key 。默认值为由Globals. MESSAGES_KEY 定义的字符串常量。只允许有一个Resource Bundle 采用默认的属性key 。
null 指定MessageResourcs 类如何处理未知的消息key 。如果此项为true ,将返回空字符串。如果此项为false ,将返回类似“???global.label. missing ???”的字符串。该属性为可选项,默认值为true 。
parameter 指定Resource Bundle的消息资源文件名。例如,如果此项设为“pack1.pack2.ApplicationResources”,那么对应的实际资源文件的存放路径为:WEB-INF/classes/padk1/pack2/ ApplicationResources.properties。
以下是< message-resources >元素的配置代码示例,第一个元素采用默认的key 属性,表示默认的Resource Bundle。同一个配置文件只允许有一个默认的Resource Bundle,所以第二个元素必须显示地设置key 属性:
< message-resources
null=”false”
parameter=”defaultResources ”/>
< message-resources
key=”images ”
null=”false”
parameter=” imageResources ”/>
许多Struts 客户化标签都通过bundle 属性来指定Resource Bundle,标签的bundle属性和< message-resources >元素的key 属性匹配,例如:
<bean: message key=”msgKey”/>
<bean: message key=”msgKey”bundle =”images”/>
在以上代码中,第一个<bean: message>标签没有指定bundle 属性,表示从默认的Resource Bundle中读取消息文本,第二个<bean: message>标签的bundle 属性为”images ”,它和key 属性为”images ”的< message-resources >元素匹配。
plug-in元素
<plug –in >元素用于配置struts插件。下表对< plug –in >元素的属性做了描述。
<plug –in >属性
属性 描述
className 指定struts插件类。插件类必须实现org. apache.struts. action. pluIn 接口。
<plug –in>元素可以包含零个或多个<set-property>子元素。以下是<plug –in>元素的配置代码示例:
<plug –in
className=” org. apache.struts. Validator. ValidatorPlugIn”>
<set-property
Property=”pathnames”
Value=”/WEB-INF/validator-rules.xml, /WEB-INF/validation.xml ”/>
</plug –in>
以上代码配置了ValidatorPlugIn插件,它用于初始化Validator验证框架。
Struts应用采用两个基于XML的配置文件来配置应用。这两个配置文件为web.xml和struts-config.xml。web.xml实用于所有的JavaWeb应用,它是Web应用的发布描述文件,在Java Servlet规范中对它作了定义。对于Struts应用,在web.xml文件中除了配置Java Web应用的常规信息,还应该配置和Struts相关的特殊信息。
Strus-config.xml文件是Struts应用专有的配置文件,事实上,也可以根据需要给这个配置文件起其他的文件名。
Web应用的发布描述文件
Web应用的发布描述文件可以在应用开发者、发布者和组装者之间传递配置信息。Web容器在启动时从该文件中读取配置信息,根据他来装载和配置Web应用。
所有和Servlet2.3规范兼容的Servlet容器支持以下发布信息:
初始化参数
Session配置
Servlet声明
Servlet映射
应用生命周期的监听类
过滤器定义和映射
MIME类型映射
欢迎文件列表
出错处理页面
当Web应用的JSP文件使用了客户化标签,或者Web容器作为J2EE应用服务器的一部分是,还需要配置以下两个元素:
标签库映射
JNDI引用
Web应用发布描述文件的文档类型定义(DTD)
文档类型定义(DTD,Document Type Definition)对XML文档的格式作了定义。DTD把XML文档(包括Web应用的发布描述文件和Struts配置文件)都划分为以下组件:
元素
属性
实体
每一种XML文档都有独自的DTD文件,2.3版本的Web应用发布描述文件的DTD可以从http://java.sun.com/dtd/index.html上下载。
下面的DTD代码定义了Web应用发布描述文件顶层元素<web-app>:
<!ELEMENT web-app(icon?,display-name?,description?,
Distribuable?,context-param*,filter*,filter-mapping*,
Listener*,servlet*,servlet-mapping*,session-config?,
mime-mapping*,welcome-file-list?,error-page*,taglib*,
resource-env-ref,resource-ref*,secuity-constraint*,login-config?,
security-role*,env-entry*,ejb-ref*,ejb-local-ref*)
>
<web-app>元素是web.xml的根元素,其他元素(即以上DTD代码中括号以内的元素)必须嵌入在<web-app>元素以内。在上面的DTD代码中,还使用了一系列的个特殊符号来修饰元素,下表对这些符号的作用做了说明。
提示: 子元素之间的顺序由他们在父元素中出现的先后顺序决定。例如:在<web-app>父元素中,<servlet>元素必须出现在<servlet-mapping>元素的前面,<servlet-mapping>元素必须出现在<taglib>元素的前面。
DTD中特殊符号的作用
符 号 含 义
无符号 该子元素在父元素内必须存在且只能存在一次
+ 该子元素在父元素在内必须存在,可以存在一次或多次
* 该子元素在父元素中可以不存在,或者存在一次或者多次,它是比较常用的符号
? 该子元素在父元素内可以不存在,或者只存在一次。它是比较常用的符号
为Struts应用配置web.xml文件
web.xml文件对于配置任何Java Web应用都是必须的。当配置Struts应用时,还应该在web.xml文件中配置和Struts相关的配置选项。本节讲述配置Struts应用的必要步骤。
配置Struts的Actionservlet
首先同时也是最重要的一步是配置ActionServlet。在web.xml中配置ActionServlet有2个步骤。第一步是用<servlet>元素声明ActionServlet.
<servlet>元素的DTD定义如下:
<! ELEMENT servlet (icon?,servlet-name,display-name?,description?,
(servlet-class|jsp-file),init-param*,load-on-startup?,
run-as?,security-role-ref*)
>
在以上<servlet>的子元素中,经常用到的有<servlet-name>、<servlet-class>和<init-param>。其中,<servlet-name>元素用来定义Servlet的名称,<servlet-class>元素用来指定Servlet的完整类名。以下是声明ActionServlet的代码:
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
这里应该注意的是,<servlet>元素中的<servlet-name>子元素必须和<servlet-mapping>元素中的<servlet-name>子元素匹配。以上代码的<url-pattern>属性为*.do,表明ActionServlet负责处理所有以*.do扩展名结尾的URL。例如,如果用户请求的URL为http://localhost:8080/HelloWord.do,Web容器将把该请求转发给ActionServlet。
此外,还可以按以下方式设置<url-pattern>属性:
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>/do/*<url-pattern>
</servlet-mapping>
以上代码的<url-pattern>属性为“/do/*”,表明ActionServlet负责处理所有已“/do”为前缀的URL。例如:如果用户请求的URL为http://localhost:8080/helloapp/do/HelloWorld,Web容器将把该请求转发给ActionServlet。
提示: 不管应用程序包含多少子应用,都只需要配置一个ActionServlet。有些开发者希望设置多个ActionServlet类来处理应用中不同的功能,其实这是不必要的,因为Servlet本身支持多线程。而且,目前的Struts框架只允许在应用中配置一个ActionServlet。
声明ActionServlet的初始化参数
初始化参数用来对Servlet的运行时环境进行初始配置。<servlet>的<init-param>子元素用于配置Servlet初始化参数,例如:
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.actions.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>
配置欢迎文件清单
当客户访问Web应用时,如果仅仅给出Web应用的RootURL,没有指定具体的文件名,Web容器会自动调用Web应用的欢迎文件。<welcome-file-list>元素用来设置欢迎文件清单。以下代码声明了两个欢迎文件:welcome.jsp和index.jsp。
<welcome-file-list>
<welcome-file>welcome.jsp</welcome-file>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
<welcome-file-list>元素中可以包含多个<welcome-file>子元素,当Web容器调用Web应用的欢迎文件时,首先寻找第一个<welcome-file>自定的文件。如果这个文件存在,将把这个文件返回给客户;如果这个文件不存在,Web容器将依次寻找下一个欢迎文件,直到找到为止;如果<welcome-file-list>元素指定的所有文件都不存在,服务器将向客户段返回“HTTP 404 Not Found”的出错信息.
由于在<welcome-file-list>元素中不能配置Servlet映射,因此不能直接把Struts的Action作为欢迎文件。可以采用一种变通的方法来实现在欢迎文件中调用Struts Action。首先,在Struts配置文件中为被调用的Action创建一个全局的转发项,例如:
<global-forwards>
<forward name=”welcome” path=”HelloWorld.do”/>
</global-forwards>
然后创建一个名叫welcome.jsp的jsp文件(也可以采用其他文件名),当该页面被加载时,他把请求转发给以上<forward>元素指定的Action。Welcome.jsp的代码如下:
<%@tablib uri=”/WEB-INF/struts-logic.tld” prefix=”logic” %>
<html>
<body>
<logic:forward name=“welcome”/>
</body>
</html>
最后在web.xml文件中把welcome.jsp文件配置为欢迎文件,代码如下:
<welcome-file-list>
<welcome-file>welcome.jsp</welcome-file>
</welcome-file-list>
配置错误处理
尽管Struts框架提供了强大的通用错误处理机制,但不能保证处理所有的错误或异常。当错误发生时,如果Struts框架不能处理这种错误,就会把错误抛给Web容器。在默认情况下,Web容器会向用户浏览器返回原始错误信息。如果想避免直接让用户看到原始错误信息,可以在Web应用的发布描述文件中配置<error-page>元素。以下代码演示了如何使用<error-page>元素来避免让用户直接看到HTTP 404 或HTTP 500错误。
<error-code>404</error-code>
<location>/error/error_404.htm</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error/error_500.htm</location>
</error-page>
如果在web.xml文件中作了以上配置,当Web容器捕获到HTTP 404或500错误时,将根据错误代码检索<error-page>元素,如果有匹配项,就放回<loation>子元素指定的文件。例如:404错误发生将返回404.htm网页。
也可以为Web容器捕获的Java异常配置<error-page>元素,这时需要设置<exception-type>子元素,它用于指定Java异常类。Web容器可能捕获如下异常:
RuntimeException或Error
ServletExeption或它的子类
IOException或它的子类
在<exception-type>元素中声明的Java异常类必须是以上列举的情况之一。以下代码演示了如何配置ServletExceptio异常和IOException:
<error-page> <exception-type>java.lang.NullPointerException</exception-type>
<location>/error/error_npe.htm</location>
</error-page>
<error-page>
<exception-type>javax.servlet.ServletException</exception-type>
<location>/noRegister.html</location>
</error-page>
如果在web.xml文件中作了以上配置,当Web容器捕获到ServletException或IOException异常时,将根据异常类型检索<error-page>元素,如果有匹配项,就返回<location>子元素指定的文件。例如,如果发生ServletExceptio异常,将返回noRegister.html网页。
配置文件
Struts框架在启动时会读入其配置文件,根据它来创建和配置各种Struts组件。Struts配置文件使得开发者可以灵活的组装和配置各个组件,提高了应用软件的可扩展性和灵活性,可以避免硬编码。Struts配置文件是基于XML的,相应的DTD文件为struts-config_1_2.dtd。
org.apache.struts.config包
在Struts1.1种加入了org.apache.struts.config包。在Struts应用启动时,会把Struts配置文件中的配置信息读入到内存中,并把他们存放在config包中相关JavaBean类的实例中。
下图为org.apache.struts.config包中主要类框架图。
Org.apache.struts.config包中的每一个类都和Struts配置文件中特定的配置元素对应,例如,<action>元素和ActionMapping类对应,<forward>元素和ActionForWard类对应。由于一个<action>元素可以包含多个<forward>子元素,因此Actionmapping类和Actionforward类之间存在一堆多的关联关系。
当Struts框架完成了对配置文件的验证和解析后,就把配置文件中的信息存放在这些类的实例中。这些类的实例可以充当配置信息的运行时容器,Struts组件可以方便的通过它们来获取配置信息。
Org.apache.struts.config.ModuleConfig在Struts框架中扮演了十分重要的角色。如上图所示,它是整个orgapache.struts.config包核心,在Struts应用运行时用来存放整个Struts ModuleConfig和Struts配置文件的根元素<struts-config>对应。<struts-config>根元素中包含<form-bean>、<action>和<forward>等一系列子元素,因此ModuleConfig中包含了每个子元素对应的配置类实例。在ModuleConfig的实现类ModuleConfigImp中定义了如下成员变量:
protected HashMap actionConfigs =null;
protected HasMap dataSources =null;
protected HasMap exceptions =null;
protected HasMap formBeans =null;
protected HasMap forwards =null;
protected HasMap messageResources =null;
protected AyyayList plugIns =null;
protected controllerConfig controllrconfig =null;
orgapache.struts.config.configRuleSet类的功能不同于其他类,它包含了解析Struts配置文件所需要的一组规则。在应用启动时,该类负责构造org.apache.struts.config包中其他用于保存配置信息的JavaBean类的实例。
下面分别介绍Struts配置文件中每个元素的用法。
<struts-config>元素
<struts-config>元素是Struts配置文件的根元素,和他对应得配置类为org.apache.struts.config.ModuleConfig类。<struts-config>元素有8个子元素,他的DTD定义如下:
<!ELEMENT struts-config(data-sources?,form-beans?,global-exceptions?,global-forwards?,Action-mappings?,controller?,message-resources*,plug-in*)
>
在Struts配置文件中,必须按照以上DTD指定的先后顺序来配置<struts-config>元素的各个子元素,如果颠倒了这些子元素在配置文件中的顺序,在Struts应用启动时会生成如下图所示的XML解析错误。
<data-sources>元素
<data-source>元素用来配置应用所需要的数据源。数据源负责建立和特定数据库的连接,许多数据源采用连接池机制实现,以便提高数据库访问性能。Java语言提供了javax.sql.DataSource接口,所有的数据源必须实现该接口。许多应用服务器和Web容器提供了内在的数据源组件,很多数据库厂商业提供了数据源的实现。下图,表现了Web应用通过数据源访问数据库的过程。
<data-sources>元素包含零个、一个多个<data-source>子元素。<data-source>元素用于配置特定的数据源,它可以包含多个<set-property>子元素。<set-property>元素用于设置数据源的各种属性。下面的代码演示了如何在Struts配置文件中配置数据源:
<data-source>
<data-source type=”org.apache.commons.dbcp.BasicDataSource”>
<set-property property=”autoCommit” value=”true”/>
<set-property property=”description” value=”MySQL Data Source”/>
<set-property property=”driverClass” value=”com.mysql.jdbc.Driver”/>
<set-property property=”maxCount” value=”10”/>
<set-property property=”minCount” value=”2”/>
<set-property property=”user” value=”root”/>
<set-property property=”password” value=””/>
<set-property property=”url” value=”jdbc:mysql://localhost:3306/mydatabase”/>
</data-source>
</data-sources>
以上代码使用<data-source>元素配置了MySQL数据库的连接。<data-source>元素的type属性用来指定数据源的实现类。以上代码使用的是Apache软件组织提供的DBCP数据源。开发者应该根据实际应用的需要来选用合适的数据源实现。下表列出了集中比较流行的数据源实现。
可以选则的数据源实现
名称 供应商 URL
Poolman 开发源代码软件 http://sourceforge.net/projects/poolman
Expresso Jcorporate http://www.jcorporate.com
JDBC Pool 开放源代码软件 http://www.bitmechanic.com/jdbcpool/
DBCP Jakata http://jakata.apache.org/commons/index.html
配置了数据源后,就可以在Action类中访问数据源。在org.apache.struts.action.Action类中定义了getDataSource(HttpRequest)方法,他用于获取数据源对象的引用。以下程序代码演示了如何在Action类中访问数据源:
Public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse reponse) thows Exception
{
javax.sql.DataSource dataSource;
javax.sql.Conntion myConnection;
try{
dataSource = getDataSource(request);
myConnection = dataSource.getConection();
}catch(SQLException sqle){
getServlet().log(“Connection.process”,sqle);
}finally{
try{
myConnection.close();
}catch(SQLException e){
getServlet().log(“Connection.close”,e);
}
}
}
也可以在配置文件中声明多个数据源,此时需要为每一个数据源分配唯一的key值,通过key值来表示特定的数据源。例如:
<data-source>
<data-source key=”A” type =”org.apache.commons.dbcp.BasicDataSource”>
…属性和前面的配置一样 …
</data-sourde>
<data-source key=”B” type=”org.apache.commons.dbcp.BasicDataSource”>
…属性和前面的配置一样 …
</data-source>
…
</data-sources>
在Action类中通过以下访问特定的数据源:
dataSourceA = getDataSource(request,”A”);
datasourceB = getDataSource(request,”B”);
<form-beans>元素
<form-bean>元素用来配置多个ActionForm Bean。<form-beans>元素包含零个或多个<form-bean>子元素。每个<form-bean>元素又包含多个属性,下表对<form-bean>元素的主要属性作了说明。
<form-bean>元素的属性
属 性 描 述
className 指定和<form-bean>元素对应的配置类,默认值为org.apache.struts.config.FormBeanConfig。如果在这里设置自定义的类,该类必须扩展FormBeanConfig类
name 指定该ActionFormBean的唯一标识符来引用这个bean。该属性是必须的
type 指定ActionForm类的完整类名,该属性是必须的
提示:在配置<form-bean>元素的type属性是必须给出ActionForm类的完整类名,即应该把类的包名也包含在内。
以下是代码示例:
<form-beans>
<form-bean name=”lognForm”
type=”myTest.forms.LogonForm”/>
</form-beans>
如果配置动态ActionForm Bean,还必须配置<form-bean>元素的<form-property>子元素。<form-property>元素用来指定表单字段,他有四个属性,如表所示。
<form-property>元素属性
属 性 描 述
className 指定和<form-property>元素对应的配置类,默认值为org.apache.struts.config.FormPropertyConfig
initial 以字符串的形式设置表单字段的初始值,如果没有设置该属性,则基本类型的表单字段的默认值为0,对象类型的表单字段默认值为null
name 指定表单字段的名字。该属性是必须的
type 指定表单字段的类型。如果表单字段为java类,必须给出完整的类名。该属性是必须的
下面代码演示了如何使用<form-property>元素来配置动态ActionForm Bean:
<form-bean name=”userForm”
type=”org-apache.sturts.action.DynaActionForm”>
<form-property name=firstname” type=”java.lang.String”/>
<form-property name=”age” type=”java.lang.Interger” initial=”18”/>
</form-bean>
<global-exceptions>元素
<global-exceptions>元素用于配置异常处理。<global-exceptions>元素可以包含零个或者多个<exception>元素。
<exception>元素用来设置Java异常和异常处理类org.apache.struts.apache.ExceptionHandler之间的映射。下表对<exception>元素的属性作了说明。
<exception>元素的属性
属 性 描 述
className 指定和<exceptin>元素对应的配置类。默认值为org.apache.struts.config.ExceptionConfig
handler 指定异常处理类。默认值为org.apache.struts.action.ExceptionHandler
key 指定在Resource Bundle中描述该异常来的消息key
path 指定当异常发生时的转发路径
scope 指定ActionMessage实例的存放范围,可选值包括request和session。此项的默认值为request
type 指定所需要处理的异常类的名字,此项是必须的
bundle 指定Resource Bundle
以下是配置global-exception>元素的示例:
<global-exceptions>
<exception
key=”global.error.invalidlogin”
path=”/security/signs.jsp”
scope=”request.jsp”
type=”mywebshop.exceptions.InvalidLoginException”/>
</global-exceptions>
<golbal-forwards>元素
<global-forwords>元素用来声明全局转发关系。<global-forwards>元素有零个或者多个多个<forward>组成。<forward>元素用于把一个逻辑名映射到特定的URL。通过这种方式,Action类或者JSP文件无需指定实际的URL,只要指定逻辑名就能实现请求转发或者重定向,这可以减弱控制组件和试图组件之间耦合,并且有助于维护JSP文件。下图演示了如何通过<forword>元素来实现Web组件之间的相互转发.
对<forward>元素的属性作了描述
属 性 描 述
className 和<forward>元素对应的配置类,默认值为org.appache.struts.action.ActionForward
contextRelative 如果此项为true,表示path属性以”/”开头时,给出的是相对上下文的URL。此项的默认值是false
Name 转发路径的逻辑名,此项是必须的
Path 转发或重定向的URL,此项是必须的。必须以“/”开头
Redirect 此项为true是,表示重定向
controller元素
<controller>元素用于配置ActionServlet,下表对<controller>元素的属性做了描述。
<set-property>属性
属性 描述
bufferSize 指定上载文件的输入缓冲的大小。该属性为可选项,默认值为4096
className 指定<controller>元素对应的配置类。默认值为org.apache.struts. config.ControllerConfig 。
contentType 指定响应结果的内容类型和字符编码。该属性为可选项,默认值为text/html 。 如果在Action和JSP网页中也设置了内容类型和字符编码,将会覆盖该设置。
locale 指定是否把Locale 对象保存到当前用户的Session 中。默认值为false 。
processorClass 指定负责处理请求的类的完整类名。默认值为org. apache.struts.action.RequestProcessor。如果把此项设置为自定义的类,那么应该保证该类扩展了org. apache.struts.action.RequestProcessor类。
tempDir 指定处理文件上载的临时工作目录。如果此项没有设置,将采用Servlet容器为Web应用分配临时工作目录。
nochache 如果为true,在响应结果中将加入特定的头参数:Pragma,Cache-Control和Expires,防止页面被存储在客户浏览器的缓存中。默认值为false。
如果应用包含多个子应用,可以在每个子应用的struts配置文件中配置<controller>元素。这样,尽管这些子应用共享同一个ActionServlet对象,但是它们可以使用不同的RequestProcessor类。
以下是<controller>元素的配置代码示例:
<controller
contentType=”text/html; charset=UTF-8”
locale=”true”
processorClass=”CustomRequestProcessor”/>
message-resources元素
< message-resources >元素用来配置Resource Bundle,Resource Bundle用于存放本地化消息文本。下表对< message-resources >元素的属性做了描述。
< message-resources >属性
属性 描述
className 和<message-resources>元素对应的配置类。默认值为org.apache.struts. config.MessageResourcesConfig
factory 指定消息资源的工厂类。默认值为org. apache.struts.util.PropertyMessageResourcesFactory 类。
key 指定Resource Bundle 存放在ServletContext 对象中时采用的属性key 。默认值为由Globals. MESSAGES_KEY 定义的字符串常量。只允许有一个Resource Bundle 采用默认的属性key 。
null 指定MessageResourcs 类如何处理未知的消息key 。如果此项为true ,将返回空字符串。如果此项为false ,将返回类似“???global.label. missing ???”的字符串。该属性为可选项,默认值为true 。
parameter 指定Resource Bundle的消息资源文件名。例如,如果此项设为“pack1.pack2.ApplicationResources”,那么对应的实际资源文件的存放路径为:WEB-INF/classes/padk1/pack2/ ApplicationResources.properties。
以下是< message-resources >元素的配置代码示例,第一个元素采用默认的key 属性,表示默认的Resource Bundle。同一个配置文件只允许有一个默认的Resource Bundle,所以第二个元素必须显示地设置key 属性:
< message-resources
null=”false”
parameter=”defaultResources ”/>
< message-resources
key=”images ”
null=”false”
parameter=” imageResources ”/>
许多Struts 客户化标签都通过bundle 属性来指定Resource Bundle,标签的bundle属性和< message-resources >元素的key 属性匹配,例如:
<bean: message key=”msgKey”/>
<bean: message key=”msgKey”bundle =”images”/>
在以上代码中,第一个<bean: message>标签没有指定bundle 属性,表示从默认的Resource Bundle中读取消息文本,第二个<bean: message>标签的bundle 属性为”images ”,它和key 属性为”images ”的< message-resources >元素匹配。
plug-in元素
<plug –in >元素用于配置struts插件。下表对< plug –in >元素的属性做了描述。
<plug –in >属性
属性 描述
className 指定struts插件类。插件类必须实现org. apache.struts. action. pluIn 接口。
<plug –in>元素可以包含零个或多个<set-property>子元素。以下是<plug –in>元素的配置代码示例:
<plug –in
className=” org. apache.struts. Validator. ValidatorPlugIn”>
<set-property
Property=”pathnames”
Value=”/WEB-INF/validator-rules.xml, /WEB-INF/validation.xml ”/>
</plug –in>
以上代码配置了ValidatorPlugIn插件,它用于初始化Validator验证框架。
相关推荐
在配置Struts应用时,有两个关键的XML配置文件:`web.xml`和`struts-config.xml`。这两个文件共同作用于整个应用的结构和行为。 `web.xml`文件是Java Web应用程序的部署描述符,它包含了一系列关于应用的信息,如...
* 数据源配置():用于配置struts应用程序的数据源,例如数据库连接池等。 * 表单Bean配置():用于配置struts应用程序的表单Bean,例如用户信息、订单信息等。 * 全局转发配置():用于配置struts应用程序的全局...
struts的配置与应用struts的配置与应用struts的配置与应用struts的配置与应用struts的配置与应用struts的配置与应用struts的配置与应用struts的配置与应用struts的配置与应用
通过分析这些配置,可以学习到如何正确地配置Struts应用。 3. **Action与ActionForm** 在Struts中,Action类处理用户的请求,而ActionForm对象则承载从表单提交的数据。每个章节的源码可能包含不同的Action和...
Eclipse作为Java开发的主要IDE,配置Struts2可以让开发者在其中便捷地进行Struts2应用的开发。本篇将详细介绍如何在Eclipse中配置Struts2环境。 首先,我们需要确保已经安装了Eclipse IDE,并且安装了JDK以及Tomcat...
Struts-config.xml 是 Struts 框架的主要配置文件,用于配置 Struts 应用程序的各种设置。在该文件中,可以配置数据源、Form Bean、Action 和插件等信息。下面是 Struts-config.xml 文件的详细解释: 数据源配置 ...
在 struts1 框架中,web.xml 文件是必不可少的配置文件之一,它用于配置 Struts 应用程序的核心组件 ActionServlet。本文将详细解释 web.xml 文件中的配置项和相关知识点。 1. 配置 Struts 的 ActionServlet 在 ...
通过创建Web项目,配置Struts框架,设计JSP页面,编写ActionForm和Action类,以及正确配置`struts-config.xml`文件,可以高效地实现Struts应用的开发流程。这种方式有助于提高开发效率,降低出错率,是学习和实践...
总结来说,"struts-1.2.9-bin"压缩包是Struts 1.2.9版本的完整开发包,包含运行和配置Struts应用所需的jar库和DTD文件。了解并熟练使用这些组件,可以帮助开发者高效地构建基于Struts 1.2.9的Java Web应用程序。虽然...
5. **Eclipse 3.5**:Eclipse是一个流行的Java集成开发环境,3.5版本(Galileo)在那时是较新的版本,提供了丰富的插件支持,包括Struts的插件,使得在Eclipse中创建和配置Struts应用变得简单。 6. **HelloWorld...
在这个“配置struts2需要的资源包”的主题中,我们将详细探讨Struts2的核心组件、依赖库以及如何精简不必要的包。 1. **Struts2核心组件**: - **Struts2核心库**:`struts2-core.jar`包含了框架的核心功能,如...
本手册“Struts应用开发完全手册(11-15)”涵盖了从第11章到第15章的内容,主要关注Struts框架的核心概念、配置、以及实际应用中的技巧。 1. **MVC模式的理解与应用**: MVC模式是软件工程中的一种设计模式,它将...
这个文件是理解和配置Struts应用的关键。 4. **Action与ActionForm** - Action是处理请求的Java类,它接收来自Controller的请求,调用业务逻辑,并返回一个表示结果的ActionForward对象。 - ActionForm则用于封装...
"JBuilder开发Struts实例.pdf"可能是教程文档,详细介绍了如何在JBuilder中创建和配置Struts应用。同时,"中国IT认证实验室学习下载频道.txt"可能提供更多的学习资源和下载链接,帮助开发者深入理解和掌握JBuilder与...
10. **最佳实践和性能优化**:了解如何有效地设计和配置Struts应用,避免常见的性能瓶颈,以及如何调试和测试Struts应用,都是快速学习Struts过程中需要关注的点。 以上是Struts快速学习的一些关键知识点,通过深入...
2. **配置文件**:Struts 配置文件(struts-config.xml)是 Struts 应用的核心配置,定义了 Action 映射、数据源、Form Bean 和结果页面等信息。开发者需要在这个文件中声明每个 Action 类及其对应 URL,以及 Form ...
配置Struts2开发环境是开始使用该框架的第一步。本章将详细介绍如何利用Java EE应用服务器Glassfish和Java开发工具Eclipse搭建Struts2的开发环境。 首先,我们需要安装JDK,它是Java开发的基础。JDK(Java ...