参考资料 :1、 http://www.myexception.cn/java-web/21981.html
2、http://www.myexception.cn/web/605128.html
实现思路:
1、获取历史浏览页面路径
2、存储路径
3、登陆成功后跳转到路径
代码如下:
package com.tool;
import javax.servlet.http.HttpServletRequest;
public class RequestUrl {
/**
* 获取完整路径
* @param request
* @return
*/
public static String getRequestUrl(HttpServletRequest request){
if (request == null) {
return "";
}
String url = "";
url = request.getContextPath();
url = url + request.getServletPath();
java.util.Enumeration names = request.getParameterNames();
int i = 0;
// String requestPageUrl = " ";
if (names != null) {
while (names.hasMoreElements()) {
String name = (String) names.nextElement();
if (name.equals( "requestPageUrl") || name.indexOf( "log") != -1) {
// requestPageUrl = request.getParameter(name);
continue;
}
if (i == 0) {
url = url + "?";
}
else {
url = url + "&";
}
i++;
String value = request.getParameter(name);
if (value == null) {
value = "";
}
url = url + name + "=" + value;
}
}
try {
java.net.URLEncoder.encode(url, "ISO-8859");
}
catch (Exception e) {
}
return url;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
在前台jsp里面隐含一个 <input type= "hidden " name= "requestUrl " >
在提交的后台action 或则 servlet中,调用我刚写的这个方法,就可以把当前的url放到 requestUrl里了啊,登陆后在跳到这个url就可以了
request.getParameterNames()方法
request.getParameterNames()方法是将发送请求页面中form表单里所有具有name属性的表单对象获取(包括button).返回一个Enumeration类型的枚举.
通过Enumeration的hasMoreElements()方法遍历.再由nextElement()方法获得枚举的值.此时的值是form表单中所有控件的name属性的值.
request.getParameter()方法
获取表单控件的value值.