Struts入门的一个例子

Struts入门的一个例子

 

一个实现用户登录的struts简单例子。功能非常简单,目的是演示struts各组件之间的关系及信息是怎样传递的。例子包含一个JSP页面,JSP页面包含用户名和密码登录信息,填写登录信息后点击登录按钮提交,服务器端判断填写的用户名和密码是否正确,并跳转回登录页面,反馈登录是否成功的信息。

创建环境:Eclipse3.2 + MyEclpise5.5 + jdk1.5 + struts1.2(环境搭建在此不做说明,请参考相关资料)

工程名称:SpringExp

目录结构:

 

 

创建步骤:

1步:创建JSP登录页面,页面包含一个text标签,一个password标签和一个submit提交按钮,提交到的URL/SpringExp/login.cmd

2步:创建存储用户登录信息的类UserUser类继承自ActionForm

3步:创建控制器类LoginAction,继承自Action,用于完成对用户名和密码的校验,并跳转到登录页面。

4步:在struts配置文件struts-config.xml中配置bean,action等信息。

5步:在web.xml配置文件中设定struts信息。

各步骤涉及到的文件主要内容如下:

1、 JSP页面(登录首页)

文件:/jsp/ssh/login.jsp

<form action="/SpringExp/login.cmd" method="post">

用户名:<input type="text" name="username" value="${user.username}" /><br>

密码:  <input type="password" name="password" value="${user.password}" /><br>

<input type="submit" name="method" value="提交" />

</form>

2、 ActionForm定义(User定义)

文件:cn/starup/ssh/struts/mylogin/bean/User.java

public class User extends ActionForm {

         private String username = null;

         private String password = null;

         public void setUsername(String username) {

             this.username = username;

         }

         public String getUsername() {

             return this.username;

         }

         public void setPassword(String password) {

             this.password = password;

         }

         public String getPassword() {

            return this.password;

         }

}

3、 控制器Action定义

文件:cn/starup/ssh/struts/mylogin/action/LoginAction.java

public class LoginAction extends Action {

    public ActionForward execute(ActionMapping mapping, ActionForm form,

           HttpServletRequest request, HttpServletResponse response)

           throws Exception {

       String forwardJsp = "login" ;

       String username = ((User) form).getUsername();

       String password = ((User) form).getPassword();

       if(username == null || password == null){

           request.setAttribute("msg", "请输入用户名和密码");

       }else if("".equals(username) || "".equals(password)){

           request.setAttribute("msg", "必须输入用户名和密码");

       }else if("2010".equals(username) && "2010".equals(password)){

           request.setAttribute("msg", "登录成功");

              }else{

           request.setAttribute("msg", "用户名填写错误");

       }

       request.setAttribute("user", (User)form);

       return mapping.findForward("login");

    }

}

4struts配置文件(struts-config.xml

<!—- 配置JavaBean user -->

<form-bean name="user"

           type="cn.starup.ssh.struts.mylogin.bean.User">

</form-bean>

<!—- 登录时访问的URL,即JSP中提交时访问的URL -->

    <action path="/login"

           type="cn.starup.ssh.struts.mylogin.action.LoginAction" name="user">

       <forward name="login" path="/jsp/ssh/login.jsp"></forward>

</action>

<!—- 初始登录页面 -->

    <action path="/logintemp"

            type="org.apache.struts.actions.ForwardAction"

            parameter="/jsp/ssh/login.jsp" />

5web.xml配置文件

    <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</param-value>

       </init-param>

    </servlet>

     <!-- 映射到以cmd结尾的URL请求 -->

    <servlet-mapping>

       <servlet-name>action</servlet-name>

       <url-pattern>*.cmd</url-pattern>

</servlet-mapping>

 

 

 

上图中列出了各种资源之间的对应关系,按照图中编号说明如下:

1)  初始访问的登录页面,在struts配置文件中定义为ForwardAction,对应的JSP页面为/jsp/ssh/login.jsp

2)  JSP页面Form中的用户名和密码信息会由struts封装成ActionForm(实质上是JavaBean类),传递给控制器,JavaBean类在此即User的属性usernamepassword是通过set方法注入的,因此要确保JSP页面标签属性name的值要和User类对应属性的set方法一致,否则User对象的值得不到正确设置。

注意:JavaBean类方法的注入是和方法名相关的,而与具体的属性名字没有关系,比如在此定义User是如果username属性名改成name,set方法仍然是setUsername()也是可以的,但是为了名称上的一致性,最好是使set方法和属性名对应。

3)  JSP页面Form表单提交的页面与struts配置文件中Action定义的对应关系,login对应的控制器类为:cn.starup.ssh.struts.mylogin.action.LoginAction

4)  Struts配置文件中定义的bean类与登录用户信息User类对应关系。

5)  Action标签的name属性,其值为定义的form-bean类,把页面向服务器提交的信息封装到此类中提交给控制器。

6)  把用户登录信息User对象保存在request范围内,传递到跳转到的JSP页面(登录页面),在JSP页面中通过${}把信息显示展示出来。

7)  控制器返回的页面与struts配置文件控制器定义中<forward>标签对应的关系。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值