首先創建javaweb項目,可以參照以下:
https://blog.csdn.net/u012532559/article/details/51013400
附上項目結構:

1.重寫登錄頁面index.jsp的內容
<%--
Created by IntelliJ IDEA.
User: LXJ'PC
Date: 2018/5/12
Time: 15:49
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>登錄</title>
</head>
<body>
<div id="container" style="width: 300px;margin: 0px auto">
<div id="box">
<form action="LoginServlet" methods="post">
<div class="main">
<div>
<label>用戶名:</label>
<input name="userName" value="">
</div>
<div>
<label>密碼:</label>
<input type="passWord" name="passWord" value="">
</div>
<div>
<input type="submit" value="登錄">
</div>
</div>
</form>
</div>
</div>
</body>
</html>
2.新建類DBUtil
package org.user.util;
import java.sql.*;
public class DBUtil {
//mysql驅動包名
private static final String DRIVER_NAME = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
//數據庫連接地址
private static final String URL = "jdbc:sqlserver://localhost:1433;integratedSecurity=true;DatabaseName=JavaWeb";
//用戶名
private static final String USER_NAME = ".";
//密碼
private static final String PASSWORD = "";
public static Connection getConnection(){
try {
//加載mysql的驅動類
Class.forName(DRIVER_NAME);
//獲取數據庫連接
return DriverManager.getConnection(URL);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public static void closeConn(Connection conn,Statement stm , ResultSet rs ){
if(stm!=null){
try {
stm.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(rs!=null){
try{
rs.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}
public static void main(String[] args){
System.out.println(getConnection());
}
}
3.新建實體類User
package org.user.entity;
public class User {
private String userName;
private String passWord;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
}
4.新建類UserDao
package org.user.dao;
import java.sql.*;
import org.user.entity.User;
import org.user.util.DBUtil;
public class UserDao {
//根據用戶名查找用戶
public User findUserByName(String userName){
//編寫sql語句
String sql="select * from Login where userName=?";
//獲得連接
Connection conn= DBUtil.getConnection();
//有返回的結果
ResultSet rs= null;
//實例化一個User對象
User user = new User();
try {
//用來發送sql語句的
PreparedStatement ps = conn.prepareStatement(sql);
//設置要傳入的參數,這里是userN
ps.setString(1, userName);
//執行sql語句
rs=ps.executeQuery();
//如果能找到結果
if(rs.next()){
//則把找到的結果一一set進User對象中
user.setUserName(rs.getString(1));
user.setPassWord(rs.getString(2));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally {//關閉連接
DBUtil.closeConn(conn, null, rs);
}
//最后要把這個user返回出去
return user;
}
public static void main(String[] args) {
UserDao dao = new UserDao();
User i = dao.findUserByName("lxj");
System.out.println(i.getPassWord());
}
}
5.新建服務類LoginService
package org.user.service;
import org.user.dao.UserDao;
import org.user.entity.User;
public class LoginService {
public boolean checkUser(String userName, String passWord) {
UserDao dao = new UserDao();
User user = dao.findUserByName(userName);
System.out.println(user);
return user != null && passWord.equals(user.getPassWord()) ? true : false;
}
}
6.新建servlet類LoginServlet
package org.user.servlet;
import java.io.IOException;
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 org.user.dao.UserDao;
import org.user.entity.User;
import org.user.service.LoginService;
@WebServlet(name = "LoginServlet")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
// 在本電腦的D:\java-jdk8\bin路徑下放入了sqljdbc_auth.dll文件;解決了登錄不成功問題
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//設置編碼
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
//獲取從頁面中提交過來的數據
String userName = request.getParameter("userName");
String userPass = request.getParameter("passWord");
LoginService service = new LoginService();
//調用service方法 把用戶名 密碼傳入給service
boolean flag = service.checkUser(userName, userPass);
String msg = flag?"success":"error";
request.setAttribute("msg", msg);
if(msg=="success"){
request.getRequestDispatcher("login_success.jsp").forward(request, response);
}
else{
request.getRequestDispatcher("login_failure.jsp").forward(request, response);
}
}
}
7.最后在index.jsp同級目錄下新建login_success.jsp和login_failure.jsp文件用於登錄成功或失敗跳轉頁面提示用的。
提示:如果出現警告: Failed to load the sqljdbc_auth.dll cause :- no sqljdbc_auth in java.library.path,可以把sqljdbc_auth.dll文件在放入你點jdk目錄下的bin文件夾里,例如我自己的電腦的D:\java-jdk8\bin路徑下放入了sqljdbc_auth.dll文件
