Struts从0开始1:普通的登录验证实例

来源:互联网 发布:js小数加减乘除运算 编辑:程序博客网 时间:2024/04/28 08:10

 Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的几年中颇受关注。Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架。很多公司开发的产品都是基于此框架的。

  当然,有朋友一提起编程就觉得头痛,是否如此呢?我想通过本期的struts教程,你便会有自己的结论哟!

  本期struts教程本着从易用、实用的目的出发,带您手把手地完成公司开发中常用模块的开发,使你迅速上手struts。

  主要通过以下六个模块:

  一、登录验证实例

  二、解决中文乱码问题实例

  三、连数据库实例

  四、国际化

  五、验证数据实例

  六、模块使用实例

  七、制作简单留言板实例

  使大家对struts能由浅入深的学习,最终撑握它。

  万事开头难,就让我们一起来经历struts的开发吧,经过本系列的学习,你肯定能很快地驾驭它。给自己多几分信心吧!

  闲话不多说,接下来就开始实战吧!!

  一、普通的登录验证实例

  效果图:

  我们以结果为导向,首先大家先看看要完成的效果图,对接下来要做的事情有个清晰的认识。

  1、如图键入:

  

  显示结果如下图:

  

  如果您输入的是合法的话,则如下图:

  

  开发步骤:

  A、首先建立一工程,选择web模块,最后再加载struts包即可。在工程中新建一包,命名为actions,在下面新建一类文件,命名为LoginAction,里面一定要重写execute方法,注意参数的顺序及返回类型都是不可以变化的。

  在struts中action类起着控制转向的作用,当我们输入用户名与密码并点了提交按钮后,需要交给控制器来决断我们是转向到登陆成功页还是登陆失败页。LoginAction在此就起这么个功能,具体代码请依照如下所示:

  public class LoginAction extends Action {

  public ActionForward execute(ActionMapping actionMapping,

  ActionForm actionForm,

  HttpServletRequest servletRequest,

  HttpServletResponse serveltResponse) {

  LoginActionForm loginform = (LoginActionForm) actionForm;

  String username = loginform.getUsername();

  String userpass = loginform.getUserpass();

  boolean flag = false;

  String actionpath = "";

  if (username.equals("123") &&userpass.equals("123")) {

  actionpath = "success";

  } else {

  actionpath = "error";

  }

  return actionMapping.findForward(actionpath);

  }

  }

  在“LoginAction”中,我们得到一个ActionForm对象,并把它强转成LoginActionForm,

  待我们处理,即通过ActionForm的匹配名称的表单自动封装机制,取得用户输入用户名、密码。

  我们返回的结果将会被ActionFormward对象所包装,比如这儿的“success“表示用户合法,“error”表示用户不合法,这个字符串将决定着页面的流程控制。它并不是一个具体存在的页面,它是如何跟一个具体的页面关联上的呢?

呵呵,先不要急,我们来分析几点:

  1、 你在操作时记住的概念:

  Struts的核心是Action,而Action的核心就是一个配置文件——struts-config.xml。它既然是核心就很重要哦。

  2、 Maping映射:

  a) actionMapping.findForward(“映射名称”); 它返回的是一个ActionForward对象

  b) struts-config.xml里面action节点下的:

  实现机制:Struts会根据你传进actionMapping.findForward(“映射名称”),它会到你当前action节点下去找forward这个节点,并把你传进的参数与这个节点的name属性进行匹配。如果相等它就会跳到这个节点的path所指定的页面。

  例:

  Action:actionMapping.findForward(“success”)

  Struts-config.xml:

  如果是这种情况的话,它就会转发到success.jsp页面。

  注意:

  a) 方法的参数值和name节点的值对应,

  b) Path所指定的页面,前面必须加上“/“

  B、在前面我们提到了ActionForm,所以我们还需要建立一个类文件,这个类文件将封装页面用户输入的用户名、和密码。

  注意:

  1、这个类必须继承ActionForm类,它将完成与页面的自动封装。

  2、类中的属性名称一定要和页面的输入框的名称对应,为了自动封装的匹配工作。

  3、这个类中一定要提供所有与属性相匹配的set 和 get方法。

  好,前面写了这些代码,看上去还是有些杂乱无章,怎么把它们关联起来呢?又怎么调用这些代码呢?呵呵,群龙不会无首的,下面就一起来关注struts的装配文件,它可是相当于struts的总司令哟!

  C、核心部分,跳转控制Struts-config.xml部分

  <struts-config>

  <form-beans>

  <form-bean name="loginActionForm" type="formbeans.LoginActionForm" />

  </form-beans>

  <action-mappings>

  <action path="/login" name="loginActionForm"  type="actions.LoginAction">

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

  <forward name="error" path="/wrong.jsp"/>

  </action>

  </action-mappings>

  </struts-config>

  我们对struts.xml做一下相应的介绍吧,如下:

  :用来配置一个ActionForm Bean。常用配置的几个属性:

  name:指定该ActionForm Bean的唯一标识符,整个Struts框架用该标识符来引用这个Bean。该属性是必需的

  type:指定ActionForm类的全限定名。该属性是必需的

  :用来描述特定的请求路径到相应的Action类的映射。常用配置的几个属性:

  input: 指定包含输入表单的URL路径。当表单验证失败时,将把请求转发到该URL。

  name: 指定和该Action关联的ActionForm Bean的名字。

  path: 指定访问Action的路径,它以“/”开头,没有扩展名。

  Scope: 指定ActionForm Bean的存在范围。(session | request)

  Validate:指定是否要先调用ActionForm Bean的validate()方法。默认值为true

  Action的子元素常用配置的几个属性:

  name: 指定转发路径的逻辑名。必需的

  path: 指定转发(或重定向)的URI,必须以”/”开头。必需的

  redirect:当此项为true时,表示执行重定向操作。为false时表示执行请求转发操作。默认值为false

  D、页面login.jsp,用户登录页面,提供用户输入功能。具体代码如下所示:

  <form method="post" action="login.do">

  请输入姓名:<input type="text" name="username" value=""/><br />

  请输入密码:<input type="password" name="userpass" value=""/><br>

  <input type="submit" name="Submit" value="Submit">

  <input type="reset" value="Reset">

  </form>

  注意:

  1、action后面的login.do就是struts-config.xml里面你要访问的action节点path的值哦

  2、切记哦,如果你请求的URL的引用了formbean的话,这里的名称一定要对应哦。

  还有success.jsp 、wrong.jsp分别代表登录成功和登录失败页面。就不再多说啦!

  启动Tomcat,连接上您的应用程序网址,例如:http://localhost:8080/Struts1_Login/login.jsp,填入用户名、密码,并送出窗体,您的欢迎页面就会显示了。

  怎么样,本章节是不是比较容易?其实struts就这么简单,能完成本章节的要求吧!现在你已经上手啦,接着往下学,我们会有越来越多的收获哟!!(引用自http://dev.rdxx.com/Java/Struts/2008/9/252030646907_2.shtml)