Strust2+JavaBean+DAO开发示例

来源:互联网 发布:淘宝网的货源哪里找 编辑:程序博客网 时间:2024/06/05 01:34
题目要求:
(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;}@Overridepublic 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;}@Overridepublic 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



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