当客户端请求提交到服务器的jsp处理的时候这个jsp可以携带请求和响应对象转移到web应用的另一处进行处理在另外一处进行处理后,产生结果页面响应给客户端浏览器此时客户端浏览器可以看到结果页面,但URL无变化所以不知道服务器端经过几层处理
重定向:redirect
一个web资源收到客户端请求后,通知浏览器去访问另外一个Web资源(浏览器进行2次请求),称之为重定向。
当客户端浏览器提交到服务器的JSP处理的时候这个JSP返回一个响应:去请求另外一次的URL此时客户端浏览器会再次发出一个新的请求到这个新的地址新的URL地址负责为浏览器产生响应这时浏览器看到的URL是第二次请求所对应的URL地址
两者的区别,转发和重定向的选择
重定向的速度比转发慢,因为浏览器还得发出一个新的请求,如果在使用转发和重定向都无所谓的时候建议使用转发。
因为转发只能访问当前WEB的应用程序,所以不同WEB应用程序之间的访问,特别是要访问到另外一个WEB站点上的资源的情况,这个时候就只能使用重定向了。
1.forward是服务器内部转发,而redirect是通过客户端进行转发
2.如果使用forward转发的话,客户端URL地址不会改变,但是redirect请求的话,URL地址会变
3.如果forward进行转发,转发页面和被转发页面处于一个request请求内,而
说说我的看法。
首先,我也遇到了和你类似的情况。其次,我检查后发现jsp的代码和html的代码都没有问题。但为什么会出现这样的问题呢?原因就在于我用eclipse来运行html文件是选用打开方式中的web浏览器,也就是下图被选中的部分:
事实上,如果选择这种方式来打开html文件(它里面有一个表单,单击提交按钮后,会将输入框里面的内容传给jsp文件,并在jsp文件中显示出来),那么点击提交按钮后就会得到jsp文件的代码。
但是如果你选择如下图被选中的打开方式:
那么用这种方式打开html文件并跳转到jsp文件后,显示的就不会是jsp的源代码了,而是实际上这段代码将要输出的内容。
在html或者jsp中d出文件另存为的对话框,可以调用document.execCommand方法调用JS方法document.execCommand即可在前台页面调出另存为对话框,并将将服务器上存放的文件保存到本地。HTML页面另存为对话框DEMO.rar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
代码:
<script language='javascript' type='text/javascript'>
function getimg() //另存为存放在服务器上图片到本地的方法
{
event.returnValue=false
show.window.location.href=imgSrc.src
timer=setInterval(checkload,100)
}
function checkload()
{
if(show.readyState!="complete")
{
//调用document.execCommand方法,'Saveas'表示打开文件另存为对话框命令
show.document.execCommand('SaveAs')
clearInterval(timer)
}
}
</script>
<img id="imgSrc" width="320px" height="200px" src="test.bmp" alt=""/></br>
<input id="btnSaveAs" type="button" value="另存为上图" onclick="getimg()"/>
<iframe src="" name="show" style="width:0height:0"></iframe>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)