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を実行します。
以上が今回の記事の内容ですが、皆様の学習の一助となり、スクリプトハウスをより一層応援していただければ幸いです。
関連
-
jsp session.setAttribute() と session.getAttribute() の使用例について説明します。
-
jsp レスポンスオブジェクトのページリダイレクト、時刻の動的表示
-
JSPの静的インポートと動的インポートの使い分け詳細説明
-
ページメッセージのポップアップボックスの右下を実現するJSP
-
数字当てゲームの jsp+servlet 実装
-
JSP組み込みオブジェクト要求共通使用法詳細
-
JSPの式言語の基本を説明する
-
サーバーへのファイルアップロード機能を実現するJSP+サーブレット
-
サーブレット+jspでログインできないようにフィルタを実装する
-
ファイルアップロード機能のJSP実装
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン