struts旅程(二)Struts登录示例(一)

2014-11-24 02:50:12 · 作者: · 浏览: 5


上一篇我们简单了解了struts原理,学习SSH,第一部是傻瓜式学习法,人家怎么做就跟着怎么做就ok。我们以登录为例,Struts配置步骤总结如下(如图2.1):

\

图2.2

1、 jar包拷贝

首先是建立java web项目,之后打开我们我们下载好strtus框架,Struts-1.2.9-bin文件夹和struts-1.2.9.src源文件文件夹。在bin文件夹中的lib文件中拷贝struts的jar包,拷贝到我们自己项目struts_login >lib文件夹下(如图2.2)。

\

图2.2

2、 web.xml文件配置

找到Struts-1.2.9-bin中Struts-1.2.9-bin-->webapps下的struts实例struts-blank中的struts-1.2.9-bin\webapps\struts-blank\WEB-INF下的web.xml文件,复制配置对ActionServlet的配置,粘贴到我们的项目struts_login的WEB-INF下的web.xml中,代码如下所示。主要是对struts自带的ActionServlet进行配置。

  
   
   
    action
   
   
   
    org.apache.struts.action.ActionServlet
   
   
    
    
     config
     
    
     /WEB-INF/struts-config.xml
     
   
   
    
    
     debug
     
    
     2
     
   
   
    
    
     detail
     
    
     2
     
   
   
   
    2
   
 
  
 
 
 
  
 
  
   
   
    action
   
   
   
    *.do
   
 
  


3、 在项目中建立自己的ActionForm

在项目中建立自己的ActionForm,继承struts框架中已经写好的ActionForm,在ActionForm设置用到的数据,并且要和我们界面上设置的名称一致。因为我们在提交表单的时候,所有的请求都会放到ActionForm中。建立登录的ActionForm,LoginActionForm.java代码如下所示。

package com.bjpowernode.struts;
import org.apache.struts.action.ActionForm;
 
/**
 * 登录ActionForm,负责表单收集数据.
 * 表单的属性必须和ActionForm中的get和set的属性一致.
 * @author summer
 *
 */
public classLoginActionForm extends ActionForm {
 
    //用户名。
    private Stringusername;
    //密码。
    private String password;
   
    //设置密码。
    public voidsetPassword(Stringpassword) {
       this.password = password;
    }
    //得到用户名。
    public StringgetUsername() {
       return username;
    }
    //设置用户名。
    public voidsetUsername(Stringusername) {
       this.username = username;
    }
    //得到密码。
    public StringgetPassword() {
   
       return password;
    }
   
}


4、 建立自己的Action

建立自己的Action,同时继承struts框架中的org.apache.struts.action.Action,重载父类的execute方法。在这里完成取出表单中的数据。通过CalActionFormcalForm= (CalActionForm)(CalActionForm)form;(struts框架中已经帮我们封装好了,我们去使用就可以了)来取得表单中的值。经过判断后,进行相应的操作,跳转到相应的页面。Action的功能是负责拿到表单数据和调用业务逻辑后进行页面跳转。建立登陆的Action类,LoginAction.java类,调用业务逻辑类UserManager的login方法。代码如下所示。

packagecom.bjpowernode.struts;
 
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
 
importorg.apache.struts.action.Action;
importorg.apache.struts.action.ActionForm;
importorg.apache.struts.action.ActionForward;
importorg.apache.struts.action.ActionMapping;
 
/**
 *登录Action
 *负责取得表单数据,调用业务逻辑,返回转向信息.
 *
 * @author summer
 *
 */
public classLoginAction extendsAction {
 
      @Override
      public ActionForward execute(ActionMappingmapping,ActionForm form,
                    HttpServletRequest request, HttpServletResponseresponse)
                    throws Exception {
 
 
             LoginActionForm laf = (LoginActionForm)form;
             Stringusername = laf.getUsername();
             Stringpassword = laf.getPassword();
             
             UserManager userManager = newUserManager();
             //传递用户名和密码
             try
             {
                    userManager.login(username, password);
                    request.setAttribute("username", username);
                    return mapping.findForward("success");
             }catch(UserNotFoundException e)
             {
                    e.printStackTrace();
                    request.setAttribute("msg","用户不能找到,用户名称=[" +username +"+]");
             }catch(PasswordErrorException e)
             {
                    e.printStackTrace();
                    request.setAttribute("msg","密码错误");
             }
             
             return mapping.findForward("error");
      }
 
}


5、 建立struts-config.xml

作为Struts框架的核心描述,struts-config.xml可以说“一切尽在掌握”。它不但描述了MVC模型,定义所有视图层和控制层之间的接口(ActionForm),与控制层和模型层的接口(Action)进行结合,而且可以定义一些附加组件,如国际化信息资源排至文件,标签库信息等。

仍然是站在巨人的肩膀上,将我们下载的struts bin文件夹中的struts-config.xml文件复制到我们的项目的WEB-