码迷,mamicode.com
首页 > 其他好文 > 详细

使用Struts2搭建登录注册示例

时间:2016-06-20 23:44:34      阅读:342      评论:0      收藏:0      [点我收藏+]

标签:

使用Struts2来搭建mvc网站框架还是比较容易的,Struts2提供了各项辅助功能,保证了web开发的快速方便。下面使用struts2来搭建一个登录注册示例。

0 项目结构截图

技术分享

 

1 搭建Struts2环境

1.1 导入struts2基本包

因为这是一个简单的示例,所以仅用到了struts最进本的功能,所以只需导入struts的基本包即可,具体包如下:

技术分享

其中文件名中的版本号因不同版本而异。将上面这些包放入WEB-INF/lib目录下,然后在将包导入项目中。

1.2 在web.xml中配置Struts2的过滤器

struts2使用servlet的过滤器来引入struts2框架,该过滤器类名称为:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter,具体模板如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>LoginDemo</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <filter>
      <filter-name>struts</filter-name>
      <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
      <filter-name>struts</filter-name>
      <url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>

1.3 在src目录下创建struts.xml文件,该文件是struts2的默认配置文件,该项目仅用在struts.xml中配置action即可,具体模板如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
    <package name="default" namespace="/" extends="struts-default">
        <action name="login" class="com.login.demo.action.LoginAndRegisterAction" method="login">
            <result name="success">/index.jsp</result>
            <result name="login">/login.jsp</result>
        </action>
        <action name="register" class="com.login.demo.action.LoginAndRegisterAction" method="register">
            <result name="success">/index.jsp</result>
            <result name="register">/register.jsp</result>
        </action>
    </package>
</struts>

通过以上步骤就将struts2框架引入了项目中,下面添加对应的代码实现。

2 添加业务实现

2.1 添加User实体类

User.java

package com.login.demo.model;

public class User {

    private String name;
    
    private String pass;
    
    private String gender;
    
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPass() {
        return pass;
    }

    public void setPass(String pass) {
        this.pass = pass;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

2.2 添加LoginAndRegisterAction

因为登录和注册有很大的相似性,所以将这两个动作合并为一个,在struts.xml中配置action时可以分解为login和register动作,然后分别为其制定method属性,这样struts2调用时就会调用method制定的方法来代替默认的execute方法,代码如下:

LoginAndRegisterAction.java

package com.login.demo.action;

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.login.demo.model.User;

public class LoginAndRegisterAction implements Action {

    private User user;
    
    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }
    
    public String login()
    {
        if(getUser() != null)
        {
            if(getUser().getName() != null && getUser().getName().trim().length() > 0 &&
                    getUser().getPass() != null && getUser().getPass().trim().length() > 0)
            {
                ActionContext.getContext().getSession().put("type", "login");
                return SUCCESS;
            }
        }
        return LOGIN;
    }
    
    public String register()
    {
        if(getUser() != null)
        {
            if(getUser().getName() != null && getUser().getName().trim().length() > 0 &&
                    getUser().getPass() != null && getUser().getPass().trim().length() > 0 &&
                    getUser().getGender() != null && 
                    (getUser().getGender().equals("male") || getUser().getGender().equals("female")) &&
                    getUser().getAge() > 0)
            {
                ActionContext.getContext().getSession().put("type", "register");
                return SUCCESS;
            }
        }
        return LOGIN;
    }

    @Override
    public String execute() throws Exception {
        return null;
    }
}

2.3 添加login.jsp

<%@ page contentType="text/html; charset=utf-8"%>
<!DOCTYPE>
<html>
    <head>
        <title>Login Demo</title>
    </head>
    <body>
        <form action="login" method="get">
            NAME: <input type="text" name="user.name"><br>
            PASS: <input type="password" name="user.pass"><br>
            <button type="submit">Login</button> <a href="register.jsp">Register</a>
        </form>
    </body>
</html>

2.4 添加register.jsp

<%@ page contentType="text/html; charset=utf-8"%>
<!DOCTYPE>
<html>
    <head>
        <title>Login Demo</title>
    </head>
    <body>
        <form action="register" method="get">
            NAME: <input type="text" name="user.name"><br>
            PASS: <input type="password" name="user.pass"><br>
            AGE: <input type="text" name="user.age"><br>
            GENDER: <select name="user.gender">
                        <option value="male">male</option>
                        <option value="female">female</option>
                    </select>
            <button type="submit">Login</button>
        </form>
    </body>
</html>

2.5 添加index.jsp

<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE>
<html>
    <head>
        <title>Login Demo</title>
    </head>
    <body>
        <s:if test=‘#session.type=="login"‘>
            Name: <s:property value="user.name"/><br>
            Pass: <s:property value="user.pass"/><br>
        </s:if>
        <s:elseif test=‘#session.type=="register"‘>
            Name: <s:property value="user.name"/><br>
            Pass: <s:property value="user.pass"/><br>
            Age: <s:property value="user.age"/><br>
            Gender: <s:property value="user.gender"/><br>
        </s:elseif>
        <s:else>
            <% response.sendRedirect("login.jsp"); %>
        </s:else>
    </body>
</html>

 通过以上过程就完成了本示例。

使用Struts2搭建登录注册示例

标签:

原文地址:http://www.cnblogs.com/lvniao/p/5602067.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!