1. 程式人生 > 實用技巧 >Servlet(4):一個簡單的註冊頁面

Servlet(4):一個簡單的註冊頁面

一. 註冊要求

1. 一個註冊頁面

  • username (文字框)
  • password:密碼 (密碼框)
  • passwordYes :再次輸入密碼(密碼框)
  • hobby (多選框)
  • sex (單選框)
  • info (文字域)

2. servlet處理註冊資訊,判斷兩次密碼是否相同

  • 相同則跳到成功頁面
  • 不同則註冊失敗,重定向到註冊頁面

3. 成功頁面

  • 顯示登陸成功的使用者名稱,密碼,愛好,性別和資訊;
  • 顯示一個登出按鈕

4. 如果登出後,或者沒登入,不能直接進入成功頁面,跳轉到失敗介面

二. 具體操作步驟

1:在index.jsp(首頁)寫一個超連結,讓跳轉到註冊介面

2:寫好註冊介面後,提交給ServeltRegister處理

3:跳轉到ServletRegister註冊介面,把使用者訊息放進session中,並判斷輸入的密碼是否正確

4:如果密碼成功,跳轉到成功介面,並在成功介面顯示使用者填寫的資訊

5:在成功頁面設定登出按鈕,按下注銷按鈕後,跳轉到ServletOut登出介面


6:當用戶訊息登出後,讓其回到成功頁面,然後提示使用者未註冊或者已登出,請先註冊

7:在提示頁面設定註冊按鈕,讓其重新註冊,回到註冊頁面

8:如果密碼輸出錯誤,讓其回到註冊頁面,並用彈框提醒


三. 程式碼

1:首頁 index.jsp

<html>
  <head>
    <title>
首頁</title> <style> body{ margin: 0 auto; text-align: center; } </style>

</head>
<body>
<h1>首頁</h1>
<hr>
<a href="${pageContext.request.contextPath}/register.jsp">註冊</a>
</body>
</html>

2:註冊頁 register.jsp

<html>
<head>
    <title>註冊</title>
    <script>
        var status = '${sessionScope.pwdFail}';
        if (status=='yes'){
            alert("兩次密碼輸入不一樣,請重新輸入")
        }
    </script>
</head>
<body>
<h1>註冊</h1>
<form action="${pageContext.request.contextPath}/Register" method="post">
    <p>使用者名稱: <input type="text" name="username" required ></p>
    <p>密碼:<input type="password" name="password1" required></p>
    <p>確認密碼:<input type="password" name="password2" required></p>
    <p>愛好:
        <input type="checkbox" name="hobby" value="movie">電影
        <input type="checkbox" name="hobby" value="TV">電視
        <input type="checkbox" name="hobby" value="music">音樂
    </p>
    <p>性別:
        <input type="radio" name="sex" value="boy"><input type="radio" name="sex" value="girl"></p>
    <p>個人簡介:
        <textarea name="info"></textarea>
    </p>
    <p>
        <input type="submit">
        <input type="reset">
    </p>
</form>
</body>
</html>

3:成功頁 success.jsp

<html>
<head>
    <title>註冊成功</title>
    <%
        HttpSession session1 = request.getSession();
        if(session1.getAttribute("username")==null){
            request.getRequestDispatcher("loss.jsp").forward(request,response);
        }
    %>    
</head>
<body>
<h1>註冊成功!</h1>
<%--通過sessionScope得到資訊--%>
<p> 使用者名稱:${sessionScope.username}</p>
<p> 密碼:${sessionScope.password1}</p>
<p> 性別:${sessionScope.sex}</p>
<p> 愛好:${sessionScope.hobbies}</p>
<p> 簡介:${sessionScope.info}</p>
<a href="${pageContext.request.contextPath}/Out">登出</a>
</body>
</html>

4:提示頁 loss.jsp

<html>
<head>
    <title>失敗</title>
</head>
<body>
<h1>
    沒有session資訊,未註冊或者已登出,請先註冊
</h1>
<a href="${pageContext.request.contextPath}/register.jsp">註冊</a>
</body>
</html>

5:web.xml

    <servlet>
        <servlet-name>ServletRegister</servlet-name>
        <servlet-class>com.sunzhen.ServletRegister</servlet-class>
    </servlet>
    <servlet>
        <servlet-name>ServletOut</servlet-name>
        <servlet-class>com.sunzhen.ServletOut</servlet-class>
    </servlet>
<span class="hljs-tag">&lt;<span class="hljs-name">servlet-mapping</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">servlet-name</span>&gt;</span>ServletOut<span class="hljs-tag">&lt;/<span class="hljs-name">servlet-name</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">url-pattern</span>&gt;</span>/Out<span class="hljs-tag">&lt;/<span class="hljs-name">url-pattern</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">servlet-mapping</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">servlet-mapping</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">servlet-name</span>&gt;</span>ServletRegister<span class="hljs-tag">&lt;/<span class="hljs-name">servlet-name</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">url-pattern</span>&gt;</span>/Register<span class="hljs-tag">&lt;/<span class="hljs-name">url-pattern</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">servlet-mapping</span>&gt;</span>

6:註冊 ServletRegister

        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
    <span class="hljs-comment">//獲得使用者提交的資料</span>
    <span class="hljs-built_in">String</span> username = request.getParameter(<span class="hljs-string">"username"</span>);
    <span class="hljs-built_in">String</span> password1 = request.getParameter(<span class="hljs-string">"password1"</span>);
    <span class="hljs-built_in">String</span> password2 = request.getParameter(<span class="hljs-string">"password2"</span>);
    <span class="hljs-built_in">String</span> sex = request.getParameter(<span class="hljs-string">"sex"</span>);
    <span class="hljs-built_in">String</span> info = request.getParameter(<span class="hljs-string">"info"</span>);
    <span class="hljs-built_in">String</span>[] hobbies = request.getParameterValues(<span class="hljs-string">"hobby"</span>);

    <span class="hljs-keyword">if</span>(password1.equals(password2)){
        <span class="hljs-comment">//把使用者訊息放進session中</span>
        HttpSession session = request.getSession();
        session.setAttribute(<span class="hljs-string">"username"</span>,username);
        session.setAttribute(<span class="hljs-string">"password1"</span>,password1);
        session.setAttribute(<span class="hljs-string">"sex"</span>,sex);
        session.setAttribute(<span class="hljs-string">"info"</span>,info);
        session.setAttribute(<span class="hljs-string">" hobbies"</span>, Arrays.toString(hobbies));

        response.sendRedirect(<span class="hljs-string">"success.jsp"</span>);
        <span class="hljs-comment">//request.getRequestDispatcher("success.jsp").forward(request,response);</span>
    }<span class="hljs-keyword">else</span> {
        request.getSession().setAttribute(<span class="hljs-string">"pwdFail"</span>,<span class="hljs-string">"yes"</span>);
        response.sendRedirect(<span class="hljs-string">"register.jsp"</span>);
    }

7:登出 ServletOut

       HttpSession session = request.getSession();
        //登出session或者移除session中的資料
        session.removeAttribute("username");
        session.removeAttribute("password1");
        session.removeAttribute("sex");
        session.removeAttribute("hobbies");
        session.removeAttribute("info");
    response.sendRedirect(<span class="hljs-string">"success.jsp"</span>);