1.request对象
request对象是最常用的JSP内置对象之一,其中包含了有关浏览器请求的信息
可以在JSP页面中通过调用request对象的方法来获取请求中的相关数据以及浏览器的有关信息。
request对象用于处理请求的方法有很多
request的getPaeameter()方法是最为常用的,使用此方法可以获得请求中所提交的参数值。
2.重点总结
(1)所谓内置对象就是由Wed容器加载的一组实例,在JSP页面可直接使用
(2)request对象主要用于处理客户端用户提交的请求信息。
(3)response 对象与request对象相对应,它可用于控制相应参数,获取相应流对象。
(4)response对象的sendRedirect()方法用于将请求重定向到一个新的URL上。
(5)重定向在客户端发挥作用,通过浏览器重新请求新地址,实现页面转向,在地址栏中可以显示转向后的地址,不能共享上一次请求中的数据。
(6)转发在服务器端发挥作用,指在服务器内部控制权的转移,通过forward()方法将请求在多个页面间进行传递。浏览器的地址栏不会显示出转向后的地址,可以共享请求中的数据。
(7)会话可以为每个客户端独立地保持信息,通过sessionid这一唯一标识来区分每个客户端。
(8)JSp提供了文件引用指令include.可以将一些共性的内容写入一个单独的文件中,然后通过include指令引用,从而降低代码的余,并且修改也更加方便。
3.转发余重定向
转发:从程序运行的角度理解,即当客户端发送一个请求到服务器后,Wed服务器在容器内部完成请求跳转,然后将最终的结果发送给浏览器,整过过程都是在容器内部完成的。而对应到客户端,无论服务器内部如何处理,作为浏览器都只有提交了一个请求,因而客户端的URL地址不会发生变化。
重定向:当用户登录成功后,使用的是response对象的sendRedirect()方法。那么该方法执行的结果是客户端重新向服务器请求一个地址链接,由于是发送新的请求,因而上次请求中的数据将随之丢失这种行为成为重定向。由于服务器重新定向了URL,因而在客户端浏览器中显示的是新的URL地址,所以重定向可以理解为浏览器至少提交了两次请求。
相同点:都可以进行页面跳转。
不同点:
转发:可以携带请求参数,是第一次请求,转发的动作是服务器行为,地址栏不会发生变化。
重定向:可以理解为客户端发生了两次请求,第一次携带的数据丢失,地址栏会发生变化,是客户端行为。诺需要传递参数需要显示在路径后拼接参数