jsp自动跳转的几种方法
需求及前提:
1. 当前页面是项目的第一个页面(welcome.)
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="https://blog.csdn.net/yunduanyou/article/details/<%=basepath%>common/index";
}
。。。
小结:
1.网上说在head中加入
2.basepath在jsp中很有用
3.调用js函数 别忘了加括号,onload="commit"就不行,关键是没有报错信息
2.onload + form.submit()
关键代码:
。。。
function commit() {
var form = document.getelementbyid("indexform");
form.action = "https://blog.csdn.net/yunduanyou/article/details/<%=basepath%>common/index";
form.submit();
}
。。。
。。。
小结:
我看网上有人这么写提交form表单:
with(document.getelementbyid("queryfunction")) {
action="new.jsp";
method="post";
submit();
}
with的作用是设置代码在特定对象中的作用域。
虽然这么写好看了许多,但是with是运行缓慢的代码块,尽量避免使用。
3. a标签 + js事件触发
关键代码:
<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
关键代码:
小结:
网上说:它的底层部分是由requestdispatcher来实现的,因此它带有requestdispatcher.forward()方法的印记(我没深究,先记着吧)
2. response.sendredirect
关键代码:
response.sendredirect(basepath + "common/index");
小结:
response.sendredirect是一种“客户端跳转”方式,总是和它对应的是
requestdispatcher.forward(服务器跳转,或者称为“转发”。这个写在jsp里,执行的时候是会报错的)