1. ホーム
  2. Web プログラミング
  3. JSP プログラミング

jsp cookie+sessionで簡単な自動ログイン。

2022-01-18 22:44:50

この例では、参考のため、簡単な自動ログインを実現するための jsp cookie+session の具体的なコードを、以下のように共有します。

ブラウザを閉じても、クライアントブラウザのメモリに保存されているセッションクッキーが無効になるだけで、サーバー側のセッションオブジェクトは無効にはなりません。
有効期限を設定した場合、ブラウザはクッキーをハードディスクに保存し、ブラウザを閉じてから再び開くと、設定した有効期限を過ぎるまでクッキーは有効です。

ログイン.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
 <head>
  <title>login</title> 
 </head>
 
 <body> 
 <form action="sucess.jsp" method="post">
 Username: <input name="username" /><br/>
 
 <%--<input type="checkbox" name="time" />Remember username --%>
   
   <input type="submit" name="submit" id="submit" value="login"/>
 </form>
 <% 
 //read session value
 String val= (String)session.getAttribute("name");
 //If session does not exist
 if(val==null){
  val ="does not exist";
 }
 out.print("current\""+val+"\"user can automatically login");
 %>
 
 </body>
</html>

success.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>main</title>
</head>
<body>
<%
 //Get username
 String name = request.getParameter("username");
 //Determine if the username exists
 if(name ! = null && !name.trim().equals("")){ 
 //String[] time = request.getParameterValues("time");
 
 //set the session value, (readable by the login page)
 session.setAttribute("name", name);
 
 //set Cookie
 Cookie Cookie = new Cookie("name",name); 
 Cookie.setMaxAge(30*24*3600); //set cookie valid for 30 days   
 response.addCookie(Cookie); //save the cookie on the client side
 
 out.println("welcome: " + name+"Welcome to login");
 } 
 else{
 response.sendRedirect("main.jsp");
 }
 
%>
<a href="login.jsp" >relogin</a>
</body>
</html>

main.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>main</title>
</head>
<body>

<%
String name=(String)session.getAttribute("username");

//Get the cookie
Cookie[] cookies = request.getCookies();

//cookie exists
 if(cookies ! = null && cookies.length > 0){
 for(Cookie cookie:cookies){
  //Get the name of the cookie
  String cookieName = cookie.getName();
  // determine if it is equal to name
  if(cookieName.equals("name"){
  //Get the value of the cookie
  String value = cookie.getValue();
  name = value;
  }
  }
 out.println("welcome again: " + name+"Welcome to login");
 
// *************************
 // Another way to write
 
 String v=null;
 for(int i=0;i<cookies.length;i++){
 if(cookies[i].getName().equals("name"){
 v=cookies[i].getValue();
 }
 }
 if(v!=null){
 out.println(" Hello World "+v);
 }
 
 }
//*************************
 else {
 response.sendRedirect("login.jsp");
 }

%>


<a href="login.jsp" >relogin</a>

</body>
</html>

login.jspを実行します。

以上が今回の記事の内容ですが、皆様の学習の一助となり、スクリプトハウスをより一層応援していただければ幸いです。