Java Web项目里开发获取上个页面连接地址的问题
2014-09-14 10:37
211 查看
近期做的项目有个问题,就是需要获取上个页面连接地址,我用的IE浏览器,在用location.href连接到新地址的时候,在新地址页面用document.referrer的方法获取不到原地址,我测试了下,用的火狐和谷歌都行。有些IE版本可以,有些不支持,在老师的帮助下,在网上找到了解决方式。
这个是我的product-view.jsp页面,我点击结算时需要判断有没有用户ID,如果没有的话我就让他先登录,gotuurl()里的url是你去的目标页面,这个方法创建了一个a标签,然后自动触发点击事件去到目标页面,
function goumai(userid,proid,proprice,number) {
alert("请先登录!");
gotourl("/EBuy/login.jsp");
}
function gotourl(url){
var referLink = document.createElement('a');
referLink.href = url;
document.body.appendChild(referLink);
referLink.click();
}
这时的目标页面login.jsp就可以拿到referrer了(上一个页面地址);
$(function(){
var address=document.referrer;
$("#yincang").attr("value",address);
}
)
然后登陆页面又要转到Servlet的LoginJudge页面,刚好我的Login用的是表单提交我可以用隐藏域把上一个页面的地址再传递到LoginJudge页面,并加上判断再返回原页面。
if(address!=""){
response.sendRedirect(address);
return;
}
如果没有表单验证的话,那么Servlet取referrer的方式是:
String url= request.getHeader("Referer");
System.out.println(url);
String refer=url.substring(url.indexOf(request.getContextPath()));
response.sendRedirect(refer);
因为此时还没学异步提交,只有用这个笨方式了,当然Login页面处理不好会有许多bug,比如你登陆失败,或注册失败之后再输入就算成功了,获取的也还是这个页面就不能跳转了,判断很麻烦。
测试的
Localtion.href和<jsp:forward page="login.jsp"></jsp:forward>在一些IE浏览器里都不能传递referrer。
这个是我的product-view.jsp页面,我点击结算时需要判断有没有用户ID,如果没有的话我就让他先登录,gotuurl()里的url是你去的目标页面,这个方法创建了一个a标签,然后自动触发点击事件去到目标页面,
function goumai(userid,proid,proprice,number) {
alert("请先登录!");
gotourl("/EBuy/login.jsp");
}
function gotourl(url){
var referLink = document.createElement('a');
referLink.href = url;
document.body.appendChild(referLink);
referLink.click();
}
这时的目标页面login.jsp就可以拿到referrer了(上一个页面地址);
$(function(){
var address=document.referrer;
$("#yincang").attr("value",address);
}
)
然后登陆页面又要转到Servlet的LoginJudge页面,刚好我的Login用的是表单提交我可以用隐藏域把上一个页面的地址再传递到LoginJudge页面,并加上判断再返回原页面。
if(address!=""){
response.sendRedirect(address);
return;
}
如果没有表单验证的话,那么Servlet取referrer的方式是:
String url= request.getHeader("Referer");
System.out.println(url);
String refer=url.substring(url.indexOf(request.getContextPath()));
response.sendRedirect(refer);
因为此时还没学异步提交,只有用这个笨方式了,当然Login页面处理不好会有许多bug,比如你登陆失败,或注册失败之后再输入就算成功了,获取的也还是这个页面就不能跳转了,判断很麻烦。
测试的
Localtion.href和<jsp:forward page="login.jsp"></jsp:forward>在一些IE浏览器里都不能传递referrer。
相关文章推荐
- 如何解决在java开发中java代码和jsp页面中出现路径因为项目名称的变化(也就是应用名)的问题?
- 项目开发技巧(五):jsp页面链接中文文件,不能打开中文文件的问题
- Java Web项目连接SqlServer时遇到无法连接的小问题
- 解决ThinkJS项目开发中页面跳转报错问题
- Web开发_问题解决(3)之linux服务器上获取路径问题||jsp页面报错问题
- Web开发_问题解决(3)之linux服务器上获取路径问题||jsp页面报错问题
- 使用IntelliJ IDEA开发Java Web项目时,修改了JSP后刷新浏览器无法及时显示修改后的页面
- Java项目开发问题(-)在前端页面中==与eq的区别
- 项目开发过程中解决页面编码问题
- 使用ASP开发项目时遇到的连接数据库的性能问题。
- 动态获取项目地址ip变localhost问题
- TMS320F28335项目开发记录2_CCS与JTAG仿真器连接问题汇总
- 开发android4.0以上版本网络编程模块的问题 使用URLConnection 怎么连接不上 获取Json字符串
- PHP 使用 $_SERVER['PHP_SELF'] 获取当前页面地址及其安全性问题
- 开发日志:项目没错,但不管怎么修改页面/Java内容,在Tomcat上部署的项目都没有更新的问题
- 用C#在MVC模式下进行Web项目开发,cshtml下三级联动下拉框获取初始值及传值显示的问题
- casperjs模拟登陆https页面获取当前面地址后发现为about:blank问题排查
- java web项目获取路径问题
- 解决开发项目中acvitity获取ViewPager中Fragment对象为null不能进行传值的问题
- java web/tomcat项目中Date类获取时间不正确的问题