1.jsp有哪些内置对象? 它们分别有什么作用?
JSP共有以下9种基本内置组件
request 用户端请求,此请求会包含来自GET/POST请求的参数
response 网页传回用客户端的响应
pageContext 网页的属性
session 与请求有关的会话期
application servlet 正在执行的内容
out 用来传送响应的输出
config servlet的构架部件
page JSP网页本身
exception 针对错误网页,未捕捉的例外
2.jsp有哪些动作?作用分别是什么?
<jsp:useBean>:定义jsp页面使用一个JavaBean实例;
<jsp:setProperty>:设置一个JavaBean中的属性值;
<jsp:getProperty>:从JavaBean中获取一个属性值;
<jsp:include>:在JSP页面包含一个外在文件;
<jsp:forward>:把到达的请求转发另一个页面进行处理;
<jsp:param>:用于传递参数值;
<jsp:plugin>:用于指定在客户浏览器中插入插件的属性;
<jsp:params>:用于向HTML页面的插件传递参数值;
<jsp:fallback>:指定如何处理客户端不支持插件运行的情况;
JSP有以下常用的基本动作组合:
1. jsp中使用到JavaBean的标准动作:<jsp:useBean> 定义使用一个JaveBean实例,ID属性定义了实例名称;
<jsp:getProperty>从一个JavaBean中获取一个属性值,并将其添加到响应中
<jsp:setProperty>设置一个JavaBean中的属性值;
2. 在jsp中包含其他jsp文件或者web资源的标准动作:<jsp:include>在请求处理阶段包含来自一个Servlet或者jsp文件的响应,注意与include指令的不同;
3. 将到达的请求转发给另外一个jsp页面或者web资源以便进一步的操作的标准动作:<jsp:forward>将某个请求的处理转发到另一个Servlet或者jsp页面;
4. 在其他标准动作的中间指定参数的标准动作:<jsp:param>对使用<jsp:include>或者<jsp:forward>传递到另外一个Servlet或者jsp页面的请求添加一个传递参数值;
5. 在客户端的页面嵌入java对象(例如applet,是运行在客户端的小java程序)的标准动作:<jsp:plugin>根据浏览器类型为java
3.forward 和redirect的区别
forward是服务器;地址不发生改变; request是同一个请求。
redirect是客户端; 地址发生改变; request不是同一个请求。
4.JSP中include动态与静态的区别?
动态include用jsp:include动作实现
<jsp:include page="included.jsp" flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数
<%@ include file="included.htm" %> 静态INCLUDE用include代码实现,定不会检查所含文件的变化,适用于包含静态页面
动态include的优点和不足:
优点:
1:引入和同步一个动态的页面,使jsp页面更具灵活性
2:能和不同页面之间进行信息的交互和快捷的实现方式。
3:改变了原始的所有页面编码都放在一个jsp上,使不同的功能分别写在不同页里,通过动态include方式引用到页面,更易于编码,更易于管理。
不足:
动态的引入时需要频繁的变化和页面信息的更新和交互,要占用大量的资源开销。降低页面的访问速度。如果在没必要动态引入的情况下,不要使用动态include
应该注意事项:
1:<jsp:include>动作的flush属性必须要定义,不定义会出现转换错误。而且设置的flush必须要为true
2:在<jsp:include>动作中指定的页面必须是同一web应用程序的一部分。如果引入的是非同一web应用的页面将导致请求时错误。
5.JSP的内置对象与方法。
request表示HttpServletRequest对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie, header, 和session数据的有用的方法。
response表示HttpServletResponse对象,并提供了几个用于设置送回 浏览器的响应的方法(如cookies,头信息等)
out对象是javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。
pageContext表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取各种范围的名字空间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。
session表示一个请求的javax.servlet.http.HttpSession对象。Session可以存贮用户的状态信息
applicaton 表示一个javax.servle.ServletContext对象。这有助于查找有关servlet引擎和servlet环境的信息
config表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数。
page表示从该页面产生的一个servlet实例