通过servlet实现登录和注册功能,代码如下
login.jsp
<body>
<div id="login-box">
<h1>用户登录</h1>
<div class="form">
<form method="post" action="servlet/login">
<div class="item">
<i class="fa fa-github-alt" style="font-size:24px"></i>
<input type="text" required="required" placeholder="Username" name="id" ></input>
</div>
<div class="item">
<i class="fa fa-search" style="font-size:24px"></i>
<h3>密码:</h3> <input type="password" required="required" placeholder="Password" name="name" ></input>
</div>
</div>
<button type="submit">登录</button>
</form>
<hr>
<a href="register.jsp">免费注册</a>
</div>
</body>
login.java(servlet)
package service;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
public class login extends HttpServlet {
public static final String url ="jdbc:mysql://localhost:3306/TestDao";
Connection conn = null ;
Statement stmt = null ;
ResultSet rs = null ;
boolean flag = false ;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String userid = request.getParameter("id"); // 接收表单参数
String password = request.getParameter("name") ;// 接收表单参数
System.out.println("userid="+userid+"password="+password);
boolean flag = false;
try{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url,"root","root");
String sql = "SELECT * FROM student";
stmt = conn.createStatement() ;
rs = stmt.executeQuery(sql) ;
while(rs.next()){
// 如果有内容,则此处执行,表示查询出来,合法用户
System.out.println("userid="+rs.getString("stuid")+"password="+rs.getString("password"));
String ziduan1=rs.getString("stuid");
String ziduan2=rs.getString("password");
//System.out.println(ziduan1);
if(userid.equals(ziduan1)&& password.equals(ziduan2))
{ flag = true; }
}
}
catch(Exception e){}
finally{
try{
rs.close();
stmt.close();
conn.close();
}catch(Exception e){}
}
if(flag==true){ // 登陆成功,应该跳转到success.jsp
response.sendRedirect("/myhope/success.jsp");
}else{// 登陆失败,跳转到failure.jsp
response.sendRedirect("/myhope/register.jsp");
}
}
}
register.jsp
<body>
<div id="login-box">
<h1>用户注册</h1>
<div class="form">
<form method="post" action="servlet/register">
<div class="item">
<i class="fa fa-github-alt" style="font-size:24px"></i>
<input type="text" required="required" placeholder="用户名" name="userid"></input>
</div>
<div class="item">
<i class="fa fa-search" style="font-size:24px"></i>
<input type="text" required="required" placeholder="名字" name="username"></input>
</div>
<div class="item">
<i class="fa fa-search" style="font-size:24px"></i>
<input type="password" required="required" placeholder="密码" name="password"></input>
</div>
</div>
<button type="submit">注册</button>
</form>
</div>
</body>
register.java(Servlet)
package service;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.Statement;
import java.sql.ResultSet;
public class register extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out
.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the GET method");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String userid = request.getParameter("userid") ;// 接收表单参数
String username = request.getParameter("username");//接收表单参数
String password = request.getParameter("password");//接收表单参数
System.out.println("userid="+userid+"username="+username+"password="+password);
PreparedStatement preparedStatement = null;
Connection connection=null;
boolean flag=false;
try{
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/TestDao";
connection = DriverManager.getConnection(url,"root","root");
String sql="insert into student(stuid,username,password) values(?,?,?)";
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1,userid);
preparedStatement.setString(2,username);
preparedStatement.setString(3,password);
preparedStatement.executeUpdate();
flag=true;
}
catch(Exception e){}
finally{
try{
preparedStatement.close();
connection.close();
}catch(Exception e){} // 连接一关闭,所有的操作都将关闭
}
if(flag==true){ // 登陆成功,应该跳转到success.jsp
response.sendRedirect("/myhope/login.jsp");
}
}
}