記憶登錄跳轉可以打打方便用戶使用
getHeader("Referer");方式簡單不過不能處理post的參數
本來都是用在struts,webwork里的,為了容易看明白改寫成jsp方式的
-------------------------------------------------------------------------------------------------------------
member.jsp //session限制訪問頁
<%
String url = ""
if(session.getAttribute("username")==null)
{
url = myRedirect.dealurl(request);//記錄當前地址和請求參數,dealurl將實際url處理了避免和要請求url有干擾,因為會有& 字符
response.sendRedirect("weblogin.jsp?url="+url) ;//重定向到登錄頁面
}
%>
-------------------------------------------------------------------------------------------
weblogin.jsp
<%
String url = request.getParameter("url");
String userid =request.getParameter("userid");
String passWord =request.getParameter("password");
if(userid!=null) //如果是登錄提交執行下面代碼
{
</td>
</tr>
</table>
<%
}
%>
-------------------------------------------------------------------------------------------------------
myRedirect.java
package com.util;
import javax.servlet.http.HttpServletRequest;
import java.util.Enumeration;
public class myRedirect //對url的轉換類
{
public static String dealurl(HttpServletRequest request)
{
String url = "";
url = request.getRequestURL()+"?";
url +=param(request);
if(url.indexOf("&")>-1)
url=url.replaceAll("&","@#@");//實際上就是把有&的字符轉化成了@#@
return url;
}
public static String geturl(String url)//這個是還原方法
{
if(url.indexOf("@#@")>-1)
url=url.replaceAll("@#@","&");
return url;
}
public static String param(HttpServletRequest request)
{
String url = "";
Enumeration param = request.getParameterNames();//得到所有參數名
while(param.hasMoreElements())
{
String pname = param.nextElement().toString();
url += pname+"="+request.getParameter(pname)+"&";
}
if(url.endsWith("&"))
{
url = url.substring(0,url.lastIndexOf("&"));
}
return url;
}
}
這樣登錄瀏覽器就會自動轉到用戶剛剛請求的地址
新聞熱點
疑難解答