(1)技术要求:
采用struts2架构构建一个简单的登录系统。
(2)系统功能要求:
当用户在登录页面上填写用户名和密码并提交后,系统检查该用户是否已经注册,若注册,系统进入主页面,否则,进入注册页面。
构建系统的处理步骤
(1)分析系统,给出系统的业务流程
(这是系统设计的关键一步,只有搞清业务处理,才能开发出正确的系统)
(2)系统设计,根据对系统的分析,按MVC结构,分别给出每部分的结构及其组成成分。
(这是系统开发中重要的步骤,完成合理分配每部分的功能及其实现该功能的构建)
(3)数据库设计:
构建数据库test及其数据表T_UserInfo
CREATE TABLE t_userinfo (
userName VARCHAR (15),
password VARCHAR (15) NOT NULL ,
PRIMARY KEY (userName));
在数据表中插入数据
INSERT INTO test VALUES ('yang', 'yang');
(4)在Eclipse中创建一个项目。
(5)把struts2功能添加到项目中:导入有关的jar包;
(6)构建web.xml配置文件;
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name></display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
</web-app>
(7)构建数据模型组件和数据库访问组件;
在MyEclipse里面右键单击项目-〉propertie-〉Java Build Path-〉 Libraries-〉Add External Jars ...
找到驱动文件的位置
(8)构建完成业务逻辑处理的Action;
需要编写两个action,一个用来登录,另一个用来注册
这里还需要有改进的地方,在注册的时候需要检测一下还需要改进。
LoginAction
package action;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import javabean.userBean;
import com.opensymphony.xwork2.ActionSupport;
import dao.JDBCConnection;
public class LoginAction extends ActionSupport {
private userBean user;
public userBean getUser() {
return user;
}
public void setUser(userBean user) {
this.user = user;
}
@Override
public String execute() throws Exception {
JDBCConnection JC = new JDBCConnection();
Connection con = JC.getConnection();
Statement statement;
try {
statement = con.createStatement();
String sql = "select * from t_userinfo where userName='"
+ user.getUserName() + "'";
ResultSet rs = statement.executeQuery(sql);
ResultSet rs1 = null;
if (!rs.next()) {
return "error";
} else {
String sql1 = "select * from t_userinfo where password='"
+ user.getPassword() + "'";
rs1 = statement.executeQuery(sql1);
if (!rs1.next()) {
return "error";
}
}
rs.close();
rs1.close();
statement.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
return "right";
}
}
RegisterAction
package action;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import javabean.userBean;
import com.opensymphony.xwork2.ActionSupport;
import dao.JDBCConnection;
public class RegisterAction extends ActionSupport {
private userBean ruser;
public userBean getRuser() {
return ruser;
}
public void setRuser(userBean ruser) {
this.ruser = ruser;
}
@Override
public String execute() throws Exception {
JDBCConnection JC = new JDBCConnection();
Connection con = JC.getConnection();
Statement statement;
try {
statement = con.createStatement();
String sql = "insert into t_userinfo(username,password) values('"+ruser.getUserName()+"','"+ruser.getPassword()+"') ";
statement.executeUpdate(sql);
statement.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
return "right";
}
}
(9)构建视图组件:建立jsp页面;
一共四个页面
lodin.jsp登录页面、login_success.jsp登录成功页面、register.jsp注册页面、register_success.jsp注册成功页面
login.jsp
最好还是写一个重定向,以为没有主页所以没写。
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>用户登录</title>
</head>
<body>
用户登录
<s:form action="login">
<s:textfield name="user.userName" label="用户名" />
<s:password name="user.password" label="密码" />
<s:submit value="确定" />
</s:form>
</body>
</html>
login_success.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>登陆成功</title>
</head>
<body>登陆成功!20秒后跳转。
</body>
</html>
register.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>注册</title>
</head>
<body>
用户尚未注册或用户名密码错误,请先注册。
<s:form action="register">
<s:textfield name="ruser.userName" label="用户名" />
<s:textfield name="ruser.password" label="密码" />
<s:submit value="注册" />
</s:form>
</body>
</html>
register_success.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>登陆成功</title>
</head>
<body>注册成功!请返回重新登录。
</body>
</html>
(10)构建struts.xml配置文件;
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="action" extends="struts-default">
<action name="login" class="action.LoginAction">
<result name="error">/register.jsp</result>
<result name="right">/login_success.jsp</result>
</action>
<action name="register" class="action.RegisterAction">
<result name="right">/register_success.jsp</result>
</action>
</package>
</struts>
文件结构
(11)部署该程序到服务器Tomcat中,运行。
测试:
数据表中已经有一个用户,用户名密码都为yang
用一个错误的用户名来测试,并在注册成功登陆。
本文介绍了使用Struts2框架结合JavaBean和DAO开发用户登录注册功能的过程。首先分析系统业务流程,然后进行系统设计,遵循MVC结构。接着详细讲解了数据库设计、Struts2功能的添加、web.xml配置、Action的编写以及视图组件(jsp页面)的创建。最后,部署到Tomcat服务器进行测试,验证了系统功能的正确性。

3079

被折叠的 条评论
为什么被折叠?



