简单javaweb有关登录界面的代码实现

登录界面代码实现

要求

  1. 一个注册页面(form表单,servlet)
    username(文本框)
    password:密码(密码框)
    passwordYes :再次输入密码(密码框)
    hobby(多选框)
    sex(单选框)
    info(文本域)
  2. servlet处理注册信息
    判断两次密码是否相同
    相同则跳到成功页面,并且在成功页面显示SeesionID;
    不同则注册失败,重定向到注册页面
  3. 成功页面
    显示登陆成功的用户名,密码,爱好,性别和信息;
    显示一个注销按钮
  4. 如果注销后,或者没登录,不能直接进入成功页面,跳转到错误界面

详细步骤

  1. 首先建立web项目,建包,导相关的jar包,并关联Tomcat。

  2. 建立:登录成功的success.jsp文件,登录界面的jsp文件register.jsp,错误界面的jsp文件nologin.jsp,登录错误的Servlet文件loginOutServlet.java,登录Servlet文件RegisterServlet.java,并打开web.xml和index.jsp。

  3. 编辑index.jsp文件

    <%--
      Created by IntelliJ IDEA.
      User: Administrator
      Date: 2019/7/16
      Time: 8:54
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    
      
        主界面
        
      
      
      

    HomeWork


    点击注册
  4. 编写register登录网页

    <%--
      Created by IntelliJ IDEA.
      User: Administrator
      Date: 2019/7/16
      Time: 10:15
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    
    
        register
        <%--如果两次密码不相同,关联RegisterServlet中if判断密码是否正确中的else--%>
        
    
    
    

    欢迎来到注册界面


    <%--分割线--%>
    <%--form表单--%>

    用户名:

    密码:

    密码确认:

    性别:

    爱好: 异性 舞蹈 音乐 电影

    个人简介:

  5. 编辑登录Servlet(RegisterServlet.java)

    package com.li.work;
    
    import javax.servlet.http.HttpSession;
    import java.io.IOException;
    import java.util.Arrays;
    
    public class RegisterServlet extends javax.servlet.http.HttpServlet {
        protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
            doGet(request, response);
        }
    
        protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
            request.setCharacterEncoding("UTF-8");//处理乱码问题
            response.setCharacterEncoding("UTF-8");//处理乱码问题
            //获得用户在register界面提交的数据
            String username = request.getParameter("username");
            String password = request.getParameter("password");
            String confirmPassword = request.getParameter("confirmPassword");
            String gender = request.getParameter("gender");
            String info = request.getParameter("info");
            String[] hobbies = request.getParameterValues("hobby");
            //判断密码是否正确
            if (password.equals(confirmPassword)){//如果密码相同,重定向到成功界面
                HttpSession session = request.getSession();//获取session
                session.setAttribute("session_username",username);
                session.setAttribute("session_password",password);
                session.setAttribute("session_gender",gender);
                session.setAttribute("session_info",info);
                session.setAttribute("session_hobby", Arrays.toString(hobbies));
                response.sendRedirect("success.jsp");//重定向到成功页面
            }else {//如果密码不同,通知用户密码输入不一样
                request.getSession().setAttribute("passwordError","yes");
                response.sendRedirect("register.jsp");//重定向到登陆界面
            }
        }
    }
    
  6. 编辑成功web界面(success.jsp)

    <%--
      Created by IntelliJ IDEA.
      User: Administrator
      Date: 2019/7/16
      Time: 10:12
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    
    
        success
        
    
        <%
            HttpSession loginSession = request.getSession();
            if (loginSession.getAttribute("session_username")==null){//如果session中的用户名为空
                request.getRequestDispatcher("errorpage/nologin.jsp").forward(request,response);//转发至nologin(注册有误)界面
            }
        %>
    
    
    

    注册成功

    欢迎用户:${sessionScope.session_username}加入本项目
    用户名:${sessionScope.session_username}
    密码:${sessionScope.session_password}
    性别:${sessionScope.session_gender}
    爱好:${sessionScope.session_hobby}
    个人简介:${sessionScope.session_info}

    注销

  7. 编辑注销的Servlet文件(loginOutServlet.java)

    package com.li.work;
    
    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 = "loginOutServlet")
    public class loginOutServlet extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request,response);
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            HttpSession session = request.getSession();//获取session
            if (session==null){
                response.sendRedirect("index.jsp");
                return;
            }
            //注销session,移除session中的数据
            session.removeAttribute("session_username");
            session.removeAttribute("session_password");
            session.removeAttribute("session_gender");
            session.removeAttribute("session_info");
            session.removeAttribute("session_hobby");
            //删除数据后跳转至success界面
            response.sendRedirect("success.jsp");
        }
    }
    
  8. 编辑登录信息有误的nologin界面(nologin.jsp)

    <%--
      Created by IntelliJ IDEA.
      User: Administrator
      Date: 2019/7/16
      Time: 10:14
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    
    
        NoLoginPage
        
    
    
    
    

    找不到信息,未注册或已注销,请点击登录!


    点击注册
  9. 编辑web.xml

    
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
             version="4.0">
        <servlet>
            <servlet-name>RegisterServletservlet-name>
            <servlet-class>com.li.work.RegisterServletservlet-class>
        servlet>
        <servlet>
            <servlet-name>loginServletservlet-name>
            <servlet-class>com.li.work.loginOutServletservlet-class>
        servlet>
        
        <servlet-mapping>
        <servlet-name>RegisterServletservlet-name>
        <url-pattern>/register.dourl-pattern>
        servlet-mapping>
        <servlet-mapping>
            <servlet-name>loginServletservlet-name>
            <url-pattern>/loginOut.dourl-pattern>
        servlet-mapping>
    web-app>
    

要重点搞清楚文件和文件之间的关系和关联,具体方法可以用倒推法,一点一点从网页寻找会Servlet的.java文件中。另外要注意链接各个网页时候路径的位置,包不同路径就不同。


本文是简单的登录界面的代码实现,更复杂的部分和思想不再本文考虑范围

你可能感兴趣的:(Java学习)