jsp登录界面 Login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
用户登录界面
2.java代码
User.Java 定义的属性和数据库中的字段相对应
package com.softeem.dt;
public class User {
private int id;
private String username;
private String password;
private String xh;
private String college;
public int getId(){
return id;
}
public void setId(int id){
this.id = id;
}
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;
}
public String getXh() {
return xh;
}
public void setXh(String xh) {
this.xh = xh;
}
public String getCollege() {
return college;
}
public void setCollege(String college) {
this.college = college;
}
}
UserDAO.java 操作数据库tb_user,验证用户登录
package com.softeem.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.softeem.db.DBManager;
import com.softeem.dt.User;
public class UserDAO {
/**
* 验证用户登录
* @return
*/
public boolean checkDenglu(User user) {
boolean flag = false;
// 获得数据库连接
Connection conn = DBManager.getConnection();
// 用select * from查询数据库中的所有字段
String sql = "select count(*) from tb_user where username=? and password=?";
try {
PreparedStatement pst = conn.prepareStatement(sql);
pst.setString(1, user.getUsername());
pst.setString(2, user.getPassword());
// 执行查询语句,拿到结果集
ResultSet rs = pst.executeQuery();
while (rs.next()) {
int count = rs.getInt(1);
//用count和0比较,若大于0
示该用户存在,否则不存在
if(count > 0){
flag = true;
}
}
} catch (SQLException e) {
e.printStackTrace();
}
return flag;
}
}
3.LoginServlet,点击登录跳转到服务器端
package com.softeem.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.softeem.dao.UserDAO;
import com.softeem.dto.User;
/**
* Servlet implementation class LoginServlet
*/
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public LoginServlet() {
super();
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
super.doGet(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取表单数据
//处理乱码
request.setCharacterEncoding("utf-8");
String username = request.getParameter("username");
String password = request.getParameter("password");
//封装到user对象中
User user = new User();
user.setUsername(username);
user.setPassword(password);
//调用dao的checkLogin方法
UserDAO dao = new UserDAO();
boolean flag = dao.checkLogin(user);
String message = null;
String path = null;
if(flag){
message = "登录成功";
path="success.jsp";
request.getSession().setAttribute("user", user);
}else{
message ="对不起密码错误,请重新输入!";
path="fail.jsp";
}
//response返回message
response.setCharacterEncoding("utf-8");
response.getWriter().write(message);*/
//属于服务器跳转,浏览器地址栏没有发生改变
request.getRequestDispatcher(path).forward(request,response);
}
}