我简单说下浏览器的工作原理。浏览器发出一个地址请求到服务器,服务器根据这个地址找到相应的页面资料返回给浏览器,最后浏览器将信息显示给用户。
但服务器内部跳转的时候,对浏览器来说是不知道的,它只负责把服务器返回的信息显示出来。
在java web里
servlet的doGet或doPost中用response.sendRedirect("重定向的地址")
在jsp中也可以用response.sendRedirect("重定向的地址")
jsp中还可以使用特定的标签来重定向。
客户端跳转:服务器端将请求结果返回给客户端,客户端向服务器发出另一次请求。在客户端跳转过程中是两次不同的请求。在地址栏中显示的是最后一次请求地址。客户端跳转可以进行站外跳转。
1、链接跳转:<a href=””></a>
2、表单提交
3、Response.sendRedirect(“3.jsp”)
4、<mata http-equiv=”refresh”, content=”32.jsp”/>
5、response.setHeader(“refresh”,” 32.jsp”)
6、客户端跳转“/”代表服务器跟路径webapps
服务器端跳转(容器内跳转):能够自动的在服务器内部进行跳转,这种跳转对用户来说是透明的。两次跳转时同一个request,在地址栏中显示的事第一次页面地址。
只能进行站点内跳转。
1、<jsp:forward page=””/>
2、pageContext.forward()
3、 request.getRequestDispatcher("1.jsp").forward(request,response)
3、服务器端跳转“/”代表站点根路径
请求转发也就是服务器跳转,是服务器内部的操作,浏览器不知道服务器内部发生了这个操作,所以浏览器以为还是访问的是第一次请求的地址,因此地址栏不变,整个过程是在一个请求响应周期内。
请求重定向既客户端跳转,是在浏览器第一次发送请求后,服务器返回一个响应给浏览器,让浏览器去访问另一个地址,这样浏览器就知道了他该跳转了,所以他就去请求服务器返回给他的地址,他的地址栏就发生了变化,而这个过程是发生在两个请求响应周期里的
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)