`
CoderDream
  • 浏览: 477202 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Struts 1.3.8 学习笔记(四)

 
阅读更多

第四个版本我们通过访问数据库来校验用户名和密码!

 

我们使用的数据库MySQL,所以我们要用到MySQL的驱动:mysql-connector-java-5.1.17-bin.jar

 

创建表的脚本

 

-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS user;
CREATE TABLE user (
  username varchar(256) NOT NULL,
  password varchar(256) DEFAULT NULL,
  PRIMARY KEY (username)
) ENGINE=MyISAM DEFAULT CHARSET=UTF-8;

-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO user VALUES ('admin', 'admin');
INSERT INTO user VALUES ('user', 'user');

 

 

同时需要JDBC来访问数据库

首先创建一个JDBC工具类,用来建立和关闭连接

JdbcUtil.java

package com.coderdream.ad.db;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class JdbcUtil {
	public static void close(Statement st, Connection con) {
		try {
			st.close();
		} catch (Exception e) {
		}

		try {
			con.close();
		} catch (Exception e) {
		}
	}

	public static void close(ResultSet rs, Statement st, Connection con) {
		try {
			rs.close();
		} catch (Exception e) {
		}
		close(st, con);
	}

	public static Connection getConnection() throws Exception {
		Class.forName(SqlConstant.DB_NAME);
		return DriverManager.getConnection(SqlConstant.DB_URL, SqlConstant.DB_USER_NAME, SqlConstant.DB_PASSWORD);
	}
}

 

再创建一个常量类,用于保存数据库的连接属性

SqlConstan.java

package com.hp.gddc.ad.db;

public class SqlConstant {
	public static final String DB_NAME = "com.mysql.jdbc.Driver";
	public static final String DB_URL = "jdbc:mysql://localhost:3306/stu";
	public static final String DB_USER_NAME = "root";
	public static final String DB_PASSWORD = "1234";
}

 最后就可以通过UserDao来访问数据库了:

UserDao.java

package com.coderdream.db;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

public class UserDao {

	public int queryUser(String username, String password) {
		Connection con = null;
		Statement st = null;
		ResultSet rs = null;
		int i = 0;
		try {
			con = JdbcUtil.getConnection();
			st = con.createStatement();
			String sql = "select * from user where username='" + username + "' and password='" + password + "'";
			System.out.println(sql);
			rs = st.executeQuery(sql);

			while (rs.next()) {
				i++;
				System.out.print("username=" + rs.getString("username"));
				System.out.print(",password=" + rs.getString("password"));
				System.out.println("");
			}
		} catch (Exception e) {
			e.printStackTrace();
			throw new RuntimeException(e);
		} finally {
			JdbcUtil.close(rs, st, con);
		}

		return i;
	}
}

 同时更新LoginAction中的相关代码,把硬编码比较改成访问数据库:

LoginAction.java

package com.coderdream.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.hp.gddc.ad.db.UserDao;
import com.hp.gddc.ad.form.LoginForm;

public class LoginAction extends Action {
	/**
	 * 处理客户端请求
	 */
	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		// 得到客户的的提交数据
		LoginForm lf = (LoginForm) form;
		UserDao studentDao = new UserDao();
		String username = lf.getUserName();

		String password = lf.getPassword();

		int result = studentDao.queryUser(username, password);
		// 业务调用
		if (1 <= result) {
			// 用户名密码验证成功,跳转到成功页面
			return mapping.findForward("success");
		} else {
			// 用户名密码错误,跳转到失败页面
			return mapping.findForward("failing");
		}
	}
}

 

运行结果和第三个版本一致!

 

源代码:

 

分享到:
评论

相关推荐

    Struts 1.3.8 学习笔记(一)

    在实际开发中,学习 Struts 1.3.8 包括理解其核心概念、配置文件的编写、Action 类的设计、Form Beans 的使用以及 JSP 页面的开发。同时,熟悉其提供的标签库和错误处理机制也是必不可少的。对于那些对源码感兴趣的...

    Struts 1.3.8 学习笔记(二)

    总的来说,Struts 1.3.8 学习笔记会引导你掌握如何利用这个框架构建健壮、可维护的 Web 应用。通过学习 Struts 的核心概念、配置方式以及实践案例,你将能够有效地组织和管理应用程序的结构,提升开发效率。

    Struts 1.3.8 学习笔记(八)

    在博客 "Struts 1.3.8 学习笔记(八)" 中,可能涉及到了更深入的主题,如自定义拦截器(PlugIn)、异常处理、文件上传下载、数据库操作集成等。博主可能还分享了如何使用 Struts 工具进行调试、性能优化以及与 ...

    Struts 1.3.8 学习笔记(五)

    总结来说,Struts 1.3.8 学习笔记涵盖的内容广泛,包括框架的组件使用、配置、源码解读以及工具应用。通过这样的学习,开发者能够熟练掌握 Struts 的核心功能,为构建高效、可维护的 Web 应用奠定基础。

    Struts 1.3.8 学习笔记(九)

    这篇学习笔记主要针对 Struts 1.3.8 版本进行深入探讨,通过讲解其核心概念、工作原理以及实际应用,帮助开发者更好地理解和使用这一框架。 首先,Struts 1.3.8 的主要特点包括: 1. **MVC架构**:Struts 将应用...

    Struts 1.3.8 学习笔记(三)

    这个版本的学习笔记主要集中在 Struts 框架的核心概念、架构和实际应用上。Struts 1 提供了一个MVC(Model-View-Controller)设计模式的实现,帮助开发者组织应用程序的逻辑,提高代码的可维护性和可扩展性。 在...

    Struts 1.3.8 学习笔记(七)

    本学习笔记将聚焦于 Struts 1.3.8 版本中的核心概念、组件以及在实际开发中的应用。 Struts 框架基于 Model-View-Controller (MVC) 设计模式,它简化了应用程序的结构,使得开发者可以更专注于业务逻辑,而不是底层...

    Struts 1.3.8 学习笔记(十)

    这个版本的学习笔记主要涵盖了 Struts 框架的核心概念、架构和实际应用。在这个版本中,Struts 已经相当成熟,提供了一套完整的 MVC(模型-视图-控制器)设计模式的实现,极大地简化了开发流程,提高了代码的可维护...

    Struts 1.3.8 学习笔记(六)

    在本学习笔记中,我们将深入探讨 Struts 1.3.8 的核心概念、功能以及实际应用。Struts 为开发者提供了构建动态 Web 应用程序的结构框架,简化了开发流程,增强了代码的可维护性和可扩展性。 首先,我们来了解 MVC ...

    spring学习笔记

    目录 1.1 Spring 框架学习路线:...........................................................................................................................4 1.2 Spring 框架的概述:...........................

Global site tag (gtag.js) - Google Analytics