猿教程 Logo

使用Cookie登录和登出的案例

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

在上一页中,我们了解了很多关于Cookie的信息。 如何创建cookie,如何删除cookie,如何获取cookie等。

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

在这个例子中,我们创建3个链接:登录,注销和配置文件。 用户在登录之前无法转到个人资料页面。如果用户登出,他需要重新登录以访问个人资料。

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

  1. index.html

  2. link.html

  3. login.html

  4. LoginServlet.java

  5. LogoutServlet.java

  6. ProfileServlet.java

  7. web.xml


index.html

<!DOCTYPE html>  
<html>  
<head>  
<meta charset="ISO-8859-1">  
<title>Servlet Login Example</title>  
</head>  
<body>  
  
<h1>Welcome to Login App by Cookie</h1>  
<a href="login.html">Login</a>|  
<a href="LogoutServlet">Logout</a>|  
<a href="ProfileServlet">Profile</a>  
  
</body>  
</html>

 link.html

<a href="login.html">Login</a> |  
<a href="LogoutServlet">Logout</a> |  
<a href="ProfileServlet">Profile</a>  
<hr>

 login.html

<form action="LoginServlet" method="post">  
Name:<input type="text" name="name"><br>  
Password:<input type="password" name="password"><br>  
<input type="submit" value="login">  
</form>

LoginServlet.java

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("<br>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();
	}

}

LogoutServlet.java

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!");
	}
}

ProfileServlet.java

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("<b>Welcome to Profile</b>");
			out.print("<br>Welcome, "+name);
		}
		}else{
			out.print("Please login first");
			request.getRequestDispatcher("login.html").include(request, response);
		}
		out.close();
	}
}

 web.xml

<?xml version="1.0" encoding="UTF-8"?>  
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">  
    
  <servlet>  
    <description></description>  
    <display-name>LoginServlet</display-name>  
    <servlet-name>LoginServlet</servlet-name>  
    <servlet-class>com.javatpoint.LoginServlet</servlet-class>  
  </servlet>  
  <servlet-mapping>  
    <servlet-name>LoginServlet</servlet-name>  
    <url-pattern>/LoginServlet</url-pattern>  
  </servlet-mapping>  
  <servlet>  
    <description></description>  
    <display-name>ProfileServlet</display-name>  
    <servlet-name>ProfileServlet</servlet-name>  
    <servlet-class>com.javatpoint.ProfileServlet</servlet-class>  
  </servlet>  
  <servlet-mapping>  
    <servlet-name>ProfileServlet</servlet-name>  
    <url-pattern>/ProfileServlet</url-pattern>  
  </servlet-mapping>  
  <servlet>  
    <description></description>  
    <display-name>LogoutServlet</display-name>  
    <servlet-name>LogoutServlet</servlet-name>  
    <servlet-class>com.javatpoint.LogoutServlet</servlet-class>  
  </servlet>  
  <servlet-mapping>  
    <servlet-name>LogoutServlet</servlet-name>  
    <url-pattern>/LogoutServlet</url-pattern>  
  </servlet-mapping>  
</web-app>

输出







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


版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: C#环境
本文地址:http://www.yuanjiaocheng.net/Servlet/servlet-login-and-logout-example-using-cookies.html