国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語言 - JAVA教程 - Java組件javabean用戶登錄實例詳解

Java組件javabean用戶登錄實例詳解

2020-05-04 14:06flab100 JAVA教程

這篇文章主要為大家詳細(xì)介紹了Java組件javabean用戶登錄實例,內(nèi)容有用戶登錄,注冊和退出等,感興趣的小伙伴們可以參考一下

本文簡單講述使用javabean實現(xiàn)用戶登錄,包括用戶登錄,注冊和退出等。

1.關(guān)于javabean
JavaBean 是一種JAVA語言寫成的可重用組件。為寫成JavaBean,類必須是具體的和公共的,并且具有無參數(shù)的構(gòu)造器。JavaBean 通過提供符合一致性設(shè)計模式的公共方法將內(nèi)部域暴露成員屬性,set和get方法獲取。眾所周知,屬性名稱符合這種模式,其他Java 類可以通過自省機制發(fā)現(xiàn)和操作這些JavaBean 的屬性。

2.系統(tǒng)架構(gòu)
2.1登錄用例圖

Java組件javabean用戶登錄實例詳解

2.2頁面流程圖

Java組件javabean用戶登錄實例詳解

2.3系統(tǒng)架構(gòu)圖

Java組件javabean用戶登錄實例詳解

2.4數(shù)據(jù)庫設(shè)計
本例使用oracle數(shù)據(jù)庫

用戶表包括id,用戶名,密碼,email,共4個字段

?
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
-- Create table
create table P_USER
(
 id  VARCHAR2(50) not null,
 username VARCHAR2(20),
 password VARCHAR2(20),
 email VARCHAR2(50)
)
tablespace USERS
 pctfree 10
 initrans 1
 maxtrans 255
 storage
 (
 initial 64
 minextents 1
 maxextents unlimited
 );
-- Add comments to the table
comment on table P_USER
 is '用戶表';
-- Add comments to the columns
comment on column P_USER.id
 is 'id';
comment on column P_USER.username
 is '用戶名';
comment on column P_USER.password
 is '密碼';
comment on column P_USER.email
 is 'email';

3.javabean編寫
3.1開發(fā)數(shù)據(jù)庫底層處理javabean
DBAcess.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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
package com.baosight.bean;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
 
/**數(shù)據(jù)庫操作類
 * <p>Title:DBAcess </p>
 * <p>Description:TODO </p>
 * <p>Company: </p>
 * @author yuan
 * @date 2016-5-22 下午12:40:24*/
