JSP(全稱JavaServer Pages)是由Sun Microsystems公司主導創建的一種動態網頁技術標準。JSP部署於網絡服務器上,可以響應客戶端發送的請求,並根據請求內容動態地生成HTML、XML或其他格式文檔的Web網頁,然後返回給請求者。JSP技術以Java語言作爲腳本語言,爲用戶的HTTP請求提供服務,並能與服務器上的其它Java程序共同處理複雜的業務需求。JSP將Java代碼和特定變動內容嵌入到靜態的頁面中,實現以靜態頁面爲模板,動態生成其中的部分內容。其根本是一個簡化的Servlet設計。它實現了Html語法中的java擴展(以 <%, %>形式)。
(1)瀏覽器通過提交輸入的數據給JSP,JSP負責接收提交來的數據並進行校驗,看這些數據是否存在在數據庫當中。JSP是Java服務端的頁面,所以它是動態的,它是需要經過JDK編譯後把內容發給客戶端去顯示,Java文件編譯後會產生一個class文件,最終執行的就是這個class文件。
(2)前面我們已經通過tomcat服務器在瀏覽器中運行過這個登錄界面,登錄的用戶名和密碼只要符合填寫規則,都會通過檢驗,這個校驗指的是填寫符合規則校驗,現在我們要做的就是如果我們的用戶有註冊過,後臺數據庫會存有註冊過的用戶名和密碼,現在我們要校驗的是填寫的用戶名和密碼是否在我們的數據庫當中,言下之意就是看是否有註冊過,如果有,就會登錄成功,說明註冊過,否則,就會登錄失敗,也就是未註冊。
1.整個過程需要的所有文件(這裏要說明一下的是jar驅動包,放在WEB-INF文件夾下的一個子文件中,關於jar驅動包的下載我有在之前的博客中講過)
2.這是JSP文件代碼(就是我這裏面的input.jsp)
<%@ page language="java" contentType="text/html;charset=GBK" pageEncoding="GBK" %>
<%@ page import="java.sql.*"%>
<html>
<head>
<title> www.mldnjava.cn,MLDN高端Java培訓 </title>
</head>
<body>
<%
request.setCharacterEncoding("GBK");
String str = request.getParameter("username"); // 接收表單輸入的內容
String str1 = request.getParameter("password"); // 接收表單輸入的內容
try {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/hsh?useSSL=false&serverTimezone=UTC", "root", "199735");
PreparedStatement ps = conn.prepareStatement("select * from hsh where username='"+str+"' and password='"+str1+"'");
ResultSet rs = ps.executeQuery();
if(rs.next()){
out.println("用戶名:"+rs.getString(2)+"登錄成功!!");
}else{
out.println("用戶名登錄失敗!!");
}
rs.close();
ps.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
%>
</body>
</html>
jsp代碼流程詳解:
3.這是一個網頁登錄HTML文件(就是我這裏面的index.html)
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>歡迎登錄後臺管理系統</title>
<link href="css/login.css" rel="stylesheet" type="text/css" />
<script src="js/jquery-1.9.1.js"> </script>
<script language="JavaScript">
$(this).ready(function(){
$(".loginbtn").click(function(){
var ur=$("#username").val();
if(ur=="")
{
$("#msg").html("用戶名不能爲空!");
return;
}
var pwd = $("#password").val();
if(pwd=="")
{
$("#msg").html("密碼不能爲空!");
return;
}
var pattern_name=/^[a-zA-Z\d]\w{5,9}$/;
//以字母或數字開頭,包括字母數字下劃線,長度爲6-10位
var pattern_pwd=/^[a-zA-Z\d_]{6,10}$/;
//只能包括字母數字或下劃線,長度爲6-10位
if(!pattern_name.test(ur)){
$("#msg").html("*必須以字母或數字開頭,包括字母、數字或下劃線,長度爲6~10位!");
return;
}
else{
$("#msg").html("*用戶名校驗通過!");
}
if(!pattern_pwd.test(pwd)){
$("#msg").html("*只能包括字母、數字或下劃線,長度6~10位!");
return;
}
else{
$("#msg").html("*密碼校驗通過!");
}
//alert("校驗通過,可以提交了!");
$("#form1").submit();
});
});
</script>
</head>
<body style="background-color:#1c77ac; background-image:url(images/light.png); background-repeat:no-repeat; background-position:center top;">
<div class="logintop"> <span>您好,歡迎登錄後臺管理界面平臺</span>
<ul>
<li><a href="#">回首頁</a></li>
<li><a href="#">幫助</a></li>
<li><a href="#">關於</a></li>
</ul>
</div>
<div class="loginbody"> <span class="systemlogo"></span>
<form id="form1" action="input.jsp" method="post">
<div class="loginbox">
<ul>
<li>
<input id="username" name="username" type="text" class="loginuser" value="" />
</li>
<li>
<input id="password" name="password" type="password" class="loginpwd" value="" />
</li>
<li>
<input type="button" class="loginbtn" value="登錄" />
<label>
<input name="" type="checkbox" value="" checked="checked" />
記住密碼</label>
<label><a href="#" >忘記密碼?</a></label>
</li>
</ul>
</div>
<div id="msg" align="center" style="color:red;font-size: 20px"></div>
</form>
</div>
<div class="loginbm">Copyright 2015-2020 Q- Walking Fashion E&S 漫步時尚廣場(QST教育)版權所有</div>
</body>
</html>
4.這是我在Navicat for mysql中隨便寫的一組用戶名和密碼數據
5.啓動Tomcat
6.瀏覽器鍵入:http://local:8080/test1,由於默認訪問的是index.html,所以後面就可以不跟index.html
7.進行校驗輸出,由於我輸入的用戶名:aaa111,密碼:aaa111在我的數據庫中有,所以跳轉顯示用戶名aaa111登錄成功!!如果我輸入的用戶名還是aaa111,但是密碼輸入:nkj159,就會顯示用戶名登錄失敗!!
8.這樣我們就完成了通過JSP網頁連接MySQL數據庫並進行輸入校驗。