欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

jsp mysql 驗證碼登錄注冊

錢衛國2年前14瀏覽0評論

在web開發中,用戶登錄和注冊功能是必不可少的。為了提高安全性,常常需要使用驗證碼功能來防止惡意攻擊。JSP和MySQL結合使用可以實現驗證碼登錄注冊功能。

首先在MySQL中創建一個用戶表,包括用戶名和密碼兩個字段。使用JSP開發頁面時,需要用到JSTL,可以通過以下方式引入:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

驗證碼功能可以通過生成隨機數和驗證碼圖片實現。具體代碼如下:

<%!
public String getCode() {
// 隨機生成4位驗證碼
String code = "";
for (int i = 0; i< 4; i++) {
int r = (int) (Math.random() * 10);
code += r;
}
return code;
}
%>
<%!
public static void outputImage(int width, int height, OutputStream os, String code) throws IOException {
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D g = image.createGraphics();
g.setColor(Color.WHITE);
g.fillRect(0, 0, width, height);
g.setColor(Color.BLACK);
g.setFont(new Font("Arial", Font.PLAIN, 18));
g.drawString(code, 11, 20);
g.dispose();
ImageIO.write(image, "JPEG", os);
}
%>

在頁面中引入上述代碼可生成隨機驗證碼圖片:

<img src="verify.jsp" alt="" />

登錄和注冊頁面中需增加驗證碼輸入框并驗證。登錄驗證的代碼如下:

<%!
public boolean checkCode(HttpServletRequest request) {
String verifyCode = request.getParameter("verifyCode");
String code = (String) request.getSession().getAttribute("code");
if (code.equalsIgnoreCase(verifyCode)) {
return true;
} else {
return false;
}
}
%>
<c:if test="${not empty param.login}"><c:if test="${checkCode(request)}"><c:set var="username" value="${param.username}" scope="session" />
<c:set var="password" value="${param.password}" scope="session" />
<c:redirect url="loginResult.jsp" />
</c:if>
<c:if test="${not checkCode(request)}">
<c:set var="message" value="驗證碼錯誤" />
</c:if>
</c:if>

注冊驗證的代碼類似,可以參考登錄驗證代碼編寫。在驗證通過后,可以將用戶名和密碼保存在session中,實現登錄狀態的跟蹤。登錄結果可以通過JDBC查詢MySQL數據庫得到,以下是對應的代碼:

<%@ page import="java.sql.*" %>
<%
String username = (String) session.getAttribute("username");
String password = (String) session.getAttribute("password");
String message = "";
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/user";
String user = "root";
String pass = "password";
Connection con = DriverManager.getConnection(url, user, pass);
Statement stmt = con.createStatement();
String sql = "SELECT * FROM user WHERE username='" + username + "' AND password='" + password + "'";
ResultSet rs = stmt.executeQuery(sql);
if (rs.next()) {
message = "登錄成功";
} else {
message = "用戶名或密碼錯誤";
}
con.close();
} catch (Exception e) {
message = "登錄失敗";
}
%>
<p>${message}</p>

以上就是JSP和MySQL結合使用實現驗證碼登錄注冊功能的全部內容。