欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

jsp自动跳转的几种方法

程序员文章站 2023-08-23 11:06:50
需求及前提:   1. 当前页面是项目的第一个页面(welcome.)   2. 访问项目,先进入welcome.jsp后,该页面自动通过springmvc请求跳转到index页...

需求及前提:

 

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里,执行的时候是会报错的)