Strust2+JavaBean+DAO开发示例

本文介绍了使用Struts2框架结合JavaBean和DAO开发用户登录注册功能的过程。首先分析系统业务流程,然后进行系统设计,遵循MVC结构。接着详细讲解了数据库设计、Struts2功能的添加、web.xml配置、Action的编写以及视图组件(jsp页面)的创建。最后,部署到Tomcat服务器进行测试,验证了系统功能的正确性。
题目要求:
(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



用一个错误的用户名来测试,并在注册成功登陆。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值