jsp servlet 面试

1.说出Servlet的生命周期,并说出Servlet和CGI的区别。
     Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。
     与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。

 


2.forward和redirect的区别?
     forward是服务器请求资源,浏览器不知道它所请求的具体资源来源,所以地址栏不变。
     redirect是服务端根据逻辑发送一个代码,告诉浏览器重新去请求那个地址,所以地址栏改变。
     forward可传递参数,地址栏不变,只在服务器范围内。
     redirect 重定向,地址栏改变参数清空,请求新的URL。


3.JSP中动态include与静态include的区别?
     动态include用jsp:include动作实现 <jsp:include page=”included.jsp” flush=”true” />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。
     静态include用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面<%@ include file=”included.htm” %>


4.JSP的常用指令   

    <

%@page language="java" contenType="text/html;charset=gb2312" isErrorPage="true" isELIgnored="true" pageEncoding="gb2312" import="java.sql.*"%>
    <
%@include file="filename"%>
    <
%@taglib prefix="c"uri="http://......"%>


5.什么情况下调用doGet()和doPost()?
     Jsp页面中的form标签里的method属性为get时调用doGet(),为post时调用doPost()。


6. 如何现实servlet的单线程模式。
     <%@ page isThreadSafe=”false”%>


7. 页面间对象传递的方法
     request,session,application,cookie等


8. JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
    JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。JSP编译后是”类servlet”。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。


9. 四种会话跟踪技术
     page否是代表与一个页面相关的对象和属性。
     request是是代表与Web客户机发出的一个请求相关的对象和属性。
     session是是代表与用于某个Web客户机的一个用户体验相关的对象和属性。一个Web会话可以也经常会跨越多个客户机请求
     application是是代表与整个Web应用程序相关的对象和属性。


10. Request对象的主要方法:
     setAttribute(String name,Object):设置名字为name的request的参数值
     getAttribute(String name):返回由name指定的属性值
     getParameterValues(String name):获得有name指定的参数的所有值
     getParameter(String name):获得客户端传送给服务器端的有name指定的参数值


11. XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
     两种形式dtd  schema。
     本质区别:schema本身是xml的,可以被XML解析器解析(这也是从DTD上发展schema的根本目的)
     有DOM,SAX,STAX等
     DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问
     SAX:不现于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问


12. Servlet执行时一般实现哪几个方法?
     public void init(ServletConfig config)
     public ServletConfig getServletConfig()
     public String getServletInfo()
     public void service(ServletRequest request,ServletResponse response)
     public void destroy()


13. jsp有哪些动作?作用分别是什么?
     6种基本动作:
     jsp:include:在页面被请求的时候引入一个文件。
     jsp:useBean:寻找或者实例化一个JavaBean。
     jsp:setProperty:设置JavaBean的属性。
     jsp:getProperty:输出某个JavaBean的属性。
     jsp:forward:把请求转到一个新的页面。
     jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记。


14. 如何实现一个自定义的servlet?
     extends HttpServlet并覆盖doPost或doGet方法在web.xml中进行部署


15. 你在项目中用到了xml技术的哪些方面?如何实现的?
    用到了数据存贮,信息配置两方面。
    在做数据交换平台时,将不同数据源的数据组装成XML文件,然后将XML文件压缩打包加密后通过网络传送给接收者,接收解密与解压缩后再同XML文件中还原相关信息进行处理。在做软件配置时,利用XML可以很方便的进行,软件的各种配置参数都存贮在XML文件中。

 

16.JSP有哪些内置对象?

     request,response,page,application,session,out,config,pageContext,exception。

你可能感兴趣的:(jsp servlet 面试)