首先先建立一些项目需要的包:
在servlet层里面写一下和页面打交道的servlet,servlet调用service层,也就是业务处理层,service层调用dao层,用于数据库crud操作
LoginServlet如下:
1 @WebServlet("/login.do") 2 public class LoginServlet extends HttpServlet { 3 private static final long serialVersionUID = 1L; 4 5 IUserService userService= new UserServiceImpl(); 6 7 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 8 9 //从前台获取我们的用户名和密码 10 String name=request.getParameter("userName"); 11 String pass=request.getParameter("userPass"); 12 13 //去数据库查询是不是有这个用户 14 UserEntity ue=userService.getUserByNameAndPass(name, pass); 15 16 //根据获取的不同值来进行处理 17 if (ue==null) { 18 request.setAttribute("msg", "登录失败"); 19 request.getRequestDispatcher("login.jsp").forward(request, response); 20 }else { 21 22 //登录成功需要将用户名存在session里面 23 request.getSession().setAttribute("userName",name); 24 25 //跳转到一个查询用户列表的servlet里面 26 response.sendRedirect("index.jsp"); 27 } 28 29 } 30 31 32 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 33 // TODO Auto-generated method stub 34 doGet(request, response); 35 }
接下来先写一下我们的用户实体类:把它们的set和get方法生成一下
接着写我们的service层:
IUserService:
1 public interface IUserService { 2 3 //根据用户名和密码去查询用户的实体 4 public UserEntity getUserByNameAndPass(String name,String pass); 5 6 }
IUserServiceImpl:
1 IUserDao userDao=new UserDaoImpl(); 2 3 @Override 4 public UserEntity getUserByNameAndPass(String name, String pass) { 5 // TODO Auto-generated method stub 6 return userDao.getUserByNameAndPass(name, pass); 7 }
接着写Dao层
IUserDao:
1 public interface IUserDao extends IBaseDao{ 2 3 public UserEntity getUserByNameAndPass(String name,String pass); 4 5 }
UserDaoImpl:
1 public class UserDaoImpl extends BaseDaoImpl implements IUserDao{ 2 3 @Override 4 public UserEntity getUserByNameAndPass(String name, String pass) { 5 // TODO Auto-generated method stub 6 String sql="select * from t_admin where aname=? and apass=?"; 7 return selOne(UserEntity.class, sql, name,pass); 8 }
后太代码写好了 接下来就是两个前端页面:
login.jsp:
1 <!-- 提交的方式; get post --> 2 3 4 <form action="login.do" method="post"> 5 6 <!-- name : 对应我们servlet去获取前台文本框的值的 key --> 7 用户名:<input name="userName" type="text" value="6666"/> 8 密码:<input name="userPass" type="password" /> 9 10 <!-- 默认是submit; --> 11 <button>登录</button> 12 13 <!-- 登录失败,展示登录失败的提示信息 --> 14 ${msg} 15 16 </form>
index.jsp:
1 <!-- 展示当前登录的用户名;看一下 session里面是否保存了用户名 --> 2 <!-- 如果用户没有登录的话,展示一个 请登录的a连接 --> 3 4 <c:if test="${empty userName}"> 5 <a href="login.jsp">请登录</a> 6 </c:if> 7 <c:if test="${not empty userName}"> 8 <h3>欢迎你: ${userName}</h3> 9 </c:if>
测试过程: