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。