1
package com.hcxy.controller;
import com.hcxy.pojo.Users;
import com.hcxy.service.UserService;
import com.hcxy.service.UserServiceImpl;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
@WebServlet("/loginServlet")
public class LoginServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String username = request.getParameter("username");
UserService userService = new UserServiceImpl();
Users user = userService.getUserByUserName(username);
if(user != null){
//用户名没问题
String password = request.getParameter("password");
if(password.equals(user.getPassword())){
//密码没问题,登录成功
HttpSession session = request.getSession();
session.setAttribute("user",user.getUsername());
//判断是否选中了自动登录
String remember = request.getParameter("remember");
if("remember".equals(remember)){
//勾选了
Cookie jsessionid = new Cookie("JSESSIONID", session.getId());
//设置cookie生命周期
jsessionid.setMaxAge(5 * 60 * 60);
response.addCookie(jsessionid);
}
request.getRequestDispatcher("/main.jsp").forward(request,response);
}else{
request.setAttribute("msg","密码错误");
request.getRequestDispatcher("/login.jsp").forward(request,response);
}
}else{
request.setAttribute("msg","用户名不存在");
request.getRequestDispatcher("/login.jsp").forward(request,response);
}
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}
2
package com.hcxy.controller; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.annotation.*; import java.io.IOException; @WebServlet("/mainServlet") public class MainServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); Object user = session.getAttribute("user"); if(user != null){ //登录状态 //跳转到main.jsp response.sendRedirect(request.getContextPath()+"/main.jsp"); }else{ request.getRequestDispatcher("/login.jsp").forward(request,response); } } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } }
3
package com.hcxy.dao; import com.hcxy.pojo.Users; public interface UsersMapper { Users getUserByUserName(String username); }
4
package com.hcxy.pojo; import lombok.Data; @Data public class Users { private int uid; private String username; private String password; }
5
package com.hcxy.service; import com.hcxy.pojo.Users; import java.io.IOException; public interface UserService { Users getUserByUserName(String username) throws IOException; }
6
package com.hcxy.service; import com.hcxy.dao.UsersMapper; import com.hcxy.pojo.Users; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import java.io.IOException; import java.io.InputStream; public class UserServiceImpl implements UserService{ @Override public Users getUserByUserName(String username) throws IOException { //mybatis核心配置文件加载进来 InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml"); SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream); SqlSession sqlSession = build.openSession(); UsersMapper usersMapper = sqlSession.getMapper(UsersMapper.class); Users user = usersMapper.getUserByUserName(username); sqlSession.close(); return user; } }
7UserMapper.xml
<mapper namespace="com.hcxy.dao.UsersMapper"> <select id="getUserByUserName" parameterType="string" resultType="users"> select * from users where username = #{username} <sselect> </mapper>
8login.jsp
<%@ page contentType="texthhtml;charset=UTF-8" language="java" %> <%@ page isELIgnored="false" %> <html> <head> <title>登录界面</title> </head> <body> <p style="color: red">${msg}</p> <form action="${pageContext.request.contextPath}/loginServlet" method="post"> <label for="username">用户名:</label> <input id="username" name="username" type="text"><br> <label for="password">密码:</label> <input id="password" name="password" type="password"><br> <input type="checkbox" name="remember" value="remember">自动登录<br> <input type="submit" value="登录"> <input type="reset" value="重置"> </form> </body> <hhtml>
9main.jsp
<%@ page contentType="texthhtml;charset=UTF-8" language="java" %> <%@ page isELIgnored="false" %> <html> <head> <title>主页</title> </head> <body> ${user},欢迎您。 </body> <hhtml>