JAVA lograr un acceso simple sesión, la función de cierre de sesión

sesión a menudo se utiliza para almacenar la información de inicio de sesión del usuario. A continuación, el servidor es cómo lograrlo? Aquí, simplemente simularlo.

  • El primer paso, escribiendo una página de inicio de sesión:
<!DOCTYPE html>
<html>
  <head>
    <title>登陆页面</title>

    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">

    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

  </head>

  <body>
    <form action="/JavaWeb/LoginServlet" method="post">
        用户名:<input type="text" name="userName"/>
        <br/>
        密码: <input type="text" name="userPwd"/>
        <br/>
        <input type="submit" value="登陆"/>
    </form>
  </body>
</html>
  • A continuación, cree clase LoginServlet, porque a fin de obtener la información de recursos del servidor, por lo que aquí método doGet utilizado para procesar la solicitud. El proceso real es, sin duda hay que consultar la información del usuario en la base de datos, donde ha simplificado, destinado a comprender el uso de sesión puede ser.

 

package gz.itcast;

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

public class LoginServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        request.setCharacterEncoding("utf-8");

        //接收参数
        String userName = request.getParameter("userName");
        String userPwd = request.getParameter("userPwd");

        //判断登陆是否成功
        if(userName.equals("刘小斌") && userPwd.equals("123456")) {
            //登陆成功

            //创建session对象
            HttpSession session = request.getSession();
            //把用户数据保存在session域对象中
            session.setAttribute("loginName", userName);
            //跳转到用户主页
            response.sendRedirect(request.getContextPath()+"/IndexServlet");
        } else {
            //登陆失败,请求重定向
            response.sendRedirect(request.getContextPath() + "/fail.html");
        }
    }

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

}
  • Solicitud de clase IndexServlet creado correctamente:
package gz.itcast;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class IndexServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");
        PrintWriter writer = response.getWriter();

        String html = "";

        //得到session对象
        HttpSession session = request.getSession(false);
        if(session==null){
            //没有登录成功,跳转到登录页面
            response.sendRedirect(request.getContextPath()+"/login.html");
            return;
        }

        //取出会话数据
        String loginName = (String)session.getAttribute("loginName");
        if(loginName==null){
            //没有登录成功,跳转到登录页面
            response.sendRedirect(request.getContextPath()+"/login.html");
            return;
        }

        html = "<html><body>欢迎回来," +loginName+ "</a></body></html>";


        writer.write(html);
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request, response);
    }
}
  • página creada por el fracaso de la petición falla:
<!DOCTYPE html>
<html>
  <head>
    <title>信息提示页面</title>

    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">

    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

  </head>

  <body>
        <font color = red size = 3>用户名或密码输入错误!请重新输入。</font>
        </br></br>
        <a href="/JavaWeb/login.html">返回登陆页面,重新输入。</a>
  </body>
</html>

jerarquía del proyecto: 
Escribir imágenes describen aquí

Bueno, aquí para abrir el servidor Tomcat, mirada a los resultados:

  • Introduzca la URL de la pantalla de inicio de sesión: 
    Escribir imágenes describen aquí

  • Introduzca el nombre de usuario o contraseña de error: 
    Escribir imágenes describen aquí

  • Ir a la página de error: 
    Escribir imágenes describen aquí

  • Introduzca el nombre de usuario y la contraseña correctos: 
    Escribir imágenes describen aquí

  • Saltar a la página principal del usuario: 
    Escribir imágenes describen aquí

Nota a continuación, volver a cargar la página de inicio del usuario o alguna otra operación, la información del usuario todavía está allí. A menos que la sesión desaparecen, objetos de dominio sesión desaparecerán.

surgen algunos problemas durante el funcionamiento: Sesión de nombre de la clase equivocada, que se encuentra directamente después de la modificación no es suficiente, debe ir a la configuración web.xml, o error 404. Por supuesto, si la redirección procesar el mal url, será de 500 error.

 

Nota: Para evitar la pérdida de la Reimpreso original especiales de https://blog.csdn.net/liu_wenbin/article/details/59531184

 

 

 

 

A continuación se muestra una cancelación de registro:

public class LogoutServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;


    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        request.getSession().removeAttribute("user");
        out.write("注销成功");
        response.setHeader("Refresh", "2;URL="+request.getContextPath());
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}

 

Publicado 66 artículos originales · ganado elogios 8 · vistas 130 000 +

Supongo que te gusta

Origin blog.csdn.net/qq_37889636/article/details/82732079
Recomendado
Clasificación