使用三層架構來實現登錄


首先先建立一些項目需要的包:

 

 在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>

測試過程:

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM