【发布时间】:2020-12-10 01:03:10
【问题描述】:
我正在尝试在不提交表单的情况下检查用户名是否存在于数据库中。但我没有成功。 下面是我的代码。
controller1.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="java.io.*,java.util.*,java.sql.*"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*"%>
<%@ page import="java.util.regex.*"%>
<%-- <%@ page import="java.net.URLEncoder" session="false" %> --%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Controller</title>
</head>
<body>
<div class="container">
<%
String Username = request.getParameter("Username");
session.setAttribute( "theName", Username );
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/abc?autoReconnect=true&useSSL=false", "root", "");
try{
Statement st = con.createStatement();
ResultSet rs;
rs = st.executeQuery("select * from signupform where Username='" + Username + "'");
if(rs.next()){
String usermessage = "Username already exists";
request.getSession().setAttribute("usermessage", usermessage);
response.sendRedirect("Signupform.jsp");
}
else{
PreparedStatement ps = con. prepareStatement("insert into signupform(Username) values(?)");
ps.setString(1, Username);
if(Username.isEmpty())
{
String message = "Please fill all the fields";
request.getSession().setAttribute("message", message);
/* response.sendRedirect("Signupform.jsp?message="+ URLEncoder.encode(message, "UTF-8")); */
response.sendRedirect("Signupform.jsp");
}
else{
ps.executeUpdate();
response.sendRedirect("Welcome.jsp");
}
}
}
catch (Exception e) {
out.println(e);
}
%>
</div>
</body>
</html>
用于提供输入的表单显示在代码 Signupform.jsp 中。当用户填写相应的字段时,它应该立即在同一页面上报告用户是否存在。
Signupform.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Register</title>
<link Rel=stylesheet type="text/css" href="main.css">
</head>
<body>
<div class ="container">
<div>
<form action="controller1.jsp" method = "POST">
Username <input type = "text" name = "Username" value="">
<br>
<input type="submit" value="Submit"/>
<input type="reset" value="Reset"/>
<br>
<p>${usermessage}</p>
<c:remove var="usermessage" scope="session"/>
</form>
</div>
</div>
</body>
</html>
【问题讨论】:
-
你不能使用 AJAX 吗?
-
我试过了,但它不起作用。如果纯 JSP 是可能的,我会很高兴。
-
你试过什么?你可以在你的问题中添加它吗?
标签: java mysql validation jsp