jsp自动跳转的几种方法

需求及前提:
1. 当前页面是项目的第一个页面(welcome.jsp)
2. 访问项目,先进入welcome.jsp后,该页面自动通过springMVC请求跳转到index页面
3. 直接访问localhost:8080/common/index 是可以直接访问index页面的

一:用js跳转
1. onload + location.href或者location.replace
关键代码:
。。。
<%
String path=request.getContextPath();
String basepath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
。。。
function commit() {
location.href="<%=basepath%>common/index";
}
。。。
<body οnlοad="commit()">
小结:
1.网上说在head中加入<base href="<%=basepath%>">,就可以该路径为相对路径访问,但我试了不好使,所以我写成"<%=basepath%>common/index"这样的绝对路径(有保障)
2.basepath 在jsp中很有用
3.调用js函数 别忘了加括号,οnlοad="commit"就不行,关键是没有报错信息

2.onload + form.submit()
关键代码:
。。。
function commit() {
var form = document.getElementById("indexform");
form.action = "<%=basepath%>common/index";
form.submit();
}
。。。
<body onload = "commit()">
<form id="indexform"></form>
。。。
小结:
我看网上有人这么写提交form表单:
with(document.getElementById("queryFunction")) {
action="new.jsp";
method="post";
submit();
}
with的作用是设置代码在特定对象中的作用域。
虽然这么写好看了许多,但是with是运行缓慢的代码块,尽量避免使用。

3. a标签 + js事件触发
关键代码:
<a href="<%=basepath%>common/index"></a>
<script language="javascript">
var comment = document.getElementsByTagName('a')[0];
if (document.all) {
// For IE
comment.click();
}else if (document.createEvent) {
//FOR DOM2
var ev = document.createEvent('MouseEvents');
ev.initEvent('click', false, true);
comment.dispatchEvent(ev);
}
</script>
小结:
这段代码判断浏览器的方式可以记一下
也算是一种思路,试了,同样好用

二:jsp方式
1. jsp:forward
关键代码:
<jsp:forward page="/common/index"></jsp:forward>
小结:
网上说:它的底层部分是由RequestDispatcher来实现的,因此它带有RequestDispatcher.forward()方法的印记(我没深究,先记着吧)

2. response.sendRedirect
关键代码:
response.sendRedirect(basepath + "common/index");
小结:
response.sendRedirect是一种“客户端跳转”方式,总是和它对应的是
RequestDispatcher.forward(服务器跳转,或者称为“转发”。这个写在jsp里,执行的时候是会报错的)




  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值