日期:2014-05-16  浏览次数:20399 次

jsp面试相关
jsp有哪些内置对象?作用分别是什么?

(1)request对象 客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应.它是HttpServletRequest类的实例.
           (2)response对象 response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它.它是HttpServletResponse 类的实例.
          (3)session对象 session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止.它是 HttpSession类的实例.
           (4)out对象 out对象是JspWriter类的实例,是向客户端输出内容常用的对象
           (5)page对象 page对象就是指向当前JSP页面本身,有点象类中的this指针,它是java.lang.Object类的实例
           (6)application 对象 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对象)
jsp有哪些动作?作用分别是什么?  jSP共有以下6种基本动作

jsp:include:在页面被请求的时候引入一个文件。

jsp:useBean:寻找或者实例化一个JavaBean。

jsp:setProperty:设置JavaBean的属性。

jsp:getProperty:输出某个JavaBean的属性。

jsp:forward:把请求转到一个新的页面。

jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记

如何避免JSP页面自动生成session对象?为什么要这么做?

在默认情况下,在对一个JSP页面发出请求时,如果 session还没有建立,JSP页面会自动为请求建立一个session对象,但是session是比较消耗资源的,如果没必要保持和使用 session,就不应该创建session,  例如一些只是用来宣传产品的网站,往往没必要使用session来保存信息,可以使用jsp页面指令session=”false”来避免JSP页面为每 个请求都自动创建session.实例代码如下:<%@ page session=”false”>

描述Cookie和Session的作用,区别和各自的应用范围

Cookie:主要用在保存客户端,其值在客户端与服务端之间传送,不安全,存储的数据量有限。
Session:保存在服务端,每一个session在服务端有一个sessionID作一个标识。存储的数据量大,安全性高。占用服务端的内存资源。

servlet 和 jsp 的区别

都是用来处理动态网页的技术,jsp被编译后转化为servlet, 一个jsp页面本质上也是一个servlet;jsp在第一次被请求后,先转化为servlet,再编译,所以第一次要比servlet慢

Servlet是在java代码中嵌入HTML, 擅长逻辑控制

Jsp是在HTML中嵌入java代码, 擅长页面处理

jsp里用get与post提交的区别:

1>:get有长度限制,只允许255个字符进行白提交,post则没限制.

2>:安全性问题,get要比post要低,因为get提交的信息会显示在地址栏中.

3>:从请求响应速度看:get>post,get需求服务器立即处理请求,而post请求可能形成一个队列请求。

Servlet中响应请求的方法有哪些?
       doGet(),   doPost(),   service().
如何设置一个Servlet在web容器启动时就初始化?
      web.xml中有一个属性,load-on-startup Servlet
为什么jsp第一次运行会比较的慢?
        答案:浏览器不认识jsp代码而只认识html代码,它第一次会编译成servlet,之后再输出成静态的html页面,再一次执行的时候它就只执行编译成的servlet,所以第一次速度会比较慢。

开发servlet有哪三种方法:

1>:实现Servlet接口.

2>:继承GenericServlet.

3>:继承HttpServlet.

创建tagLib标签库的步骤:

1>:编写一个java类,继承TagSuppot.

2>:编写一个以tld为后缀的文件

3>:在jsp页面里引入此tld文件.

jsp中forward跳转和response.sendRedirect("*.jsp")跳转的区别: 

  forward是本服务器内跳转. 

  response.sedRedirect跳转到任何服务器.

Servlet的生命周期

1>;加载.

2>;初始化(init).

3>;执行(doPost(),doGe(),service()t).

4>;清除,销毁(destroy()).

jsp中两种跳转方式分别是什么?有什么区别 ?
  <jsp:include page="included.jsp" flush="true">
  <jsp:forward page= "nextpage.jsp"/>
前者页面不会转向 include 所指的页面,只是显示该页的结果,主页面还是原来的页面。执行完后还会回来,相当于函数调用。并且可以带参数 . 后者完全转向新页面,不会再回来。相当于 go to 语句。