jsp+servlet+javaBean+mysql (MVC)模拟用户登录
2014-06-18 13:31
721 查看
一、登录页面
/jsp/login.jsp
<%@ page contentType="text/html; charset=GBK" import="java.util.*" %> <html> <head><title>hsl</title></head> <script language="JavaScript"> function vaildate(f){ var regex = /^\w{5,15}$/; // 定义正则 if(!(regex.test(f.userid.value))){ alert("用户 ID 必须是 5~15位!"); f.userid.focus(); return false; } if(!(regex.test(f.userpass.value))){ alert("密码必须是 5~15位!"); f.userpass.focus(); return false; } return true; } </script> <body> <h2>用户登录程序</h2> <% request.setCharacterEncoding("GBK"); // 设置编码 %> <% List<String> info = (List<String>)request.getAttribute("info"); //取得属性 if(info!=null){ // 判断是否有内容 Iterator<String> iter = info.iterator(); while(iter.hasNext()){ %> <h4><%=iter.next()%></h4> <!-- 输出登录验证信息 --> <% } } %> <form action="LoginServlet" method="post" onSubmit="return vaildate(this)"> 用户名:<input type="text" name="userid"/><br/> 密 码:<input type="password" name="userpass"/><br/> <input type="submit" value="登录"/> <input type="reset" value="重置"/> </form> </body> </html>
二、配置 web.xml
<servlet> <servlet-name>login</servlet-name> <servlet-class>hsl.mvc.servlet.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>login</servlet-name> <url-pattern>/jsp/LoginServlet</url-pattern> </servlet-mapping>三、定义 Servlet---LoginServlet.java
package hsl.mvc.servlet; import hsl.mvc.factory.DAOFactory; import hsl.mvc.vo.User; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class LoginServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String path = "login.jsp"; String userid = request.getParameter("userid"); //接收 userid 参数 String userpass = request.getParameter("userpass"); //接收 userpass 参数 List<String> info = new ArrayList<String>(); // 保存返回信息 if(userid==null || "".equals(userid)){ // 如果 userid 为 null info.add("用户id不能为空!"); } if(userpass==null || "".equals(userpass)){ // 如果 userpass 为 null info.add("密码不能为空!"); } if(info.size()==0){ // 用户名和密码验证通过 User user = new User(); // 实例化 VO user.setUserid(userid); // 设置 userid user.setPassword(userpass); // 设置 userpass try { if(DAOFactory.getIUserDAOInstance().findLogin(user)){ info.add("用户登录成功, 欢迎"+user.getName()+"光临!"); }else{ info.add("用户登录失败,错误的用户名或密码!"); } } catch (Exception e) { e.printStackTrace(); } } request.setAttribute("info", info); // 保存错误信息 request.getRequestDispatcher(path).forward(request, response); // 跳转 } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); //doPost、doGet相互调用 } }四、定义工厂类,取得 DAO 实例----DAOFactory.java
package hsl.mvc.factory; import hsl.mvc.dao.IUserDAO; import hsl.mvc.dao.proxy.UserDAOProxy; public class DAOFactory { public static IUserDAO getIUserDAOInstance(){ // 取得 DAO 实例 return new UserDAOProxy(); // 返回代理实例 } }五、定义 DAO 代理操作类----UserDAOProxy.java
package hsl.mvc.dao.proxy; import hsl.mvc.dao.IUserDAO; import hsl.mvc.dao.UserDAOImpl; import hsl.mvc.dbc.DatabaseConnection; import hsl.mvc.vo.User; public class UserDAOProxy implements IUserDAO { private DatabaseConnection dbc = null; // 定义数据库实例 dbc private IUserDAO dao = null; // 定义连接 dao public UserDAOProxy(){ // 构造 try { this.dbc = new DatabaseConnection(); // 实例化数据库连接 dbc } catch (Exception e) { e.printStackTrace(); } this.dao = new UserDAOImpl(this.dbc.getConnection()); // 取得连接 dao } public boolean findLogin(User user) throws Exception { boolean flag = false; try { flag = this.dao.findLogin(user); // 调用真实主题 } catch (Exception e) { throw e; }finally{ this.dbc.close(); } return flag; // 返回标记 } }六、定义 DAO 接口----IUserDAO.java
package hsl.mvc.dao; import hsl.mvc.vo.User; /** * DAO 操作接口 */ public interface IUserDAO { /** * 用户登录验证 * @param user * @return 验证的操作结果 * @throws Exception */ public boolean findLogin(User user)throws Exception; }七、定义 DAO 实现类----UserDAOImpl.java
package hsl.mvc.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import hsl.mvc.dao.IUserDAO; import hsl.mvc.vo.User; public class UserDAOImpl implements IUserDAO { private Connection conn = null; // 定义数据库连接对象 private PreparedStatement pstmt = null; // 定义数据库操作对象 public UserDAOImpl(Connection conn) { // 设置数据库连接 this.conn = conn; } public boolean findLogin(User user) throws Exception { boolean flag = false; String sql = "select name from user where userid=? and password=?"; try { this.pstmt = this.conn.prepareStatement(sql); // 实例化操作 this.pstmt.setString(1, user.getUserid()); // 设置 id this.pstmt.setString(2, user.getPassword()); // 设置 password ResultSet rs = this.pstmt.executeQuery(); // 取得查询结果 if (rs.next()) { user.setName(rs.getString(1)); // 取得用户名 flag = true; // 登录成功 } } catch (Exception e) { throw e; } finally { if (this.pstmt != null) { try { this.pstmt.close(); // 关闭操作 } catch (Exception e) { throw e; } } } return flag; } }八、定义数据库操作类
----DatabaseConnection.java
package hsl.mvc.dbc; import java.sql.Connection; import java.sql.DriverManager; public class DatabaseConnection { private static final String DBDRIVER = "org.gjt.mm.mysql.Driver"; private static final String DBURL = "jdbc:mysql://localhost:3336/mvctest"; private static final String DBUSER = "root"; private static final String DBPASSWORD = "myoa888"; private Connection conn = null; public DatabaseConnection() throws Exception { try { Class.forName(DBDRIVER); // 加载驱动程序 this.conn = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD); // 连接数据库 } catch (Exception e) { throw e; } } public Connection getConnection() { // 取得数据库连接 return this.conn; } public void close() throws Exception { // 数据库关闭操作 if (this.conn != null) { try { this.conn.close(); } catch (Exception e) { throw e; } } } }
九、 定义 VO 类
----User.java
package hsl.mvc.vo; public class User { private String userid ; // 对应 userid 列 private String name ; // 对应 name 列 private String password ; public String getUserid(){ return userid; } public void setUserid(String userid){ this.userid = userid; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }十、数据库创建
----mvctest (user)
/*============使用 mvctest 数据库=============*/ USE mvctest; /*============删除 user 数据表=============*/ DROP TABLE IF EXISTS user; /*============创建 user 数据表=============*/ CREATE TABLE user( userid VARCHAR(30) PRIMARY KEY, name VARCHAR(30) NOT NULL, password VARCHAR(32) NOT NULL ); /*============插入测试数据=============*/ INSERT INTO user(userid,name,password)VALUES('admin','管理员','admin');
十一、Tomcat 配置 server.xml (</Host>前边加入代码如下)
<Context path="/Emp" reloadable="true" docBase="D:\WorkspaceJ2ee\EmpProject\WebRoot" workDir="D:\WorkspaceJ2ee\EmpProject\WebRoot" />运行结果查看:
相关文章推荐
- jsp+servlet+javaBean+mysql (MVC)模拟用户登录
- jsp+jstl+servlet+javaBean+Mysql用户登录注册页面
- 基于MVC 用户登录的实现(JavaBean + Servlet + JSP)
- MVC(JSP+JavaBean+Servlet),用户登录验证开始
- MVC(JSP+JavaBean+Servlet)入门实例:用户登陆验证
- JSP+JavaBean+Servlet技术实现某网站用户注册和登录功能
- 基于Servlet+JSP+JavaBean开发模式的用户登录注册
- 用JSP+Servlet+JavaBean模式实现一个简单的登录网页设计(JSP+Tomcat+MySQL)
- 深入分析JavaWeb 19 -- 基于Servlet+JSP+JavaBean开发模式的用户登录注册
- javaweb学习总结(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册
- 服务器搭建:servlet+dao+javabean+jsp实现简单的用户登录(一)
- 对基于Servlet+JSP+JavaBean开发模式的用户登录注册的升级
- JavaWeb总结二十二、基于Servlet+JSP+JavaBean开发模式的用户登录注册
- JavaWeb学习总结(基于Servlet+JSP+JavaBean开发模式的用户登录注册)
- 基于Servlet+JSP+JavaBean开发模式的用户登录注册
- Java Web学习(30): 使用JSP+Servlet+JavaBean实现用户登录
- 基于JSP + servlet + javabean的MVC简单验证登录实例
- 【转载】 javaweb学习总结(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册 - 孤傲苍狼 - 博 http://www.cnblogs.com/xdp-gacl/
- javaweb学习总结(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册
- 基于Servlet+JSP+JavaBean开发模式的用户登录注册