首先先建立一些项目需要的包:
在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>
测试过程: