您现在的位置是:主页 > news > 中山营销型网站设计/百度付费推广有几种方式
中山营销型网站设计/百度付费推广有几种方式
admin2025/5/14 7:17:19【news】
简介中山营销型网站设计,百度付费推广有几种方式,wordpress 主题详解,北京网站设计费用一、请求转发和请求重定向的区别 请求转发和请求重定向又分别称为服务器跳转和客户端跳转 1.1、组件之间可否共享信息不同(本质区别) 当客户端向服务器发送请求时,服务器收到请求后,会将请求封装成一个HttpServletRequest对象re…
一、请求转发和请求重定向的区别
请求转发和请求重定向又分别称为服务器跳转和客户端跳转
1.1、组件之间可否共享信息不同(本质区别)
当客户端向服务器发送请求时,服务器收到请求后,会将请求封装成一个HttpServletRequest对象request,并且所有的请求参数都封装在request对象中,这个对象时Jsp的内置对象可以直接在Jsp中使用。服务器收到请求后,还需要请求别的页面,这是就有两种方式:请求转发和请求重定向。
所谓请求转发,是服务器的行为,请求由服务器转发给另外一个页面处理,如何转发,何时转发,转发几次,客户端是不知道的。请求转发时,从发送第一次到最后一次请求的过程中,web容器只创建一次request和response对象,新的页面继续处理同一个请求。也可以理解为服务器将request对象在页面之间传递。
所谓请求重定向,是客户端的行为,每次请求重定向都是由客户端发起的,也就是说重定向一次,就刷新request对象的属性,之前的request对象的属性值就失效了。
1.2、浏览器地址栏显示不同(表面区别)
请求转发之后地址栏的信息并不会有任何的改变。
请求重定向之后地址栏是会改变的,变为跳转之后的页面地址。
二、Java实现
2.1 Java中的请求转发(服务器跳转)
执行到跳转语句时就会立刻进行跳转
Java代码:
<span style="color:#000000"><code><span style="color:#4f4f4f">request</span>.getRequestDispatcher(<span style="color:#009900">"success.jsp"</span>).forward(<span style="color:#4f4f4f">request</span>,<span style="color:#4f4f4f">response</span>);</code></span>
- 1
在jsp页面中你也会看到通过下面的方式实现转发:
<span style="color:#000000"><code><span style="color:#006666"><<span style="color:#4f4f4f">jsp:forward</span> <span style="color:#4f4f4f">page</span>=<span style="color:#009900">"success.jsp"</span> /></span></code></span>
- 1
2.2 Java中的请求重定向(客户端跳转)
response.sendRedirect("apage.jsp");
不能传递request 范围的属性 ,但是可以通过地址重写的方式向跳转页传递参数,因为该方法执行完之后就相当于一次http request 的结束,这是服务器会向客户端发送302 状态码和新的url ,告诉客户端重新发送request 请求到新的url ,然后客户端照此执行,执行即新的请求响应流程开始,服务器再重新创建HttpServletRequest 对象和HttpServletResponse 对象,此时两个请求已经不在一个线程了,所以request 和response 对象都不是开始的那个了;response.setHeader("refresh","2;URL=index.jsp")
2 秒后跳转到其他页面;<a href="http://www.baidu.com"> 百度</a>
超链接- 表单提交
三、路径问题
转发和重定向的URLString前有加 / 为绝对路径 反之为相对路径
3.1绝对路径
1、重定向的 / 表示:http://服务器ip:端口/
<span style="color:#000000"><code>response<span style="color:#009900">.sendRedirect</span>(<span style="color:#009900">"/Manager/index.jsp"</span>)</code></span>
- 1
生成的地址:web服务器本身地址+参数生成完整的URL 即:http://localhost:8080/Manager/index.jsp
2、请求转发的 / 表示:http://服务器ip:端口/项目名
<span style="color:#000000"><code><span style="color:#4f4f4f">request</span>.getRequestDispatcher(<span style="color:#009900">"/index.jsp"</span>).forward(<span style="color:#4f4f4f">request</span>, <span style="color:#4f4f4f">response</span>); </code></span>
- 1
生成的地址:http://localhost:8080/项目名/index.jsp
重定向是浏览器发来的,只知道发到某个服务器,但是不知道发到服务器的哪个project,所以需要自己用代码声明; 而请求转发是服务器某个project内部的转发,转来转去都是在某个project内部,所以不需要手动声明项目名。
3.2 相对路径
假设通过表单请求指定的Url资源 action="LoginServlet"
则表单生成的请求地址为:http://localhost:8080/项目名/LoginServlet
1、请求重定向:response.sendRedirect("Manager/index.jsp")
生成相对路径:http://localhost:8080/项目名/Manager/index.jsp
2、请求转发:相对路径情况下生成的完整URL与重定向方法相同。