我是靠谱客的博主 自由大门,这篇文章主要介绍jsp+servlet+javaBean+mysql (MVC)模拟用户登录,现在分享给大家,希望可以做个参考。


一、登录页面 /jsp/login.jsp

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<%@ 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

复制代码
1
2
3
4
5
6
7
8
<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
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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

复制代码
1
2
3
4
5
6
7
8
9
10
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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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)


复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/*============使用 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>前边加入代码如下)

复制代码
1
<Context path="/Emp" reloadable="true" docBase="D:WorkspaceJ2eeEmpProjectWebRoot" workDir="D:WorkspaceJ2eeEmpProjectWebRoot" />
运行结果查看:





最后

以上就是自由大门最近收集整理的关于jsp+servlet+javaBean+mysql (MVC)模拟用户登录的全部内容,更多相关jsp+servlet+javaBean+mysql内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部