一、 web.xml<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
1. <!-- Action Servlet Configuration -->
<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,/WEB-INF/struts-config-registration.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
2. <!-- Application Tag Library Descriptor -->
<taglib>
<taglib-uri>/WEB-INF/app.tld</taglib-uri>
<taglib-location>/WEB-INF/app.tld</taglib-location>
</taglib>
二、 struts-config.xml
1. <form-beans>
<!-- Logon form bean -->
<form-bean name="logonForm"
type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="username" type="java.lang.String"/>
<form-property name="password" type="java.lang.String"/>
</form-bean>
2. <global-forwards>
<forward name="logoff" path="/logoff.do"/>
<forward name="logon" path="/logon.jsp"/>
<forward name="success" path="/mainMenu.jsp"/>
</global-forwards>
3. <action-mappings>
………………
<action path="/tour" forward="/tour.htm"> </action>
………………
</action-mappings>
4. <controller>
<!-- The "input" parameter on "action" elements is the name of a
local or global "forward" rather than a module-relative path -->
<set-property property="inputForward" value="true"/>
</controller>
5. <message-resources parameter="zwd_10.ApplicationResources"/>
<message-resources parameter="org.apache.struts.webapp.example.AlternateApplicationResources" key="alternate">
</message-resources>
6. <plug-in className="org.apache.struts.plugins.ModuleConfigVerifier"/>
<plug-in className="zwd_10.memory.MemoryDatabasePlugIn">
<set-property property="pathname" value="/WEB-INF/database.xml"/>
</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>
三、 struts-config-registration.xml
定义Registration的有关操作:
1. form-bean: registrationForm
2. global-forwards:
<forward name="registration" path="/registration.jsp"/>
3. action-mappings:
<action path="/editRegistration"
type="zwd_10.EditRegistrationAction"
attribute="registrationForm"
scope="request"
validate="false">
<forward name="success" path="/registration.jsp"/>
</action>
<action path="/saveRegistration"
type="zwd_10.SaveRegistrationAction"
name="registrationForm"
scope="request"
input="registration"/>
四、 Java文件内容
1. Constants:// 常量类
public final class Constants {
public static final String Package = "zwd_10";
public static final String DATABASE_KEY = "database";
public static final String SUBSCRIPTION_KEY = "subscription";
public static final String USER_KEY = "user"; }
2. User:// 接口
public interface User {
public UserDatabase getDatabase();
public String getFromAddress();
public void setFromAddress(String fromAddress);
public String getFullName();
public void setFullName(String fullName);
public String getPassword();
public void setPassword(String password);
public String getReplyToAddress();
public void setReplyToAddress(String replyToAddress);
public Subscription[ ] getSubscriptions();
public String getUsername();
public Subscription createSubscription(String host);
public Subscription findSubscription(String host);
public void removeSubscription(Subscription subscription); }
MemoryUser://实现User接口
3. UserDatabase:// 接口
public interface UserDatabase {
public User createUser(String username);
public void close() throws Exception;
public User findUser(String username);
public User[ ] findUsers();
public void open() throws Exception;
public void removeUser(User user);
public void save() throws Exception; }
MemoryUserDatabase://实现MemoryUserDatabase接口
4. Subscription:// 接口
public interface Subscription {
public boolean getAutoConnect();
public void setAutoConnect(boolean autoConnect);
public String getHost();
public String getPassword();
public void setPassword(String password);
public String getType();
public void setType(String type);
public User getUser();
public String getUsername();
public void setUsername(String username); }
MemorySubscription://实现MemoryUserDatabase接口
5. MemoryDatabasePlugIn://实现PlugIn接口,在struts-config.xml中有说明
五、 app.tld(自定义的标签库)
1. 声明CheckLogonTag ―――― 对应CheckLogonTag.java
CheckLogonTag:// extends TagSupport接口
2. 声明LinkSubscriptionTag ―――― 对应LinkSubscriptionTag.java
LinkSubscriptionTag:// extends TagSupport接口
3. 声明LinkUserTag ―――― 对应LinkUserTag.java
LinkUserTag:// extends TagSupport接口
六、 registration部分
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></path><lock v:ext="edit" aspectratio="t"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 373.5pt; HEIGHT: 186pt" type="#_x0000_t75" o:ole=""><p align="center"><img src="http://www.csdn.net/Develop/ArticleImages/25/25061/CSDN_Dev_Image_2004-3-11706500.emz" width="467" onload="javascript:if(this.width>screen.width-333)this.width=screen.width-333" o:title=""></p></shape>
七、 logon部分
<shape id="_x0000_i1026" style="WIDTH: 357.75pt; HEIGHT: 162.75pt" type="#_x0000_t75" o:ole=""><p align="center"><img src="http://www.csdn.net/Develop/ArticleImages/25/25061/CSDN_Dev_Image_2004-3-11706502.emz" width="467" onload="javascript:if(this.width>screen.width-333)this.width=screen.width-333" o:title=""></p></shape>
八、 logoff部分
<shape id="_x0000_i1027" style="WIDTH: 350.25pt; HEIGHT: 63.75pt" type="#_x0000_t75" o:ole=""><p align="center"><img src="http://www.csdn.net/Develop/ArticleImages/25/25061/CSDN_Dev_Image_2004-3-11706504.emz" onload="javascript:if(this.width>screen.width-333)this.width=screen.width-333" o:title=""></p></shape>
九、 subscription部分
<shape id="_x0000_i1028" style="WIDTH: 504.75pt; HEIGHT: 175.5pt" type="#_x0000_t75" o:ole=""><p align="center"><img src="http://www.csdn.net/Develop/ArticleImages/25/25061/CSDN_Dev_Image_2004-3-11706506.emz" width="467" onload="javascript:if(this.width>screen.width-333)this.width=screen.width-333" o:title=""></p></shape>
以上内容,是我自己的理解,不当之处还请各位批评指正,谢谢。
分享到:
相关推荐
四、实例解析 以下是一个简单的用户注册表单的示例: ```jsp <%@ taglib prefix="s" uri="/struts-tags" %> 用户注册 用户注册 用户名" required="true" /> 密码" required="true" /> <s:email name=...
### Struts2标签详解及具体实例解析 #### 一、概述 Struts2是一个基于MVC模式的开源框架,它提供了丰富的标签库来简化Web应用的开发过程。这些标签不仅功能强大,而且易于使用,可以帮助开发者快速构建动态网页。...
- **高效性:**Servlet在服务器启动时被加载并在首次请求时实例化,之后多个客户端请求会复用同一个实例,从而提高了性能。 - **安全性:**由于Servlet运行在服务器端,因此可以实现更高级的安全机制来保护应用程序...
一个简单的用户注册系统通常包含用户输入信息的JSP页面(reguser.jsp)、ActionForm(如RegUserForm.java)、Action(如RegUserAction.java)和struts-config.xml配置。 **5. JSP页面(reguser.jsp)** JSP页面使用...
<input type="text" name="email"> 注册"> ``` 这段代码展示了如何使用HTML表单收集用户的信息,并提交到`Register.do`这个URL进行处理。 2. **Web.xml配置**: Web.xml是部署描述符文件,其中定义了...
四、实例解析 假设我们有一个用户注册的场景,用户填写表单后提交。在JSP页面中,我们可以使用以下Struts标签: ```jsp <html:text property="email" size="30" maxlength="50"/> ``` 在这个例子中,`...
`ValidatorPlugIn`加载`validation.xml`文件,并将其解析为`ValidatorForm`实例。`ValidatorActionForm`继承自`ActionForm`,提供了验证功能。 **工具支持:** 开发过程中,IDE如Eclipse或IntelliJ IDEA提供了对...
SSH(Struts + Spring + Hibernate)是一个经典的Java Web开发框架,它将Struts的MVC设计模式、Spring的依赖注入和事务管理以及Hibernate的对象关系映射整合在一起,为开发者提供了强大的开发工具。在这个"SSH项目 ...
本文将深入探讨Struts2的标签库,包括其基本概念、常用标签及其使用方法,并通过实例来帮助理解。 一、Struts2标签库概述 Struts2标签库是基于JSP标准标签库(JSTL)之上的一套自定义标签集合,它们与JavaBean和EL...
总结来说,"Freemarker练习实例"涵盖了Freemarker的基本用法、与Struts2的集成、模板编写、数据模型绑定、控制结构使用、异常处理、缓存机制及调试技巧等多个方面。通过这个实例,你可以更好地掌握Freemarker在实际...
**Ajax经典实例详解** Ajax(Asynchronous JavaScript and XML...通过以上经典实例和特效的解析,希望对理解Ajax的应用有更深入的认识。在实际项目中,根据需求灵活运用Ajax,可以让网页功能更加丰富,操作更加流畅。
根据给定的部分内容,我们将逐一解析这些标签的功能与应用场景: 1. **a** - 创建一个HTML超链接,等价于HTML的 `<a href="">` 标签。 - **示例代码**: ```xml 登陆 ``` - **说明**: 这个标签用于生成一个指向...
5. **添加Struts2框架**:通过MyEclipse的插件为项目添加Struts2能力,会自动创建`struts.xml`配置文件,并在`web.xml`中注册Struts2过滤器。 6. **配置Struts2**:修改`struts.xml`文件,调整Struts2的行为和配置...
1. **Struts2**:作为前端控制器,Struts2负责接收HTTP请求,解析请求参数,并调用相应的业务逻辑方法。它提供了一套丰富的Action和Result类型,以及拦截器机制,用于处理请求前后的逻辑,如登录验证、日志记录等。...
2006年7月 CNNIC 发布的最新统计表明,43.2% 的中国网民经常使用论坛/BBS/讨论组,论坛社区应用首次超过即时通讯 IM ,成为仅次于收发Email的互联网基本应用。 JspRun!是飞速创想(北京)科技有限公司推出的一套通用的...
2006年7月 CNNIC 发布的最新统计表明,43.2% 的中国网民经常使用论坛/BBS/讨论组,论坛社区应用首次超过即时通讯 IM ,成为仅次于收发Email的互联网基本应用。 JspRun!是飞速创想(北京)科技有限公司推出的一套通用的...
根据提供的文件信息,本文将对“JavaEE源码健康管理系统源码数据库sql文档”进行深入解析,主要包括以下几个方面的内容:JavaEE技术栈介绍、健康管理系统功能概述、SSH框架原理及应用、Oracle数据库设计与实现、以及...
135、在JSP中能发送EMAIL吗 34 136、在SERVLET中我能调用一个JSP错误页吗 34 137、APPLET和JSP如何通讯 35 138、JSP如何与EJB SessionBean通讯 35 139、当我使用一个结果集时,如何防止字段为"null"的字域显示在我的...