第四个版本我们通过访问数据库来校验用户名和密码!
我们使用的数据库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 包括理解其核心概念、配置文件的编写、Action 类的设计、Form Beans 的使用以及 JSP 页面的开发。同时,熟悉其提供的标签库和错误处理机制也是必不可少的。对于那些对源码感兴趣的...
总的来说,Struts 1.3.8 学习笔记会引导你掌握如何利用这个框架构建健壮、可维护的 Web 应用。通过学习 Struts 的核心概念、配置方式以及实践案例,你将能够有效地组织和管理应用程序的结构,提升开发效率。
在博客 "Struts 1.3.8 学习笔记(八)" 中,可能涉及到了更深入的主题,如自定义拦截器(PlugIn)、异常处理、文件上传下载、数据库操作集成等。博主可能还分享了如何使用 Struts 工具进行调试、性能优化以及与 ...
总结来说,Struts 1.3.8 学习笔记涵盖的内容广泛,包括框架的组件使用、配置、源码解读以及工具应用。通过这样的学习,开发者能够熟练掌握 Struts 的核心功能,为构建高效、可维护的 Web 应用奠定基础。
这篇学习笔记主要针对 Struts 1.3.8 版本进行深入探讨,通过讲解其核心概念、工作原理以及实际应用,帮助开发者更好地理解和使用这一框架。 首先,Struts 1.3.8 的主要特点包括: 1. **MVC架构**:Struts 将应用...
这个版本的学习笔记主要集中在 Struts 框架的核心概念、架构和实际应用上。Struts 1 提供了一个MVC(Model-View-Controller)设计模式的实现,帮助开发者组织应用程序的逻辑,提高代码的可维护性和可扩展性。 在...
本学习笔记将聚焦于 Struts 1.3.8 版本中的核心概念、组件以及在实际开发中的应用。 Struts 框架基于 Model-View-Controller (MVC) 设计模式,它简化了应用程序的结构,使得开发者可以更专注于业务逻辑,而不是底层...
这个版本的学习笔记主要涵盖了 Struts 框架的核心概念、架构和实际应用。在这个版本中,Struts 已经相当成熟,提供了一套完整的 MVC(模型-视图-控制器)设计模式的实现,极大地简化了开发流程,提高了代码的可维护...
在本学习笔记中,我们将深入探讨 Struts 1.3.8 的核心概念、功能以及实际应用。Struts 为开发者提供了构建动态 Web 应用程序的结构框架,简化了开发流程,增强了代码的可维护性和可扩展性。 首先,我们来了解 MVC ...
目录 1.1 Spring 框架学习路线:...........................................................................................................................4 1.2 Spring 框架的概述:...........................