ユーザーの利便性のためにメモリログインジャンプを入力可能
getHeader("Referer"); メソッドは単純ですが、post のパラメータを扱うことができません。これをわかりやすくするために、jsp メソッドに書き直しました
。 ---------- -------------------------------------- ---------- -------------------------------------- -------
member.jsp //セッション制限付きアクセスページ
<%
文字列 URL = ""
if(session.getAttribute("ユーザー名")==null)
{
url = myRedirect.dealurl(request);//現在のアドレスとリクエストパラメータを記録します。dealurl は、& 文字があるため、リクエストされた URL との干渉を避けるために実際の URL を処理します。
response.sendRedirect("weblogin.jsp?url="+url);//ログインページにリダイレクトします
}
%>
-------------------------------------------------- --------------------------------------
weblogin.jsp
<%
文字列 url = request.getParameter("url");
文字列 userid =request.getParameter("userid");
文字列パスワード =request.getParameter("パスワード");
if(userid!=null) //ログインして送信する場合は、次のコードを実行します
{
if (ログイン成功)
{
session.setAttribute("ユーザーID",ユーザーID);
out.println("<script>alert('ログイン成功、ご訪問ありがとうございます');self.location.href='"+myRedirect.geturl(url)+"';</script>");//リダイレクト要求された URL .geturl(url) は、変換されたアドレスを実際の URL に変換します。
}それ以外{
out.println("<script>alert('ユーザー名またはパスワードが間違っています');history.back();</script>");
}
}else{// ログイン送信ではない場合、現在のログイン インターフェースが表示されます。
%>
<table width="311" height="162" border="0" align="center" cellpadding="0" cellpacing="0">
<tr>
<td width="311" height="162" align="center"> まだログインしていません。まずログインしてください。<br>
<table width="155" border="0" cellpadding="0" cellpacing="5" class="font12">
<form name="loginfrm" action="weblogin.jsp" method="post" id="loginfrm" onSubmit="return checkfrm();">
<tr>
<td width="41" height="33" valign="bottom">口座番号:</td>
<td width="99" valign="bottom"><input name="userid" type="text" class="textstyle" id="userid" size="12" style="height:20"></た、>
</tr>
<tr>
<td>パスワード:</td>
<td><input name="password" type="password" class="textstyle" id="password" size="12" style="height:20;width:94"></td>
</tr>
<tr align="center" valign="bottom">
<td height="21"colspan="2"> <input type="submit" name="Submit" value="Login">
<a href="reg.jsp" target="_blank">登録されていません</a>
</tr>
<tr align="center">
<td colspan="2" class="font14"><strong><a href="#" onclick="MM_openBrWindow('requestpwd.jsp','pwd','width=300,height=200');return false;">パスワードを取得します</a></strong></td>
</tr>
<input name="url" type="hidden" value="<%=url%>">保存するにはここに非表示が必要です。そうでない場合、送信は失われます。
</form>
</テーブル>
</td>
</tr>
</テーブル>
<%
}
%>
------------------------------------------------ -------------------------------------------------- -----
myRedirect.java
パッケージ com.util;
インポート javax.servlet.http.HttpServletRequest;
import java.util.Enumeration;
public class myRedirect //URL の変換クラス
{
public static String dealurl(HttpServletRequestリクエスト)
{
文字列 URL = "";
url = request.getRequestURL()+"?";
URL +=param(リクエスト);
if(url.indexOf("&")>-1)
url=url.replaceAll("&","@#@");//実際には、& を含む文字は @#@ に変換されます。
URLを返します;
}
public static String geturl(String url)//これが復元メソッドです
{
if(url.indexOf("@#@")>-1)
url=url.replaceAll("@#@","&");
URLを返します;
}
public static String param(HttpServletRequest リクエスト)
{
文字列 URL = "";
Enumeration param = request.getParameterNames();//すべてのパラメータ名を取得します
while(param.hasMoreElements())
{
文字列 pname = param.nextElement().toString();
URL += pname+"="+request.getParameter(pname)+"&";
}
if(url.endsWith("&"))
{
url = url.substring(0,url.lastIndexOf("&"));
}
URLを返します;
}
}
このようにして、ブラウザは、ログイン時にユーザーが要求したアドレスに自動的にアクセスします。