jdbc實(shí)現(xiàn)用戶注冊(cè)功能代碼示例
本文研究的主要問題是jdbc實(shí)現(xiàn)用戶注冊(cè)功能,通過具體實(shí)例代碼學(xué)習(xí)JSP+MySQL數(shù)據(jù)庫(kù)連接、訪問方式以及增刪查改操作,具體如下。
客戶端register.jsp界面如下

- “檢測(cè)”按鈕:檢測(cè)用戶名是否存在。
- “注冊(cè)”功能:只有全部通過驗(yàn)證后才能提交到insert.jsp,insert.jsp實(shí)現(xiàn)將帳號(hào)和密碼存入user表。
//register.jsp
<head>
<link rel="stylesheet" type="text/css" href="style.css" rel="external nofollow" >
<script src="scripts/jquery-1.5.1.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$(":input.required").each(function(){ //必填加紅星標(biāo)識(shí).
var $required = $("<strong class='high'> *</strong>"); //創(chuàng)建元素
$(this).parent().append($required); //在div后面添加一個(gè)*
});
$(':input').blur(function(){ //為所有的input添加失去焦點(diǎn)事件
var $parent = $(this).parent();
$parent.find(".formtips").remove(); //刪除以前的提示元素
if( $(this).is('#username') ){ // is方法判斷是否是用戶名
if( this.value=="" || this.value.length < 6||this.value.length > 18 ){
var errorMsg = '請(qǐng)輸入6-18位的用戶名.';
$parent.append('<span class="formtips onError">'+errorMsg+'</span>');
}
else{
var okMsg = '輸入正確.';
$parent.append('<span class="formtips onSuccess">'+okMsg+'</span>');
}
}
if( $(this).is('#password') ){ //密碼是否符合格式
if( this.value=="" || ( this.value!=""
&& !(/^\d{1,6}$/).test(this.value) ) ){ //正則式驗(yàn)證
var errorMsg = '密碼必須是1-6位數(shù)字.';
$parent.append('<span class="formtips onError">'+errorMsg+'</span>');
}
else{
var okMsg = '輸入正確.';
$parent.append('<span class="formtips onSuccess">'+okMsg+'</span>');
}
}
if( $(this).is('#re_password') ){ //獲取id為re_password的節(jié)點(diǎn),監(jiān)聽當(dāng)光標(biāo)離開輸入框時(shí),運(yùn)行function方法
var password = $("#password").val(); //獲取id為password的輸入框中的內(nèi)容
var repassword = $("#re_password").val();
if(password!=repassword)
{ //判斷兩個(gè)變量是否相等
var errorMsg = '兩次密碼輸入不一致.';
$parent.append('<span class="formtips onError">'+errorMsg+'</span>');
}
else{
var okMsg = '通過驗(yàn)證.';
$parent.append('<span class="formtips onSuccess">'+okMsg+'</span>');
}
}
}); //end blur
$(':input').keyup(function(){ //本例input元素keyup事件功能代碼與blur相同
$(this).triggerHandler("blur"); //觸發(fā)blur事件
});
$(':input').focus(function(){ //本例input元素focus事件功能代碼與blur相同
$(this).triggerHandler("blur"); //觸發(fā)blur事件
});
$('#send').click(function(){ //注冊(cè)按鈕
$(":input.required").trigger('blur');
var numError = $('form .onError').length; //class="onError"個(gè)數(shù)
if(numError>0){ //還有錯(cuò)
return false;
}
});
$('#res').click(function(){ //重置按鈕
$(".formtips").remove();
});
});
</script>
</head>
<body>
<form method="post" action="insert.jsp">
<div class="int">
<label>用戶名:</label> <input type="text" name="username" id="username" class="required" />
</div>
<div class="int">
<label>密碼:</label> <input type="text" name="password" id="password" class="required" />
</div>
<div class="int">
<label>再次輸入密碼:</label> <input type="text" id="re_password" class="required" />
</div>
<div class="sub">
<input type="submit" value="注冊(cè)" id="send" /> <input type="reset" value="重輸"
id="res" />
</div>
</form>
</body>


//insert.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <%@page import="javaBean.userbean;"%> <html> <body> <jsp:useBean id="user" class="javaBean.userbean" scope="session" /> <jsp:setProperty name="user" property="*" /> 用戶名: <jsp:getProperty name="user" property="username"/> <br><br> 密碼: <jsp:getProperty name="user" property="password"/> <br><br> <% out.println(user.insert()); %> </body> </html>
userbean.java
package javaBean;
import java.sql.*;
public class userbean{
private String username;
private String password;
public void setUsername(String username) {
this.username=username;
}
public void setPassword(String password) {
this.password=password;
}
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
public String insert(){
try{
String url ="jdbc:mysql://localhost:3306/mysql";
//數(shù)據(jù)庫(kù)連接字符串
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
//加載驅(qū)動(dòng)程序
Connection conn= DriverManager.getConnection(url,"root","dba");
//建立連接
String sql="select * from login_user where username=?";
PreparedStatement pStmt = conn.prepareStatement(sql);
pStmt.setString(1,username);
ResultSet rs=pStmt.executeQuery();
if(rs.next())
{
return "該用戶名已存在!";
} else
{
sql="insert into login_user values(?,?)";
pStmt = conn.prepareStatement(sql);
pStmt.setString(1,username);
pStmt.setString(2,password);
pStmt.executeUpdate();
return "注冊(cè)成功!";
}
}
catch(Exception e){
return "注冊(cè)失??!";
}
}
}




總結(jié)
以上就是本文關(guān)于jdbc實(shí)現(xiàn)用戶注冊(cè)功能代碼示例的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
相關(guān)文章
maven pom中內(nèi)置變量及引用的實(shí)現(xiàn)
maven其實(shí)有很多內(nèi)置變量供開發(fā)著在開發(fā)中使用,本文主要介紹了maven pom中內(nèi)置變量及引用的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01
Java網(wǎng)絡(luò)編程教程之設(shè)置請(qǐng)求超時(shí)的方法
這篇文章主要給大家介紹了關(guān)于Java網(wǎng)絡(luò)編程教程之設(shè)置請(qǐng)求超時(shí)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12
Java基礎(chǔ)學(xué)習(xí)之關(guān)鍵字和變量數(shù)據(jù)類型的那些事
變量就是系統(tǒng)為程序分配的一塊內(nèi)存單元,用來存儲(chǔ)各種類型的數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于Java基礎(chǔ)學(xué)習(xí)之關(guān)鍵字和變量數(shù)據(jù)類型的那些事,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07
java使用java.io.File類和java.nio.file.Path類對(duì)文件重命名
這篇文章主要給大家介紹了關(guān)于java使用java.io.File類和java.nio.file.Path類對(duì)文件重命名的相關(guān)資料,本文僅為日常操作記錄,方便后期使用查找本地電腦文件太多了,又不想一個(gè)一個(gè)重命名,改名字什么的很麻煩,需要的朋友可以參考下2024-02-02
Java實(shí)現(xiàn)自定義中文排序的方法機(jī)注意事項(xiàng)
在Java中,中文排序通常涉及到使用Collator類來處理字符串的比較,確保根據(jù)漢字的拼音順序進(jìn)行排序,本文給大家介紹了Java實(shí)現(xiàn)自定義中文排序的方法機(jī)注意事項(xiàng),并有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下2024-10-10
Java?ServletContext與ServletConfig接口使用教程
ServletConfig對(duì)象,叫Servlet配置對(duì)象。主要用于加載配置文件的初始化參數(shù)。我們知道一個(gè)Web應(yīng)用里面可以有多個(gè)servlet,如果現(xiàn)在有一份數(shù)據(jù)需要傳給所有的servlet使用,那么我們就可以使用ServletContext對(duì)象了2022-09-09
Spring中的兩種代理JDK和CGLIB的區(qū)別淺談
本篇文章中主要介紹了Spring中的兩種代理JDK和CGLIB的區(qū)別淺談,詳解的介紹了JDK和CGLIB的原理和方法,有需要的朋友可以了解一下2017-04-04

