📜  使用Cookies的Servlet登录和注销示例

📅  最后修改于: 2021-01-09 12:42:10             🧑  作者: Mango

使用Cookies的Servlet登录和注销示例

Cookie是一种存储在客户端的信息。

在上一页中,我们学习了很多关于cookie的知识,例如如何创建cookie,如何删除cookie,如何获取cookie等。

在这里,我们将使用servlet cookie创建一个登录和注销示例。

在此示例中,我们将创建3个链接:登录,注销和配置文件。用户必须先登录才能进入配置文件页面。如果用户已注销,则需要再次登录才能访问配置文件。

在此应用程序中,我们创建了以下文件。

  • index.html
  • link.html
  • login.html
  • LoginServlet.java
  • LogoutServlet.java
  • ProfileServlet.java
  • web.xml




Servlet Login Example



Welcome to Login App by Cookie

Login| Logout| Profile
Name:
Password:
package com.javatpoint;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoginServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
                           throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out=response.getWriter();
        
        request.getRequestDispatcher("link.html").include(request, response);
        
        String name=request.getParameter("name");
        String password=request.getParameter("password");
        
        if(password.equals("admin123")){
            out.print("You are successfully logged in!");
            out.print("
Welcome, "+name); Cookie ck=new Cookie("name",name); response.addCookie(ck); }else{ out.print("sorry, username or password error!"); request.getRequestDispatcher("login.html").include(request, response); } out.close(); } }
package com.javatpoint;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LogoutServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
                        throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out=response.getWriter();
        
        
        request.getRequestDispatcher("link.html").include(request, response);
        
        Cookie ck=new Cookie("name","");
        ck.setMaxAge(0);
        response.addCookie(ck);
        
        out.print("you are successfully logged out!");
    }
}
package com.javatpoint;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ProfileServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
                          throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out=response.getWriter();
        
        request.getRequestDispatcher("link.html").include(request, response);
        
        Cookie ck[]=request.getCookies();
        if(ck!=null){
         String name=ck[0].getValue();
        if(!name.equals("")||name!=null){
            out.print("Welcome to Profile");
            out.print("
Welcome, "+name); } }else{ out.print("Please login first"); request.getRequestDispatcher("login.html").include(request, response); } out.close(); } }


  
  
    
    LoginServlet
    LoginServlet
    com.javatpoint.LoginServlet
  
  
    LoginServlet
    /LoginServlet
  
  
    
    ProfileServlet
    ProfileServlet
    com.javatpoint.ProfileServlet
  
  
    ProfileServlet
    /ProfileServlet
  
  
    
    LogoutServlet
    LogoutServlet
    com.javatpoint.LogoutServlet
  
  
    LogoutServlet
    /LogoutServlet
  

输出量






如果再次单击配置文件链接,则需要先登录。