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 } 比如:获取用户的姓名。