1.编写login.html登录页面username & password 两个输入框
2.使用Druid数据库连接池技术,操作mysql,day14数据库中user表
3.使用JdbcTemplate技术封装JDBC
4.登录成功跳转到SuccessServlet展示:登录成功!用户名,欢迎您
5.登录失败跳转到FailServlet展示:登录失败,用户名或密码错
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
head>
<body>
<form action="/loginServlet" method="post">
用户名:<input type="text" name="username"> <br>
密码:<input type="password" name="password"><br>
<input type="submit" value="登录">
form>
body>
html>
package com.neusoft.dao.impl;
import com.neusoft.dao.UserDao;
import com.neusoft.domain.User;
import com.neusoft.util.JDBCUtils;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class UserDaoImpl implements UserDao
{
private Connection conn=null;
private PreparedStatement pstmt=null;
private ResultSet rs=null;
private User user=null;
@Override
public User login(User loginUser) throws SQLException
{
String sql="select * from userlogin where username=? and password=?";
try{
conn = JDBCUtils.getConnection();
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,loginUser.getUsername());
pstmt.setString(2,loginUser.getPassword());
ResultSet rs = pstmt.executeQuery();
while (rs.next()){
user = new User();
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
JDBCUtils.close(rs,pstmt,conn);
}
return user;
}
}
package com.neusoft.web.servlet;
import com.neusoft.dao.UserDao;
import com.neusoft.dao.impl.UserDaoImpl;
import com.neusoft.domain.User;
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.sql.SQLException;
@WebServlet("/loginServlet")
public class LoginServlet extends HttpServlet
{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
//1.设置编码
req.setCharacterEncoding("utf-8");
//2.获取请求参数
String username = req.getParameter("username");
String password = req.getParameter("password");
//3.封装成对象
User loginUser = new User();
loginUser.setUsername(username);
loginUser.setPassword(password);
//4.调用 dao 中 login方法
UserDao dao = new UserDaoImpl();
User user=null;
try {
user = dao.login(loginUser);
} catch (SQLException e) {
e.printStackTrace();
}
//5.判断
if(user == null){
//登录失败
req.getRequestDispatcher("/failServlet").forward(req,resp);
}else {
req.setAttribute("user",user);
req.getRequestDispatcher("/successServlet").forward(req,resp);
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
this.doGet(req, resp);
}
}
package com.neusoft.web.servlet;
import com.neusoft.domain.User;
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;
@WebServlet("/successServlet")
public class SuccessServlet extends HttpServlet
{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
User user = (User) req.getAttribute("user");
if(user != null){
resp.setContentType("text/html;charset=utf-8");
resp.getWriter().write("登录成功,"+user.getUsername()+",欢迎您");
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
this.doGet(req, resp);
}
}
package com.neusoft.web.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;
@WebServlet("/failServlet")
public class FailServlet extends HttpServlet
{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
//给页面一句话
//设置返回文件类型和编码
resp.setContentType("text/html;charset=utf-8");
resp.getWriter().write("登录失败,用户名或密码错误");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
this.doGet(req, resp);
}
}
package com.neusoft.test;
import com.neusoft.dao.impl.UserDaoImpl;
import com.neusoft.domain.User;
import org.junit.Test;
import java.sql.SQLException;
public class UserDaoTest
{
@Test
public void test() throws SQLException
{
User loginUser = new User();
loginUser.setUsername("bigbaby");
loginUser.setPassword("12345");
UserDaoImpl dao = new UserDaoImpl();
User user = dao.login(loginUser);
System.out.println(user);
}
}