简单表单提交练习

要求:

  1. 一个注册页面 (form表单,servlet)
    • username (文本框)

    • password:密码 (密码框)

    • passwordYes :再次输入密码(密码框)

    • sex (单选框)

    • hobby (多选框)

    • info (文本域)

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

项目结构:

在这里插入图片描述

首页index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
  <title>首页</title>
</head>
<body>
  <a href="${pageContext.request.contextPath}/register.jsp">注册</a>
  
</body>
</html>

表单页面register.jsp

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

        var status = '${sessionScope.pwdFail}';

        if (status=='yes'){
            alert("两次密码输入不一样,请重新输入")
        }
    </script>
</head>
<body>

<h1>注册页面</h1>
<hr>
<div>
    <form action="${pageContext.request.contextPath}/register.do" method="post">

        <p>用户名:<input type="text" name="username" required></p>
        <p>密码: <input type="password" name="password" required></p>
        <p>确认密码: <input type="password" name="passwordTwo" required></p>

        <p>性别:
            <input type="radio" name="sex" value="boy" checked>男
            <input type="radio" name="sex" value="girl">女
        </p>
        <p>爱好:
            <input type="checkbox" name="hobby" value="basketball">篮球
            <input type="checkbox" name="hobby" value="code">代码
            <input type="checkbox" name="hobby" value="movie">电影
            <input type="checkbox" name="hobby" value="music">音乐
        </p>
        <p>个人简介:
            <textarea name="info"></textarea>
        </p>
        <p>
            <input type="submit" value="提交">
            <input type="reset" value="重置">
        </p>
    </form>
</div>

</body>
</html>

处理表单提交处理的sevlet类RegisterServlet

package com.ck.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.Arrays;

public class RegisterServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //解决乱码问题
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");

        //获得用户提交的数据
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        String passwordTwo = request.getParameter("passwordTwo");
        String sex = request.getParameter("sex");
        String info = request.getParameter("info");
        String[] hobbies = request.getParameterValues("hobby");
        
        //判断密码是否正确
        if(password.equals(passwordTwo)){ //相同,重定向到成功页面

            //把用户消息放进session中
            HttpSession session = request.getSession();
            session.setAttribute("s_username",username);
            session.setAttribute("s_password",password);
            session.setAttribute("s_sex",sex);
            session.setAttribute("s_info",info);
            session.setAttribute("s_hobbies",Arrays.toString(hobbies));

            //重定向到成功页面
            response.sendRedirect("success.jsp");

        }else {//如果没有成功!通知用户密码输入不一样
            request.getSession().setAttribute("pwdFail","yes");
            response.sendRedirect("register.jsp");

            //response.getWriter().println("用户密码输入不一样");
        }


    }

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

注销处理的sevlet类LoginOutServlet

package com.ck.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.Arrays;

public class LoginOutServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        //获取session
        HttpSession session = req.getSession();


        if (session==null){ //如果没有session了,就跳回到首页
            resp.sendRedirect("index.jsp");
            return;
        }


        //注销session或者移除session中的数据
        session.removeAttribute("s_username");
        session.removeAttribute("s_password");
        session.removeAttribute("s_sex");
        session.removeAttribute("s_info");
        session.removeAttribute("s_hobbies");


        //注销session
        //session.invalidate();

        //注销成功后。回到成功页面
        resp.sendRedirect("success.jsp");

    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

注销成功页面
success.jsp

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

    <style>
        p>span{
            font-weight: bold;
        }
    </style>


    <%
        HttpSession loginSession = request.getSession();

        if (loginSession.getAttribute("s_username")==null){ //发现session中没有信息,就说明未注册或者已注销
            //转发
            request.getRequestDispatcher("/errorpage/noLogin.jsp").forward(request,response);
        }

    %>

noLogin.jsp


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>没有session信息</title>
</head>
<body>

<h1>
    没有session信息,未注册或者已注销,请先注册
</h1>

<a href="${pageContext.request.contextPath}/register.jsp">注册</a>

</body>
</html>

运行截图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值