`
tntxia
  • 浏览: 1507445 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Struts由入门到精通(第二章)-用strtus制作登陆页面

阅读更多

一个用户注册系统,用户通过网页输入相关信息:注册ID号,密码,EMAIL,若注册成功,则返回成功提示信息,反之出现注册失败提示信息。

  项目建立: 

  正式开发前,需要在Tocmat(我的tomcat装在c:\tomcat)中建立此项目。比较快的一种建立方式为:在C:\tomcat\ webapps下新建目录test,再将C:\tomcat\webapps\struts-example下的WEB-INF目录拷贝到test目录下,然后将test\WEB-INF下的srcclasses目录清空,以及struts-config.xml文件中内容清空即可。这样,我们需要的 Struts类包及相关的配置文件就都齐了。

  开发时,将JSP文件放在test目录下,Java原文件放在test\WEB-INF\src下,编译后的类文件放在test\WEB-INF\classes下。 

  注册页面:reguser.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java"%>


<%@ taglib uri="/WEB-INF/Struts-bean.tld" prefix="bean"%>


<%@ taglib uri="/WEB-INF/Struts-html.tld" prefix="html"%>


<html:html locale="true"> 

<head>


<title>RegUser</title> 

<html:base/>


</head> 

<body bgcolor="white">


<html:errors/> 

<html:form action="/regUserAction" focus="logname">

<table border="0" width="100%">

<tr>


<th align="right">

登陆名:</th>


<td align="left">

<html:text property="logname" size="20" maxlength="20"/>

</td> 

</tr>


<tr> 

<th align="right">密码:</th>

<td align="left">

<html:password property="password" size="20" maxlength="20"/>

</td> 

</tr>


<tr> 

<th align="right">


E-mail:

 </th>


<td align="left"> 

<html:password property="email" size="30" maxlength="50"/>

 </td>


</tr> 

<tr>


<td align="right"> 

<html:submit property="submit" value="Submit"/>


</td> 

<td align="left">


<html:reset/> 

</td>

</tr>

 </table>


</html:form> 

</body>


</html:html>

 

 

JSP页面不同于普通的JSP页,因为它大量运用了taglib,这些taglib对初学者而言,可能难于掌握,可这却是Struts的精华之一。灵活运用,将大大提高开发效率。

Struts-config.xml

<Struts-config>

 

<form-beans>

 

<form-bean name="regUserForm"

 

type="org.cjea.Struts.example. RegUserForm "/>

 

</form-beans>

 

<action-mappings>

 

<action path="/regUserAction"

 

type=" org.cjea.Struts.example.RegUserAction "

 

attribute=" regUserForm "

 

scope="request"

 

validate="false">

 

<forward name="failure" path="/ messageFailure.jsp"/>

 

 

<forward name="success" path="/ messageSuccess.jsp"/>

 

 

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

 

FormBeanRegUserForm

 

package org.cjea.Struts.example;

import javax.Servlet.http.HttpServletRequest;

import org.apache.Struts.action.ActionForm;

import org.apache.Struts.action.ActionMapping;

 

public final class RegUserForm extends ActionForm{

 

private String logname;

private String password;

private String email;

 

public RegUserForm(){

logname = null;

password = null;

email = null;

}

 

public String getLogName() {

return this.logname;

}

public void setLogName(String logname) {

this.logname = logname;

}

public void setPassWord(String password) {

this.password = password;

}

public String getPassWord() {

return this.password;

}

public void setEmail(String email) {

this.email = email;

}

public String getEmail() {

return this.email;

}

 

public void reset(ActionMapping mapping, HttpServletRequest request)

{

logname = null;

password = null;

email = null;

}

}

 

 

  每一个FormBean 都必须继承ActionForm类,FormBean是对页面请求的封装。即把HTTP request 封装在一个对象中,需要说明的一点就是多个HTTP request可以共用一个FormBean,便于维护和重用。

 

ActionBeanRegUserAction

 

package org.cjea.Struts.example;

 

import javax.Servlet.http.*;

import org.apache.Struts.action.*;

 

public final class RegUserAction extends Action

{

 

public ActionForward perform(ActionMapping mapping,

ActionForm form, HttpServletRequest req,

HttpServletResponse res)

{

String title = req.getParameter("title");

String password = req.getParameter("password");

String email = req.getParameter("email");

/*

取得用户请求,做相应数据库操作,略

*/

}

}

 

 

  FormBean的产生是为了提供数据给ActionBean,在ActionBean中可以取得FormBean中封装的数据,经相应的逻辑处理后,调用业务方法完成相应业务要求。

 

  Servlet的演变:在常规的 JSPServletJavaBean三层结构中,JSP实现View的功能,Servlet实现Controller的功能,JavaBean实现Model的实现。

 

  在Struts中,将常规情况下的Servlet拆分与ActionServletFormBeanActionBean三个部分。 ActionServlet配合Struts-config.xml,专职完成页面导航,而不再负责具体的数据获取与相应逻辑,这两部分功能由 FormBeanActionBean来完成。

 

  3.Struts优缺点

 

  优点:

 

  StrutsTomcatTurbine等诸多Apache项目一样,是开源软件,这是它的一大优点。使开发者能更深入的了解其内部实现机制。

 

  除此之外,Struts的优点主要集中体现在两个方面:Taglib和页面导航。TaglibStruts的标记库,灵活动用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。

 

  关于页面导航,我认为那将是今后的一个发展方向,事实上,这样做,使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。

 

  缺点:

 

  TaglibStruts的一大优势,但对于初学者而言,却需要一个持续学习的过程,甚至还会打乱你网页编写的习惯,但是,当你习惯了它时,你会觉得它真的很棒。

 

  StrutsMVCController一分为三,在获得结构更加清晰的同时,也增加了系统的复杂度。

  Struts从产生到现在还不到半年,但已逐步越来越多运用于商业软件。虽然它现在还有不少缺点,但它是一种非常优秀的J2EE MVC实现方式,如果你的系统准备采用J2EE MVC架构,那么,不妨考虑一下Struts

 

 

分享到:
评论

相关推荐

    用strtus制作登陆页面

    ### 使用Struts构建登录页面详解 #### 知识点一:环境配置与工具选用 - **J2EE基础知识**:确保对JSP、Servlet、JavaBean等技术有一定的了解,这有助于更好地理解Struts框架的工作原理及其如何应用于项目中。 - **...

    struts2-core-2.2.3.1-sources.jar

    struts2-core-2.2.3.1-sources.jar struts2-core-2.2.3.1-sources.jar struts2-core-2.2.3.1-sources.jar

    用strtus制作登陆页面.

    Struts 是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它由Apache软件基金会开发。在本实例中,我们将探讨如何使用Struts创建一个登录页面。Struts提供了一种结构化的方式来组织和管理Web...

    struts-2.3.15

    8. **结果类型(Result Types)**:Struts 2预定义了多种结果类型,如dispatcher(用于转发到JSP页面)、stream(用于处理文件下载)和redirect(用于重定向)。开发者可以根据需要选择合适的结果类型,或者自定义...

    Struts2最新漏洞升级2.3.32版本

    1、升级所需要的jar(见附件): freemarker-2.3.22.jar ognl-3.0.19.jar struts2-convention-plugin-2.3.32.jar struts2-core-2.3.32.jar struts2-spring-plugin-2.3.32.jar ...&lt;struts&gt;“加在这里”&lt;/struts&gt;

    struts-2.5.16-源码+示例(S2-057漏洞演示环境)

    在提供的压缩包中,`struts-2.5.16-all.zip`包含了Struts 2.5.16的完整发布版,包括运行库和相关文档,你可以用它来搭建一个基础的Struts 2应用环境。而`struts-2.5.16-src.zip`则是源码包,对于开发者来说,深入...

    spring-mybatis-struts2-master ——demo

    《SSM框架整合详解——基于spring-mybatis-struts2-master的实战分析》 在Java Web开发领域,SSM(Spring、Struts2、MyBatis)框架的组合被广泛使用,因其灵活性和强大的功能而备受青睐。本篇文章将深入探讨这个...

    ssm框架学习之(一) --struts2 注解

    在“ssm框架学习之(一) --struts2 注解”中,我们将深入探讨Struts2中的注解使用,以及它们如何简化和优化开发流程。 Struts2框架的注解主要用在以下几个方面: 1. **Action类注解**: - `@Action`: 这个注解...

    JSTL的各种标签文件和struts的标签文件,带strtus.jar包

    JSTL的各种标签文件和struts的标签文件,带strtus.jar包c-1_0.tld,c-1_0-rt.tld,c.tld,fmt-1_0.tld,fmt-1_0-rt.tld,fmt.tld,fn.tld,permittedTaglibs.tldscriptfree.tld,sql-1_0.tld,sql-1_0-rt.tld,sql....

    struts2_入门参考手册.zip_strtus

    通过阅读《Struts2_入门参考手册.pdf》,你将深入理解这些概念,并学习如何配置Struts2应用,创建Action,使用拦截器,处理表单提交,以及如何利用Struts2的各种特性优化你的Web应用。作为开发者,掌握基础并不断...

    自学传智博客struts2-黎活明-源码-第02讲_02第一个struts2应用开发_DemoStruts2.rar

    本资源“自学传智博客struts2-黎活明-源码-第02讲_02第一个struts2应用开发_DemoStruts2.rar”提供了黎活明老师在传智博客上讲解的第一个Struts2应用的开发示例,帮助初学者理解并实践Struts2的核心概念和使用方法。...

    自学传智博客struts2-黎活明-源码-第01讲_01介绍struts2及struts2开发环境的搭建_DemoStruts2.rar

    自学传智博客struts2-黎活明-源码-第01讲_01介绍struts2及struts2开发环境的搭建_DemoStruts2.rar; 笔记地址:http://www.guloulou.com/?p=1253

    strtus2开发入门

    在"strtus2开发入门"这个主题中,我们将学习如何开始使用Struts2框架。首先,我们需要理解MVC模式。模型(Model)负责处理业务逻辑,视图(View)负责显示数据,而控制器(Controller)则负责接收用户请求并协调模型...

    strtus2,STRUTS2,入门级教程,完整运行案例。

    通过这个入门级教程,你可以学习到如何设置Struts2环境,创建第一个“Hello World”应用,理解Action和配置文件的编写,以及如何利用拦截器和结果类型控制流程。同时,你还将接触到OGNL的使用,以及如何处理国际化和...

    struts2与spring整合需要的struts的插件struts2-spring-plugin-2.3.8.jar

    这个插件是在strtus2和spring集成必备的一个插件

    struts2.3.35漏洞升级全部JAR包

    3. **更新依赖**:检查你的`pom.xml`(如果你的项目使用Maven)或构建文件,确保所有引用的Struts2相关依赖都被更新到2.3.35。这可能包括`struts2-core`, `struts2-convention-plugin`, `struts2-json-plugin`等。 ...

    struts-2.3.4最新jar包合集

    3. Struts 2的兼容性库,如Struts 1的适配器(struts2-struts1-plugin.jar) 4. 拦截器和其他相关库(如struts2-convention-plugin.jar、struts2-json-plugin.jar等) 5. 可能还包括第三方依赖库,如ognl、xwork等。...

    Extjs+Struts整合入门实例

    Struts可以通过实现JSON插件或者使用第三方库如Jackson来支持JSON序列化和反序列化。前端的Ajax请求接收到服务器返回的JSON数据后,更新Store,从而刷新Grid显示最新的图书信息。 总的来说,ExtJS+Struts的整合实例...

    Struts2实战

    Struts2实战 知识点: 1. Struts2框架的介绍:Struts2是Struts的下一代...以上就是Struts2框架的主要知识点,通过这些知识点的介绍,我们可以了解到Struts2框架的强大功能和灵活应用,它在Java Web开发中的重要地位。

    struts2项目使用的初级常用jar包

    使用这些jar包,开发者可以快速搭建一个基础的Struts2项目,实现MVC设计模式,包括定义Action、处理用户请求、进行业务逻辑处理、返回结果到视图等。在实际开发中,还可以根据需求选择添加更多的Struts2插件,如...

Global site tag (gtag.js) - Google Analytics