public class DBAcess {
 private String driver = "oracle.jdbc.driver.OracleDriver";
 private String url = "jdbc:oracle:" + "thin:@127.0.0.1:1521:orcl";
 private String username = "scott";
 private String password = "tiger";
 private Connection conn;
 private Statement stm;
 private ResultSet rs;
 //創(chuàng)建連接
 public boolean createConn() {
  boolean b = false;
  try {
   Class.forName(driver);// 加載Oracle驅(qū)動程序
   conn = DriverManager.getConnection(url, username, password);
   b = true;
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }// 獲取連接
  catch (ClassNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return b;
 }
 //修改
 public boolean update(String sql){
  boolean b = false;
  try {
   stm = conn.createStatement();
   stm.execute(sql);
   b = true;
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return b;
 }
 //查詢
 public void query(String sql){
  try {
   stm = conn.createStatement();
   rs = stm.executeQuery(sql);
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
 //判斷有無數(shù)據(jù)
 public boolean next(){
  boolean b = false;
  try {
   if(rs.next()){
    b = true;
   }
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return b;
 }
 //獲取表字段值
 public String getValue(String field) {
  String value = null;
  try {
   if (rs != null) {
    value = rs.getString(field);
   }
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return value;
 }
 //關(guān)閉連接
 public void closeConn() {
  try {
   if (conn != null) {
    conn.close();
   }
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
 //關(guān)閉statement
 public void closeStm() {
  try {
   if (stm != null) {
    stm.close();
   }
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
 //關(guān)閉ResultSet
 public void closeRs() {
  try {
   if (rs != null) {
    rs.close();
   }
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
 public String getDriver() {
  return driver;
 }
 public void setDriver(String driver) {
  this.driver = driver;
 }
 public String getUrl() {
  return url;
 }
 public void setUrl(String url) {
  this.url = url;
 }
 public String getUsername() {
  return username;
 }
 public void setUsername(String username) {
  this.username = username;
 }
 public String getPassword() {
  return password;
 }
 public void setPassword(String password) {
  this.password = password;
 }
 public Statement getStm() {
  return stm;
 }
 public void setStm(Statement stm) {
  this.stm = stm;
 }
 public ResultSet getRs() {
  return rs;
 }
 public void setRs(ResultSet rs) {
  this.rs = rs;
 }
 public void setConn(Connection conn) {
  this.conn = conn;
 }
 public Connection getConn() {
  return conn;
 }
}

上述數(shù)據(jù)庫操作類使用JDBC連接數(shù)據(jù)庫,并封裝了連接數(shù)據(jù)庫、查詢、修改、關(guān)閉資源等方法。

3.2開發(fā)JavaBean業(yè)務(wù)邏輯組件
UserBean.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
49
50
51
52
53
54
55
56
package com.baosight.bean;
 
import com.baosight.util.GenerateUUID;
 
/**
 * <p>Title:UserBean </p>
 * <p>Description:TODO </p>
 * <p>Company: </p>
 * @author yuan
 * @date 2016-5-22 下午1:05:00*/
public class UserBean {
 //登錄驗證
 public boolean valid(String username,String password){
  boolean isValid = false;
  DBAcess db = new DBAcess();
  if(db.createConn()){
   String sql = "select * from p_user where username='"+username+"' and password='"+password+"'";
   db.query(sql);
   if(db.next()){
    isValid = true;
   }
   db.closeRs();
   db.closeStm();
   db.closeConn();
  }
  return isValid;
 }
 //注冊驗證
 public boolean isExist(String username){
  boolean isValid = false;
  DBAcess db = new DBAcess();
  if(db.createConn()){
   String sql = "select * from p_user where username='"+username+"'";
   db.query(sql);
   if(db.next()){
    isValid = true;
   }
   db.closeRs();
   db.closeStm();
   db.closeConn();
  }
  return isValid;
 }
 //注冊用戶
 public boolean add(String username,String password,String email){
  boolean isValid = false;
  DBAcess db = new DBAcess();
  if(db.createConn()){
   String sql = "insert into p_user(id,username,password,email) values('"+GenerateUUID.next()+"','"+username+"','"+password+"','"+email+"')";
   isValid = db.update(sql);
   db.closeStm();
   db.closeConn();
  }
  return isValid;
 }
}

上述業(yè)務(wù)邏輯javabean,定義了登錄驗證、注冊驗證和新增用戶等方法

3.3關(guān)于生成唯一ID
上面在新增用戶時需要插入ID,本例使用UUID來生成唯一ID

GenerateUUID.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
package com.baosight.util;
 
import java.util.Date;
 
/**
 * <p>Title:GenerateUUID </p>
 * <p>Description:TODO </p>
 * <p>Company: </p>
 * @author yuan
 * @date 2016-5-22 下午1:31:46*/
public class GenerateUUID {
  private static Date date = new Date();
// private static StringBuilder buf = new StringBuilder();
  private static int seq = 0;
  private static final int ROTATION = 99999;
  public static synchronized long next(){
  if (seq > ROTATION) seq = 0;
//  buf.delete(0, buf.length());
  date.setTime(System.currentTimeMillis());
  String str = String.format("%1$tY%1$tm%1$td%1$tk%1$tM%1$tS%2$05d", date, seq++);
  return Long.parseLong(str);
 }
  public static void main(String[] args) {
   for(int i=0;i<100;i++){
    System.out.println(next());
   }
 }
}

4.頁面編寫
4.1登錄頁面
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
45
46
47
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
 <base href="<%=basePath%>">
  
 <title>登錄頁面</title>
  
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0"
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->
 </head>
 
 <body>
 <form action="login_action.jsp" method="post">
  <table>
   <tr>
    <td colspan="2">登錄窗口</td>
   </tr>
   <tr>
    <td>用戶名:</td>
    <td><input type="text" name="username" />
    </td>
   </tr>
   <tr>
    <td>密碼:</td>
    <td><input type="text" name="password" />
    </td>
   </tr>
   <tr>
    <td colspan="2"><input type="submit" value="登錄" /> <a href="register.jsp">注冊</a>
    </td>
   </tr>
  </table>
 </form>
</body>
</html>

頁面效果

Java組件javabean用戶登錄實例詳解

4.2登錄業(yè)務(wù)邏輯處理頁面
login_action.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
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="java.sql.*" %>
<%@ page import="com.baosight.bean.*" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
 
 <%
 String username = request.getParameter("username");
 String password = request.getParameter("password");
 if(username==null||"".equals(username.trim())||password==null||"".equals(password.trim())){
  //out.write("用戶名或密碼不能為空!");
  System.out.println("用戶名或密碼不能為空!");
  response.sendRedirect("login.jsp");
  return;
  //request.getRequestDispatcher("login.jsp").forward(request, response);
 }
 UserBean userBean = new UserBean();
 boolean isValid = userBean.valid(username,password);
 if(isValid){
  System.out.println("登錄成功!");
  session.setAttribute("username", username);
  response.sendRedirect("welcome.jsp");
  return;
 }else{
  System.out.println("用戶名或密碼錯誤,登錄失敗!");
  response.sendRedirect("login.jsp");
  return;
 }
 %>

上面的JSP調(diào)用了Javabean進行業(yè)務(wù)處理
當(dāng)用戶名或密碼為空時返回登錄頁面login.jsp

當(dāng)?shù)卿洺晒髮⒂脩粜畔⒈4娴絪ession,跳轉(zhuǎn)到歡迎頁面welcome.jsp

當(dāng)?shù)卿浭r返回登錄頁面login.jsp

4.3登錄成功歡迎頁面
welcome.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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
 <base href="<%=basePath%>">
  
 <title>My JSP 'welcom.jsp' starting page</title>
  
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0"
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->
 </head>
 
 <body>
 <table>
  <tr>
   <td><img src="images/logo4.png" />
   </td>
   <td><img src="images/logo2.png" height="90" />
   </td>
  </tr>
  <tr>
   <td colspan="2"><hr />
   </td>
  </tr>
  <tr>
   <td>
    <table>
     <tr>
      <td><a>Main</a>
      </td>
     </tr>
     <tr>
      <td><a>Menu1</a>
      </td>
     </tr>
     <tr>
      <td><a>Menu2</a>
      </td>
     </tr>
     <tr>
      <td><a>Menu3</a>
      </td>
     </tr>
     <tr>
      <td><a>Menu4</a>
      </td>
     </tr>
     <tr>
      <td><a>Menu5</a>
      </td>
     </tr>
     <tr>
      <td><a>Menu6</a>
      </td>
     </tr>
     <tr>
      <td><a>Menu7</a>
      </td>
     </tr>
     <tr>
      <td><a>Menu8</a>
      </td>
     </tr>
    </table></td>
   <td>
    <form action="loginout.jsp" method="post">
     <table>
      <tr>
       <td colspan="2">登錄成功!</td>
      </tr>
      <tr>
       <td>歡迎你,</td>
       <td>${username }</td>
      </tr>
      <tr>
       <td colspan="2"><input type="submit" value="退出" /></td>
      </tr>
     </table>
    </form></td>
  </tr>
 </table>
</body>
</html>

頁面效果

Java組件javabean用戶登錄實例詳解

4.4退出登錄業(yè)務(wù)處理頁面
loginout.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
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
 <base href="<%=basePath%>">
  
 <title>My JSP 'loginout.jsp' starting page</title>
  
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0"
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->
 
 </head>
 
 <body>
 <%
 session.removeAttribute("username");
 response.sendRedirect("login.jsp");
 %>
 </body>
</html>

從session中移除用戶信息,跳轉(zhuǎn)到登錄頁面login.jsp

4.5用戶注冊頁面
register.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
45
46
47
48
49
50
51
52
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
 <base href="<%=basePath%>">
  
 <title>注冊頁面</title>
  
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0"
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->
 </head>
 
 <body>
 <form action="register_action.jsp" method="post">
  <table>
   <tr>
    <td colspan="2">注冊窗口</td>
   </tr>
   <tr>
    <td>用戶名:</td>
    <td><input type="text" name="username" /></td>
   </tr>
   <tr>
    <td>密碼:</td>
    <td><input type="text" name="password1" /></td>
   </tr>
   <tr>
    <td>確認(rèn)密碼:</td>
    <td><input type="text" name="password2" /></td>
   </tr>
   <tr>
    <td>email:</td>
    <td><input type="text" name="email" /></td>
   </tr>
   <tr>
    <td colspan="2"><input type="submit" value="注冊" /> <a href="login.jsp">返回</a></td>
   </tr>
  </table>
 </form>
</body>
</html>

運行效果

Java組件javabean用戶登錄實例詳解

4.6注冊業(yè)務(wù)處理頁面

?
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
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<%@ page import="com.baosight.bean.*" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
 
 
 <%
 String username = request.getParameter("username");
 String password1 = request.getParameter("password1");
 String password2 = request.getParameter("password2");
 String email = request.getParameter("email");
 if(username==null||"".equals(username.trim())||password1==null||"".equals(password1.trim())||password2==null||"".equals(password2.trim())||!password1.equals(password2)){
  //out.write("用戶名或密碼不能為空!");
  System.out.println("用戶名或密碼不能為空!");
  response.sendRedirect("register.jsp");
  return;
  //request.getRequestDispatcher("login.jsp").forward(request, response);
 }
 UserBean userBean = new UserBean();
 boolean isExit = userBean.isExist(username);
 if(!isExit){
  userBean.add(username, password1, email);
  System.out.println("注冊成功,請登錄!");
  response.sendRedirect("login.jsp");
  return;
 }else{
  System.out.println("用戶名已存在!");
  response.sendRedirect("register.jsp");
  return;
 }
 %>

上面的JSP調(diào)用了Javabean進行業(yè)務(wù)處理

當(dāng)用戶名或密碼為空時返回注冊頁面register.jsp

當(dāng)注冊用戶名在數(shù)據(jù)庫不存在時,新增用戶

新增成功后跳轉(zhuǎn)到登錄頁面login.jsp

當(dāng)注冊用戶名在數(shù)據(jù)庫存在時,返回注冊頁面register.jsp

5.總結(jié)

本例使用javabean對數(shù)據(jù)庫操作和業(yè)務(wù)邏輯處理進行了封裝。

以上即為使用javabean實現(xiàn)用戶登錄的簡單介紹,還需要不斷完善,希望大家一起學(xué)習(xí)進步!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产情侣一区二区三区 | 国产中文久久 | 国精产品99永久一区一区 | 精品一区二区三区久久 | 看av网址 | 免费在线黄色网址 | 久久久久无码国产精品一区 | 国产精品久久久久久久午夜片 | 国产精品视频一 | 国产精品福利视频 | 高清一区二区三区日本久 | 国产精品1 | 青青国产在线 | 一区亚洲 | 久久九九国产 | 高清免费av | 亚洲热妇 | 91精品久久久久久久久中文字幕 | 欧美一区二区精品 | 黄片毛片毛片毛片 | 亚洲精品乱码久久久久久按摩观 | 久久精品中文 | 91色在线视频 | 亚洲青草 | 91丁香婷婷综合久久欧美 | 99免费视频| 私人毛片免费高清视频 | 日本免费黄色 | 国产高清精品在线 | 国产欧美久久久久久 | 久久国产精品久久喷水 | 九九综合九九 | 求av网址| 国产伦精品一区二区三区精品视频 | 欧美激情网址 | 久久久一区二区 | h小视频在线 | 欧美日韩国产一区二区在线观看 | 国产精品www| 九九热在线视频观看这里只有精品 | 国产精品网站在线观看 |