JavaWeb小作业 用户表单数据的获取

作业要求:

1. 一个注册页面 (form表单,servlet)
   - username  (文本框)
   - password:密码  (密码框)
   - passwordYes :再次输入密码(密码框)
   - sex   (单选框)
   - hobby  (多选框)

   - info  (文本域)
2. servlet处理注册信息
   - 判断两次密码是否相同
     - 相同则跳到成功页面,并且在成功页面显示SeesionID;
     - 不同则注册失败,重定向到注册页面
3. 成功页面
   - 显示登陆成功的用户名,密码,爱好,性别和信息;
   - 显示一个注销按钮
4. 如果注销后,或者没登录,不能直接进入成功页面,跳转到404
5. 404页面就是一个404;

主页面:(index.jsp)

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>

  <h1>主页</h1>
  <a href="register.jsp">点击注册</a>
  </body>
</html>

登录页面:(register.jsp)

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>

  <h1>主页</h1>
  <a href="register.jsp">点击注册</a>
  </body>
</html>

登录成功页面:(success.jsp)

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>成功</title>


<%
    <%--如果注销后,或者没登录,不能直接进入成功页面,跳转到404--%>
    HttpSession session1 = request.getSession();
    if(session1.getAttribute("username")==null){
        request.getRequestDispatcher("404.jsp").forward(request,response);
    }
%>



</head>
<body>

<h1>恭喜你注册成功</h1>
<p>欢迎新用户:${sessionScope.username}</p>
<p>你的密码:${sessionScope.password}</p>
<p>你的性别:${sessionScope.sex}</p>
<p>你的信息:${sessionScope.info}</p>
<p>你的爱好:${sessionScope.hobby}</p>

<p>sessionid: ${sessionScope.id}</p>


<a href="${pageContext.request.contextPath}/t2">注销</a>

</body>
</html>

404页面:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>404</title>
</head>
<body>

<h1>你还没有登录或注册,请先进行注册</h1>
<a href="register.jsp">注册</a>


</body>
</html>

ServletRegister:(处理提交的表单的servlet)

package com.xbf.servlet;

import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.Arrays;

public class ServletRegister extends javax.servlet.http.HttpServlet {

    protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
        HttpSession session = request.getSession();
        //解决编码问题
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");

        //获取提交的数据
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        String password2 = request.getParameter("password2");
        String sex = request.getParameter("sex");
        String info = request.getParameter("info");
        String[] hobbies = request.getParameterValues("hobby");
        String id = request.getSession().getId();

        if(password.equals(password2)){//前后密码一致
            //将用户信息存进session

            session.setAttribute("username",username);
            session.setAttribute("password",password);
            session.setAttribute("sex",sex);
            session.setAttribute("info",info);
            session.setAttribute("hobby", Arrays.toString(hobbies));

            session.setAttribute("id",id);

            //跳转到成功
            response.sendRedirect("success.jsp");
        }else{//重新跳转到注册页面

            //设置一个值,可以跳出弹窗

            session.setAttribute("pwd","yes");
            response.sendRedirect("register.jsp");
        }


    }

    protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
        doPost(request,response);
    }
}

ServletRefisterOut:(注销用户信息的servlet)

package com.xbf.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

@WebServlet(name = "ServletRegisterOut")
public class ServletRegisterOut extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {



        //注销用户数据
        HttpSession session = request.getSession();
        session.removeAttribute("username");
        session.removeAttribute("password");
        session.removeAttribute("sex");
        session.removeAttribute("hobby");
        session.removeAttribute("info");
        //注销完成后,跳到成功页面
        response.sendRedirect("success.jsp");
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }
}

wen.xml的配置:

    <servlet>
        <servlet-name>ServletRegister</servlet-name>
        <servlet-class>com.xbf.servlet.ServletRegister</servlet-class>
    </servlet>
    <servlet>
        <servlet-name>ServletRegisterOut</servlet-name>
        <servlet-class>com.xbf.servlet.ServletRegisterOut</servlet-class>
    </servlet>



    <servlet-mapping>
        <servlet-name>ServletRegister</servlet-name>
        <url-pattern>/t1</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>ServletRegisterOut</servlet-name>
        <url-pattern>/t2</url-pattern>
    </servlet-mapping>

收获总结:

1.在jsp页面上显示用户提交的数据: ${ sessionScope.username }   比如:获取用户的姓名。