从网页上获取的用户信息连接数据库进行校验,首先要有网页进行提交表单,通过servlet来读取其中的信息,再拿来与数据库中的数据进行比较。
我们来看一下login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="LoginServlet3" method="post">
user:<input type="text" name="username"/>
password:<input type="password" name="password"/>
<input type="submit" value="submit"/>
</form>
</body>
</html>
我们再来看一下servlet,我直接将数据库的连接写在了servlet立里面这样写其实是不规范的。
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;
/**
* Created by yuehailin on 2017/7/15.
*/
@WebServlet(name = "LoginServlet3")
public class LoginServlet3 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username =request.getParameter("username");
String password =request.getParameter("password");
PrintWriter out =response.getWriter();
Connection connection=null;
PreparedStatement statement;
statement = null;
ResultSet resultSet =null;
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.print("ok");
String sql ="select count(id) from user where username=?"+"AND password=?";
connection= DriverManager.getConnection("jdbc:mysql://localhost:3306/bbs","root","123");
statement =connection.prepareStatement(sql);
statement.setString(1,username);
statement.setString(2,password);
resultSet =statement.executeQuery();
if(resultSet.next()){
int count=resultSet.getInt(1);
if(count>0)
{
out.println("hello"+username);
}
else{
out.println("sorry"+username);
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if(resultSet!=null)
{
resultSet.close();
}
}catch (SQLException e){
e.printStackTrace();
}
try {
if(statement!=null)
{
statement.close();
}
}catch (SQLException e){
e.printStackTrace();
}
try {
if(connection!=null)
{
connection.close();
}
}catch (SQLException e){
e.printStackTrace();
}
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
}
}
在写javaweb项目的时候大家要注意在xml中进行配置,或者通过注入的方式,但是注入的方式仅限于3.0
之后。
希望对大家的学习有所帮助。