面试题宝典01
Jsp的重定向与转发的流程有什么区别
重定向是客户端行为,转发是服务器端行为
重定向时服务器产生两次请求,转发产生一次请求。重定向可以转发到项目以外的任何网址,转发只能在项目里转发。
重定向会导致request对象信息丢失。转发则不会。
转发的url不会变,request.getRequestDispatcher("页面").forward(request,response);
重定向的url会改变,response.getRedirect();
重定向通过response.getRedirect()方法实现的,是在客户端执行的,重定向时服务器产生两次请求,可以跳转到项目以外的任何网址,会导致request对象丢失,url会改变(两次请求:客户端向服务器发送请求,服务器接收到请求返回给客户端(一次),客户端将再次发送请求给新的地址,服务器端返回结果给客户端(两次))。
转发通过request.getRequestDispatch().forward()方法实现的,在服务器端执行,转发会产生一次请求,只能在当前项目里跳转,request对象信息不会丢失,url不会改变
Jsp和Servlet的区别
1.jsp有HTML代码和jsp标签组成,可以方便的编写动态网页
2.servlet完全由java程序代码组成,擅长于流程控制和事务处理。
3.jsp是servlet技术的扩展,本质上就是servlet的简易方式。
4.jsp编译后是“类servlet”
5.jsp侧重于视图,servlet主要用于逻辑控制
Jsp的九大对象,三大指令,七大动作
九大内置对象
pageContext:只对当前jsp页面有效,里面封装了基本的request和session的对象
request:对当前请求进行封装
session:浏览器会话对象,浏览器范围内有效
application:应用程序对象,对整个web工程有效
out:页面打印对象,在jsp页面打印字符串
response:返回服务器端信息给用户
config:单个servlet配置对象,相当于servletConfig对象
page:当前页面对象,也就是this
exception:错误页面的exception对象,如果指定的是错误页面,这个就是异常对象
三大指令
page:是针对当前页面的指令
include:用于指定如何包含另一个页面
Taglib:用于定义和指定自定义标签
七大动作
forward:执行页面跳转,将请求的处理转发到另一个页面
param:用于传递参数
include:用于动态引入一个jsp页面
plugin:用于下载javaBean或applet到客户端执行
useBean:使用javaBean
setProperty:修改javaBean实例的属性值
getProperty:获取javaBean实例的属性值