关于jsp的一些问题和解答

1.forward和redirect的区别
2.JSP的内置对象,分别作用是什么
3.JSP有哪些动作,分别作用是什么
4.JSP中动态Include和静态include的区别
5.JSP和servlet的关系
6.JSP的执行原理和执行过程
 
以下是我自己整理的答案:
1.forward是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址,他是不会改变Request的值,如果你需要在下一个页面中能从中获取新的信息的话,你可以Request.setAttribute()来放置一些标志,这样从下一个页面中获取。
redirect是完全的跳转,浏览器将会得到跳转的地址, 并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,forward更加高效,在forward可以满足需要时,尽量使用sendRedirect()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用 HttpServletResponse.sendRequest()方法。
 
2.九大内置对象:
(1)、request:客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。
(2)、response:response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。
(3)、session:session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个webApplication开始,直到客户端与服务器断开连接为止。它是HttpSession类的实例。
(4)、out:out对象是JspWriter类的实例,是向客户端输出内容常用的对象。
(5)、page:page对象就是指向当前JSP页面本身,有点象类中的this指针,它是java.lang.Object类的实例。
(6)、application:application对象实现了用户间数据的共享,可存放全局变量。它开始于服务器
的启动,直到服务器的关闭,它是ServletContext类的实例。
(7)、exception:exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。他实际上是Java.lang.Throwable的对象。
(8)、pageContext:pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本类名也叫pageContext。
(9)、config:config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)。
 
3.jsp共有6中基本动作:
(1)、jsp:include,在页面被请求的时候引入一个文件;
(2)、jsp:useBean,寻找或者实例化一个JavaBean;
(3)、jsp:setProperty,设置JavaBean的属性;
(4)、jsp:getProperty,输出某个JavaBean的属性;
(5)、jsp:forward,把请求转到另一个也页面,请求转发;
(6)、jsp:plugin,根据浏览器类型为Java插件生成Object或Embed标记。
 
4.动态include用jsp:include动作实现 <jsp:include page="included.jsp" flush="true" />它 总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数;
静态INCLUDE用include伪码实现,不会检查所含文件的变化,适用于包含静态页面<%@ include file= "included.htm" %>;
动态include在使用的时候会先解析要包含的页面,然后再显示,而静态则不会解析而直接显示,具体解释如下:
<%@ include file= "" %>一般是附加被重用的代码,这里的附加是把源码原封不动的附加过来,所以在要导入的文件中不能带多余的标签或者当前jsp文件重复的东西,如不要包含<html>、<body>这样的标签。
<jsp:include page="xx.jsp" flush="true" />标签是导入一个重用文件,这个文件在导入的时候会经过编译,所以可以含有当前jsp程序中重复的内容,因为附加过来之前就会被解析掉。
 
5.见servlet面试题
 
6.jsp是为了弥补Servlet的缺陷,jsp页面是有html语句嵌套在其中的java代码组成的一个普通文本文件。运行原理如下:
web容器(Servlet引擎)接收到以.jsp为扩展名的url访问请求时,它将把该访问请求交给jsp引擎处理。Tomcat中的jsp引擎就是一个Servlet程序,他负责解释和执行jsp程序;
每个jsp页面在第一次访问的时候,jsp引擎会将它翻译成一个Servlet源程序,接着再把这个Servlet源程序编译成Servlet的class类文件,然后再有web容器(Servlet引擎)像调用普通Servlet程序一样的方式来装载和解释执行这个由jsp页面翻译成的Servlet程序。
执行过程:
(1)、客户端发出请求。
(2)、web容器将jsp转移称servlet源代码。
(3)、web容器将产生的源代码进行编译。
(4)、web容器加载编译后的代码并执行。
(5)、把执行结果响应返回客户端。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值