近期做的项目有个问题,就是需要获取上个页面连接地址,我用的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。

Java Web项目里开发获取上个页面连接地址的问题的更多相关文章

  1. 实战突击: Java Web项目整合开发(PDF)

    实战突击:  Java  Web项目整合开发(PDF)

  2. 全网最详细的Eclipse和MyEclipse里对于Java web项目发布到Tomcat上运行成功的对比事宜【博主强烈推荐】【适合普通的还是Maven方式创建的】(图文详解)

    不多说,直接上干货! 首先,大家要明确,IDEA.Eclipse和MyEclipse等编辑器之间的新建和运行手法是不一样的. 全网最详细的MyEclipse里如何正确新建普通的Java web项目并发 ...

  3. 如何将Java Web项目部署到服务器上

    转自:(此处更详细)http://blog.csdn.net/gulu_gulu_jp/article/details/50994003 一.前言 前面我们已经尝过了在云服务器上部署代码的甜头了,现在 ...

  4. 全网最详细的IDEA、Eclipse和MyEclipse之间于Java web项目发布到Tomcat上运行成功的对比事宜【博主强烈推荐】【适合普通的还是Maven方式创建的】(图文详解)

    不多说,直接上干货! IDEA [适合公司业务]全网最详细的IDEA里如何正确新建[普通或者Maven]的Java web项目并发布到Tomcat上运行成功[博主强烈推荐](类似eclipse里同一个 ...

  5. Java Web项目在Mac系统上启动时提示nodename nor servname provided的解决办法

    今天在Mac系统上启动Java Web项目的时候,提示了Java.net.UnknownHostException: yangxiaomindeMacBook-Pro.local nodename n ...

  6. 使用Spring Boot来加速Java web项目的开发

    我想,现在企业级的Java web项目应该或多或少都会使用到Spring框架的. 回首我们以前使用Spring框架的时候,我们需要首先在(如果你使用Maven的话)pom文件中增加对相关的的依赖(使用 ...

  7. Java Web项目在Mac系统上启动时提示nodename nor servname provided

    今天一不小心更新了Mac系统,然后在启动Java Web项目的时候,提示了java.net.UnknownHostException: MAC-mini-local nodename nor serv ...

  8. 当java web项目部署到服务器上时,无法将图片等媒体文件保存到服务器的最终奥义

    今天,我在部署web项目至云服务器上(Tomcat8.0)时,突然发现我的应用,无法上传图片,视频等多媒体文件了,一再检查自己的代码逻辑没有问题之后,逐一排查,首先想到的就是看一下控制台打印的日志,日 ...

  9. 初次Java web项目的建立以及与数据库的连接

    题目要求: 1登录账号:要求由6到12位字母.数字.下划线组成,只有字母可以开头:(1分) 2登录密码:要求显示“• ”或“*”表示输入位数,密码要求八位以上字母.数字组成.(1分) 3性别:要求用单 ...

随机推荐

  1. 设计模式:享元模式(Flyweight)

    定   义:运用共享技术有效地支持大量细粒度的对象. 结构图: 内部状态:在享元对象内部并且不会随环境而改变的共享部分. 外部状态:随环境改变而改变的.不可共享的状态. Flyweight类,具体享元 ...

  2. Koala编译less

    下载地址:http://koala-app.com/index-zh.html 用Koala可以用来编译less,软件也是简单明了,平时开着其他软件编辑less,只要打开Koala,勾选“自动编译”后 ...

  3. 1012 最小公倍数LCM

    1012 最小公倍数LCM 基准时间限制:1 秒 空间限制:131072 KB 输入2个正整数A,B,求A与B的最小公倍数. Input 2个数A,B,中间用空格隔开.(1<= A,B < ...

  4. tableView中自定header视图的重用问题

    在UItableView中使用代理方发 - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger ...

  5. sqlserver 在脚本中,为所有字符前没有N标记的字符增加N

    {[^N]}{'[\u4e00-\u9fa5]|[\u4e00-\U9fa5]|[0-9]|[A-Z]} \1N\2

  6. Swift-09-可空链式调用(Optional Chaining)

    我对这个的理解就是:我们有可能会用到其他的属性或者方法,当我们在使用其他的时候,可以使用点语法去访问另一个的属性,这样的使用,就形成了链式访问. 可空链式调用是一种可以请求和调用属性.方法及下表的过程 ...

  7. Group GridView:用于.Net的分组显示的GridView

    我的项目需要一个可以分组显示的GridView,我不会写,上网找了一圈,最终在国外的网站上找到的这个,比较符合我的要求,但它的分页得重写,它写了能分页,但我发现它的分页功能事实上并没有实现,也不知道是 ...

  8. Linux信号处理

    给进程设置僵尸状态的目的是维护子进程的信息,以便父进程在以后某个时间获取.这些信息包括子进程的进程ID.终止状态以及资源利用信息(CPU时间,内存使用量等等).如果一个进程终止,而该进程有子进程处于僵 ...

  9. Unicode和多字节字符集 (MBCS) 杂谈

    这个估计是很多人曾经头疼过的问题,现在的VC版本基本都支持Unicode和多字节字符集 (MBCS),在进行MFC编程时VC的默认设置是unicode字符集.但是我们通常需要做一些代码移植的工作,如果 ...

  10. 第五篇 SQL Server代理理解代理错误日志

    本篇文章是SQL Server代理系列的第五篇,详细内容请参考原文. 正如这一系列的前几篇所述,SQL Server代理作业是由一系列的作业步骤组成,每个步骤由一个独立的类型去执行.在第四篇中我们看到 ...