㈠ java 如何实现页面之间跳转浏览器地址栏URL不变
url没有变化是因为这个跳转是在服务器内部跳转的。
我简单说下浏览器的工作原理。浏览器发出一个地址请求到服务器,服务器根据这个地址找到相应的页面资料返回给浏览器,最后浏览器将信息显示给用户。
但服务器内部跳转的时候,对浏览器来说是不知道的,它只负责把服务器返回的信息显示出来。
在java web里
servlet的doGet或doPost中用response.sendRedirect("重定向的地址");
在jsp中也可以用response.sendRedirect("重定向的地址");
jsp中还可以使用特定的标签来重定向。
㈡ web中的跳转语句 java中的跳转语句
在JSP中,跳转页面有两种方式:1.forward跳转: 2.response跳转:response.sendRedirect("跳转页面地址");两种跳转的区别如下:1.forward跳转:a.服务器端跳转,地址栏不改变;b.执行到跳转语句后马上无条件跳转,之后的代码不再执行(跳转之前一定要释放全部资源);c.request设置的属性在跳转后的页面仍可以使用;d.使用 传递参数。裂哗岩2.response跳转:a.客户端跳转,地址栏改变;b.所有代码执行完毕后跳转;c.跳转后的页面不能使用上一个页面的request属性;d.使用地址重写传递参数(response.sendRedirect("URL?参数名=参数值"))。
一、跳转到新页面,并且是在新窗口中打开页面:
function openHtml
{
//do someghing here...
window.open("xxxx.");
}
window是一个javascript对象,可以用它的open方法,需要注意的是,如果这个页面不是一相相对路径,那么要加“://”,比如:
function openHtml
{
window.open("[]");
}
二、在本页面窗口中跳转:
function totest2
{
window.location.assign("test2.");
}
如果直接使用location.assgin也可以,但是window.location.assign更合理一些,当前窗口的location对象的assign方法。
另外,location对象还有一个方法replace也可以做页面跳转,它跟assign方法的区别在于:
replace 方法不会在 History 对象中生成一个新的纪录。当使用该方法时,新的 URL 将覆盖 History 对象中的当前纪录。
页面跳转如果不芦禅是在程序里面的话都是通过a标签链接跳转的,而且a标签的跳转方式有
_blank是最常见的链接方式,表示超链接的目标地址在新建窗口中打开;
_self表示“相同窗口”。点击链接后,地址栏不变;
_top表示整页窗口;
_parent表示父窗口。
response.sendRedirect
重定向本质是两次请求,附带的参数会丢失,但是看你程序是从session里取数据,所以在本次会话内,你的数据有效,questions能正常取到数据,下面显示会正常。如果是request 作用域内,就会取不到。
//腾讯网的适配代码
//其他的适配代码(后缀名为.js肆御并引用至网页)
JSP跳转到Servlet:
1. 注意,这里的url不能直接写你的servlet名称,而要填写web.xml里该servlet的url-pattern,即“/xxxServlet"形式。有斜杠,斜杠,杠。另外,这种方式直接跳走了,在servlet里写上跳转回原页面的语句,就会报错java.io.IOException: Stream closed。
2. 同上,url有斜杠。这种方式的好处是servlet里不用写跳转语句,会自动回到原来页面,因为这是一个动态包含文件命令。另外,该方式还能传递多个参数,你懂的。
3.借助javascript.如
Servlet跳转到JSP
1.response.sendRedirect("URL")跳转后浏览器地址栏变化。可以将页面跳转到任何页面,不一定局限于本web应用中。
这种方式要传值出去的话,只能在url中带parameter或者放在session中,无法使用request.setAttribute来传递。
2.request.getRequestDispatcher("/a.jsp")。dispatcher .forward(request, response);
Servlet页面跳转的路径是相对路径。forward方式只能跳转到本web应用中的页面上。跳转后浏览器地址栏不会变化。
使用这种方式跳转,传值可以使用三种方法:url中带parameter,session,request.setAttribute
你可以在jsp页面使用超链接标签 例如 点击我跳转
也可以在后台servlet中使用 重定向 例如 response.sendRedirect("xxx.jsp");
也可以使用转发 例如 request.getRequestDispatcher("xxx.jsp").forward(request.response);
标签:作文经典 上一篇:昆明的诗句 写昆明的诗句 下一篇:偶尔的近义词反义词 偶尔的反义词㈢ 在java web开发中,凡是能实现页面跳转的方法有哪些具体列出这些方法的实现语句
一、跳转到新页面,并且是在新窗口中打开页面:
function openHtml()
{
//do someghing here...
window.open("xxxx.html");
}
window是一个javascript对象,可以用它的open方法,需要注意的是,如果这个页面不是一相相对路径,那么要加“http://”,比如:
function openHtml()
{
window.open("http://www..com");
}
二、在本页面窗口中跳转:
function totest2()
{
window.location.assign("test2.html");
}
如果直接使用location.assgin()也可以,但是window.location.assign()更合理一些,当前窗口的location对象的assign()方法。
另外,location对象还有一个方法replace()也可以做页面跳转,它跟assign()方法的区别在于:
replace() 方法不会在 History 对象中生成一个新的纪录。当使用该方法时,新的 URL 将覆盖 History 对象中的当前纪录。
㈣ Javaweb的跳转问题
通俗来说,form表单是写在前端页面(如html、jsp)上的,<form>有一个‘action’的参数,这里需要填写目标地址,如果不填写的话客户端是不知道往哪里发送信息的,因此form是由客户端主动发送给服务器(具体的地址就是action索要填的值)的。这属于客户端向服务器发起请求,代码表现为:
<form
action='10086.jsp' method='get' >
…………
</form>
就像你打10086,你问问题(提交表单),客服(服务器)会根据你的问题(form)反馈答案。同理,正常来说,后台接收到前端发来的信息后,会进行一系列操作,最后发送结果回去。
====分割线====
而转发和重定向的代码是写在后台代码里的,因为并不是所有的业务都由同一个后台页面处理(例如统一管理平台),前端form填的是页面A,但实际上页面A在接收到form后并不进行处理,而是通过转发或者重定向的方式,发送给页面B,页面B处理后会把结果发送给A,然后A再反馈给前端。因此,这属于服务器向服务器发起请求
转发的代码是request.getrequestdispatcher (10086-2.jsp).forward(request,response),特点是url不会变,客户端无法判断是form表单的后台页面在处理还是别的页面在处理(你在浏览器上是无法知道10086-2.jsp这个页面的存在)。就像10086客户有时候会让你稍等,等待期间你是不知道他是在敲电脑还是找外援寻求答案。
重定向的代码是response.sendRedirect("10086-2.jsp"),特点是url会变。浏览器的地址栏会明显看到地址发生改变。就像10086客服告诉你该问题不是他负责的范围,然后帮你转接到其他相应的客户。
至于怎么判断啥时候使用转发,啥时候使用重定向,还请理解jsp的四大作用域之后再回头思考。