1. 程式人生 > >idea中建立maven依賴下的web工程(一)----使用者登入介面

idea中建立maven依賴下的web工程(一)----使用者登入介面

如果你對idea中建立maven依賴下的web工程不是很瞭解,請參見上一篇部落格—-idea中建立maven依賴下的第一個web工程
各路大神對於idea的基本操作已經非常的熟悉了,
嗯,我還是一隻入門不久的小菜鳥,
對於maven依賴下的web工程的的詳細理解如下:
嗯,如果你已經看了上一篇文章,
想必你對idea中建立maven依賴下的web工程已經不陌生了吧,
接下來繼續吧~
這裡寫圖片描述
這裡從上到下都是按照標準的規範建立的資料夾:
dao層:是資料訪問層,對資料庫進行訪問的;
domain層:是用來管理javabean實體物件的;
(javabean的理解請參見這裡)
util層:是我們自己根據自己的業務需要,將一些反覆用到的一些方法、函式什麼的封裝成自己的工具類;
web層:是資料顯示層,裡面放的都是Controller控制器,是與介面進行互動的地方。
這些分佈只是一些行內預設習慣,並沒有什麼強制性,
這種分層是為了防止侵入式開發,同時方便修改測試以及封裝。
這裡我們來記錄一個簡單的使用者登入介面的歷程—-
這裡我們需要在domain層新建一個User.java類,封裝一個使用者類:

public class User {
    private String username;
    private String password;
    public User() {
    }
   public User(String username, String password) {
        this.username = username;
        this.password = password;
    }
    public String getUsername() {
        return username;
    }
    public
void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String toString() { return "User{" + "username='"
+ username + '\'' + ", password='" + password + '\'' + '}'; }

細心的你應該會看到,在這裡我們覆寫了Object的toString()方法,其實進行覆寫也只是為了方便我們自己檢視輸出資訊而已,
關於toString()方法的詳細解答,請參見這裡
接下來,我們就可以開始寫一個Controller控制器類了,
這裡我新建了一個LoginController.java的類—-

public class LoginController extends HttpServlet{
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //解決響應亂碼
        resp.setCharacterEncoding("UTF-8");
        //解決請求亂碼
        req.setCharacterEncoding("UTF-8");
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        User user = new User(username,password);
        //建立一個儲存錯誤的容器
        Map<String,String> errors = new HashMap<String,String>();
        //判斷使用者名稱和密碼是否為空
        //判斷長度
        if(StringUtils.isEmpty(user.getUsername())){
            errors.put("username","使用者名稱錯誤!");
        }
        if(StringUtils.isEmpty(user.getPassword())){
            errors.put("password","密碼錯誤!");
        }
        if(errors.size() > 0){
            req.setAttribute("errors",errors);       req.getRequestDispatcher("/login.jsp").forward(req,resp);
            return;
        }
        //登入成功跳轉到登入頁面
        req.getSession().setAttribute("user",user);
        resp.sendRedirect("/main.jsp");
    }
}

此外,我們還是應該把判斷字串是否為空這個方法封裝起來的.

public class StringUtils {
    public static boolean isEmpty(String str){
        return str == null || "".equals(str) ? true : false;
    }
}

接下來就是編寫.jsp檔案了,不然我們在哪裡看到介面的廬山真面目呢

在webapp目錄下我們建立了login.jsp和main.jsp檔案。
login.jsp程式碼為:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<c:forEach items="${errors}" var="error">
    <font color="red">${error.key}</font>
    ${error.value}</br>
</c:forEach>
<form action="/login" method="post">
    使用者名稱<input type="text" name="username"><br>
    密碼<input type="password" name="password"><br>
    <input type="submit" value="登入">
</form>
</body>
</html>

main.jsp的程式碼為:

<%@ page contentType="text/html;charset=UTF-8" language="java"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <meta charset="utf-8">
    <title>Title</title>
</head>
<body>
    歡迎你${user.username}
</body>
</html>

關於EL表示式的使用,請大家去查閱相關的資料這裡就不給出相關的連結地址了,畢竟每個人的喜好不一樣,是吧。
寫完了這些,你是不是認為一切大功告成了?
你是不是以為我們的專案就可以跑起來了?
oh no,還差了最關鍵的一步呢
那就是web.xml檔案裡面的配置咯
這裡寫圖片描述
現在,一切準備就緒了,我們可以連線好自己的本地的tomcat之後就可以執行整個專案了:
這裡寫圖片描述
記得協商url地址哦。
下面可以進行操作了—-
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
嗯,到這裡就結束了,不知道你看明白了木有呢,後面還會繼續更新的。