《基于JAVA技术的Web应用开发》试题(简答)_第1页
《基于JAVA技术的Web应用开发》试题(简答)_第2页
《基于JAVA技术的Web应用开发》试题(简答)_第3页
《基于JAVA技术的Web应用开发》试题(简答)_第4页
《基于JAVA技术的Web应用开发》试题(简答)_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于JAVA技术的Web应用开发模拟试题(简答)Unit 1 Web应用体系架构简介1. 简述Web应用模型的B/S结构。答:Web应用是基于B/S结构的,也就是浏览器/服务器结构。最早的应用程序,无论表示层逻辑、业务逻辑和数据库都集中在一台计算机上,各部分之间是紧密耦合的。随着技术的发展,出现C/S结构,即客户端/服务器结构。在这种结构中,有了专门的数据库服务器,但客户端还要运行客户端应用程序,这时是胖客户端。在B/S结构中,客户端在浏览器中只负责表示层逻辑的实现,业务逻辑和数据库都在服务器端运行。也就是说,应用程序部署在服务器端,客户端通过浏览器访问应用程序。通常,客户端发送HTTP请求消

2、息传给服务器,服务器将请求传递给Web应用程序,Web应用程序处理请求,并把响应的HTML页面传给客户端。2. 描述HTTP请求响应模型。答:HTTP协议基于请求/响应模型。存在两种HTTP消息:请求消息和响应消息。一个完整的HTTP会话过程包括:首先,客户端与Web服务器建立连接,通常通过默认的80端口。建立连接后,客户端向Web服务器发送HTTP请求消息,Web服务器处理请求,并将响应消息传送给客户端,这样一个来回后,这个连接就关闭了。2. 以下HTTP消息的题头域的含义是什么?Accept、Accept-Language、Content-Type、Host和User-Agent。答:名称

3、目的举例Accept指示响应可以接受的媒体类型。如果没有Accept题头域,则服务器可以安全的假设客户端接受所有的媒介类型。accept :image/gifaccept:image/jpegAccept-Language指示客户端希望响应优先使用的语言。Accept-Language:en-usContent-Type指示发送到接受者的消息体的媒介类型。Content-type:text/htmlHost指示所请求的资源的主机名称和端口号。Host:4User-Agent包含发出请求消息的客户端的信息。User-Agent:Mozilla/4.04. 以下HTTP响应状

4、态码的含义是什么?200、400、401、404和500。答:响应状态码文本描述含义200OK请求成功400不良请求由于语法错误而导致服务器无法理解请求信息401未授权请求要求身份验证和/或授权404未发现服务器未发现与请求URI匹配的内容500内部服务器错误服务器出错,无法处理请求5. 简述两大Web服务器端技术ASP.NET和JSP的特性。答:ASP.NET是建立在微软.NET平台上的网络技术。它的特性有以下几点: 页面表现与代码的分离ASP.NET将页面表现和程序代码分离,在ASPX页面中只有负责页面显示的HTML标记、Web控件标记等。而随后绑定的aspx.cs或aspx.vb页面包含

5、了页面的程序代码。 能够使用多种语言页面表现与代码的分离使得程序员可以在代码页面使用多种语言,如VB.NET、C#等。 编译执行ASP.NET程序是编译执行的。JSP是使用Java语言的Web服务器端技术。它也提供了在HTML代码中混合程序代码、由语言引擎执行程序代码的能力。它的特性包括: 使用Java 语言; 在HTML代码中混合程序代码、由语言引擎执行程序代码; JSP被编译成Servlet并由Java虚拟机执行,这种编译操作仅在对JSP页面的第一次请求时发生;Unit 2 J2EE简介1. MVC设计模式包含哪些组件,其作用各是什么?答:MVC设计模式是软件设计中的典型结构之一。MVC是

6、Model/View/Control的缩写。在这种设计结构下,应用程序分为三个组成部分:Model模型、View视图和Controller控制器,每个部分负责不同的功能。Model提供应用业务逻辑,是指对业务数据、业务信息的处理模块,包括对业务数据的存取、加工、综合等;View是指用户界面,也就是用户与应用程序交互的接口。用户可以通过view输入信息,另一方面应用程序通过view将数据结果以某种形式显示给用户。 Controller则负责View和Model之间的流程控制。2. MVC模式的优势有哪些?答:MVC模式使应用程序的结构更加清晰,通过将代码按照层次划分为业务逻辑/数据层、用户界面和

7、应用流程控制这三个层次,能够增强代码的稳定性。对于Model、View、Controller这三部分功能来讲,View的实现一般是由界面设计人员和界面程序员来完成,Model则是由业务逻辑程序员来完成,Controller则一般由负责整体控制的程序员来完成。对于项目开发而言,三层的分离有利于在项目小组内按照小组成员各自的擅长进行分工,有利于三个部分并行开发、加快项目进度。另一方面, Controller部分的代码比较稳定,一般会实现一个通用的架构;而Model则跟随商务流程的变化而变化;View的更改则是随着用户需求的更改而更改。这种模块功能的划分有利于在代码修改过程中进行模块的隔离,而不需要

8、把具有不同功能的代码混杂在一起造成混乱。3. J2EE架构分为几层?各层的组件包括哪些?答:J2EE架构分为三层:客户层、中间层及企业信息系统层(Enterprise Information System )。其中中间层又分为Web层和业务层。Applets和Application Client是客户层中包含的组件,Web组件放置在Web层,还有Enterprise JavaBean放置在业务层。4. J2EE容器包括哪些?容器的作用是什么?答:J2EE容器包括四个: Applet容器和Application Client容器,这些是客户端容器;Web 组件容器 和EJB容器,这些是服务器端容

9、器;通常,容器提供了运行于其中的组件的控制环境。容器提供了其中的组件可以使用的通用服务,这样组件开发人员无须自己编写这些服务。5. 简述J2EE组件和MVC架构的对应。答:J2EE在Web容器中的Servlet提供了业务流程控制,实现了MVC中的Controller。Bean实现了业务逻辑,也就是Model。三而J2EE在客户层中的Applet 以及Web层中的JSP实现了面向浏览器的数据表现,Application Client实现了面向桌面应用的数据表现。这是MVC架构中的View部分。6. J2EE的标准服务和API有哪些?答:J2EE的标准服务和API包括: HTTP: 超文本传输协议

10、 RMI-IIOP:允许 J2EE应用中的组件通过IIOP协议调用外部 CORBA 对象 Java IDL: Java接口定义语言 JDBC: Java数据库连接 JNDI: Java 命名和目录接口 JMS: Java消息服务 Java Mail:在应用程序中加入邮件和通讯支持的支持。 并使用JAF来处理Email中数据。 JTA:提供了J2EE中处理事务的标准接口。 JCA:用于连接各种企业信息系统 JAAS:实现认证授权的访问 JAXP:提供统一访问XML文档的接口7. J2EE的优势体现在哪?答: 首先,J2EE是一系列标准,它提供了标准的服务、组件、客户端和工具,这使应用程序开发和移

11、植非常方便,比如,我们在WebShpere平台开发的J2EE项目可以很容易的移植到WebLogic平台上。 J2EE提供的组件模型很好的实现了MVC设计模式。从而实现了逻辑和显示的分离,以及代码重用。 另外,J2EE机构提供了很强的可扩展性,可伸缩性,当应用程序规模较大,有较多的访问请求,这时候我们可以将应用程序部署在不止一台服务器上,而通过路由器等实现负载平衡,从而提供更好的访问性能。 J2EE还提供了对现有的企业信息系统很好的兼容性,我们可以通过标准的协议集成已有的ERP等遗留系统。 在安全方面,J2EE也集成了对遗留系统安全设置的支持。8. 简述J2EE打包与部署的标准。答:J2EE 规

12、范描述四种类型的模块:Web 模块、EJB 模块、应用程序客户端模块和资源适配器模块 。当部署到 J2EE 应用程序服务器时,通常会将所有这些模块都压缩到单个 J2EE 应用程序 EAR 文件中。 EAR是EnterpriseApplicationArchive的缩写,EAR文件用来把一个或者多个J2EE组件封装到单个模块里面,以便一起部署并装入到服务器上。每个模块都有响应的部署描述符。部署描述符是一个XML格式的文件,它描述了响应模块部署时的配置信息。整个J2EE程序的EAR文件也有一个部署描述符:application.xml。Unit 3 基于Servlet和JSP的Web应用1. 什么

13、是Java Servlet?答:Servlet 是一个标准的服务器端的Java应用程序,可以生成动态的Web页面。它被装载到Web服务器或应用服务器的Java虚拟机内运行。一个客户端程序,可以是一个Web浏览器,或者是非其他的可以连接上Internet的程序,它会访问Web服务器并发出请求。这个请求被运行在Web服务器上的Servlet引擎处理,并传递给响应的Servlet。Servlet通过HTTP将这个响应转发到客户端。2. 简述Servlet的任务。答:Servlet能够做到: 读取客户端发送的所有数据这些数据通常是在Web页面的表单中输入的,但也可能来自Java applet或HTTP

14、客户端程序。 读取浏览器发送的HTTP请求数据这些信息包括有关浏览器功能、Cookie、发出请求的客户端的主机名等详细信息。 生成结果此过程可能需要与数据库通信、调用RMI或CORBA,调用遗留系统或直接计算得出响应。 在文档内设置结果的格式在多数情况下,这种情况是将信息嵌入到HTML页面中。 设置合适的HTTP响应参数这意味着告诉浏览器返回的文档类型(例如HTML)、设置Cookie和缓存参数以及其他类似任务。 将文档返回给客户端可能以文本格式(HTML)、二进制格式(GIF图像)等发送该文档。 3. 简述Servlet 局限性。答:在Servlet中使用硬编码的HTML输出作为请求的响应具

15、有一些严重缺陷。首先,也是最重要的缺点是,很难对HTML做出修改,因为每次修改都必须重新编译Servlet。其次,由于HTML是硬编码的,所以维护不同的语言很困难。判断用户的语言、所处的地区以及其他变化情况,然后再显示输出非常困难。最后一点,因为HTML嵌入在Servlet中,因此还存在职责问题。Web设计人员构建HTML页面;通常他们并不熟悉Java编程,更不要说熟练掌握面向对象设计和编程了。当在Servlet中混合使用HTML和Java代码时,就很难分清页面设计和编程的职责。4. JSP执行过程中和Servlet的关系是怎样的?答:JSP页面的处理过程是先将JSP页面编译预处理成Java

16、Servlet后,再执行生成的Servlet并产生结果的。三.jsp文件经预处理后转换为.java文件。此后,Java编译器编译源代码,并生成可由Servlet容器执行的.class文件。5JSP和Servlet都用在哪些场景?答:Servlet也可以返回HTML页面,用于显示,但在Servlet中手动书写HTML代码非常繁琐,所以,通常来讲,Servlet主要用于Web应用程序的流程控制,验证用户输入合法性以及调用其他业务逻辑对象来访问数据等,而JSP主要用于页面显示。Unit 4 运行环境设置1. 常用的Web服务器包括哪些?答:目前常用的一些免费Web服务器包括以下几种: Apache

17、Tomcat Allaire JRun New Atlanta的ServletExec Gefion Software的 LiteWebServer(LWS)2. 如何安装设置Tomcat Web服务器?答: 下载并安装Java 2 SDK 下载并安装Tomcat 设置端口号 设置环境变量JAVA_HOME、CLASSPATH和 PATH。 测试TomcatUnit 5 简单Web应用的开发样例1编写一个简单的HTML页面,并部署在Tomcat服务器上。答:略。2编写一个简单的JSP页面,并部署在Tomcat服务器上。答:略。3编写一个简单的Java Servlet,并部署在Tomcat服务器

18、上。答:略。Unit 6 Servlet 简介1 Servlet相比于CGI的优点有哪些?答:Servlet和传统的CGI程序相比有以下优点:在可移植性和与平台无关性方面:Servlet能够跨平台和不同的Web服务器交互。几乎所有的主流服务器都直接或通过插件支持Servlet。从持久性和性能上讲,传统的CGI对于每个HTTP请求都要启动一个新进程。而Servlet 只要被Web服务器装载一次,就能被每一个客户请求调用。因此Servlet比CGI性能更高。最后,Servlet是用java编写的,它继承了Java语言的所有优点。所以,在未来的技术发展过程中,Servlet有可能彻底取代CGI。2

19、简述Servlet的处理流程。答:Servlet的处理流程: 客户端发送一个请求至服务器端; 服务器将请求信息发给Servlet; Servlet引擎,也就是Web容器会调用Servlet的service方法; Servlet构建一个响应,并将其传给服务器。这个响应是动态构建的,相应的内容通常取决于客户端的请求,这个过程中也可以使用外部资源。 服务器将响应返回给客户端。3 参照下图,简述客户端与Servlet的交互:答:首先,Web容器装载Servlet1。初识化Servlet的实例变量,并且在Servlet生命周期内保持激活状态,也就是持久状态。两个客户浏览器请求了Servlet1的服务。W

20、eb容器为每个请求生成一个新的线程。每一个线程都能访问最初装载的实例变量,每一个线程处理它自己的请求,并把响应返回给请求客户。4 创建一个生成简单HTML代码的Servlet。答:代码如下:package myServlet;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class MyHTMLServlet extends HttpServlet protected void doGet(HttpServletRequest request, HttpServletResponse res

21、ponse) throws ServletException, IOException response.setContentType(“text/html”);PrintWriter out=response.getWriter();out.println(“My servlet”);out.println(“This is my simple servlet.”);out.println(“”); 5. 简述HttpServletRequest对象和HttpServletResponse对象的作用:答:HttpServletRequest对象封装客户的请求信息,这些信息包括客户的环境信息和

22、从客户端送到服务器端的数据。HttpServletRequest类包含了从请求对象中抽取信息的一系列方法。HttpServletResponse对象封装了动态产生的响应。例如,一个返回给客户端的HTML页面,这个HTML页面一般是由来自HttpServletResquest对象的数据构成的。除了HTML页面外,一个响应对象还可以是一个HTTP错误响应、指向另一个URL的重定向或者一个Servlet。Unit 7 Servlet的生命周期1 简述Servlet生命周期。答:每一个Servlet都有一个生命周期,它定义了一个Servlet 如何被加载和被初始化,它怎样接收请求、响应请求、怎样提供服

23、务。Servlet 的生命周期从它被装入到 Web应用 服务器的内存开始,在终止或重新装入 Servlet 时结束。Servlet生命周期由接口javax.servlet.Servlet定义。 所有的Java Servlet 都必须直接或间接地实现这个接口。 javax.servlet.Servlet接口定义了一些方法,如init()方法,service()方法,destroy()方法等。在Servlet 的生命同期中,这些方法会在特定时间按照一定的顺序被调用。 2 根据下面这张图,简述Servlet生命周期顺序。答:首先创建Servlet,当请求Servlet的服务时,Web应用服务器动态的

24、装载和实例化Servlet。服务器会创建 Servlet的一个实例,并调用 Servlet 的 init() 方法初始化。一旦初始化了Servlet,Servlet就能随时等候处理请求。这时Servlet处于“可用服务”的状态。每当有一个客户请求Servlet,WebContainer 都会为这个请求创建一个新的Servlet线程。对于每一个请求,通常调用service方法。service方法会根据所接收到的HTTP请求的类型调用doGet、doPost或别的doXxx方法。当web服务器卸载Servlet时,调用destroy方法。Servlet 会释放它使用的任何资源。 3 什么情况下初始

25、化 Servlet?答:初始化方法在下列情况下发生: 第一种情况:如果已经配置了自动装入选项,那么在启动服务器时自动装入Servlet,并初始化。第二种情况是,没有配置自动装入选项,那么在服务器启动后,当客户端首次向 Servlet 发出请求时,初始化Servlet。另外,重新装入 Servlet 时也会初始化Servlet。 4 简述下列web.xml文件中关于Servlet的元素的含义。 Welcome to Tomcat Welcome to Tomcat FirstSimpleServlet FirstSimpleServlet parameter1 The value of the

26、parameter1 答:此XML文件web-app元素中的Servlet元素包含三个子元素,分别是servlet-name、servlet-class和init-param。servlet-name元素是你想要用来访问该Servlet的名称,servlet-class元素给出此servlet的class类名,init-param给出初始化参数的名称和值。5 SingleThreadModel 接口的作用是什么?答:一般来说,在多个并发线程正在执行的时候,如果有一个新的请求到来,Servlet容器将构造Servlet的一个实例,为每个用户请求建立一个新进程,这意味着,多个线程可能同时访问一些共

27、享数据。如果要阻止这种多线程的访问,可以使Servlet实现SingleThreadModel 接口。Unit 8 表单处理1 解释下列请求头方法的功能:getCookies()、getHeaderNames()、getMethod() 和getProtocol()。答:getCookies方法会返回Cookie头的内容,解析后会存放在Cookie对象的数组中;getHeaderNames方法返回当前请求的所有头的名称的Enumeration。getMethod方法返回请求方法,通常是GET或者POST;getProtocol返回HTTP版本号;2 解释下列Servlet常用的请求头的含义:A

28、ccept、Accept-Language、Content-Length、Host 和 User-Agent。答:Accept头指出浏览器能够处理的MIME模型。Accept-Language头指出客户端倾向的语言。如en。Content-Length头以字节为单位给出POST数据的长度。Host表明了主机和端口。User-Agent头表明了发出请求的浏览器的信息。3 简述下列设置常见HTTP头的方法的功能:setContentType、setContentLength 和addCookie。答:setContentType方法用来设置响应头的Content-Type。setContentLe

29、ngth方法用来设置响应头的Content-Length。addCookie方法用来将cookie插入Set-Cookie头。4 HTTP 1.1中定义的状态码的主要含义是什么?答:HTTP 1.1中定义的状态码有以下几种: 100199:这一类代码是提示性的,表示初始的请求已经接受,客户应当继续发送请求的其余部分。 200299:表示响应成功。比如 200OK 表示一切正常,对GET和POST请求的应答文档会跟在后面。 300399:表示重定向。 400499:表示客户端错误。比如:404Not Found表示无法找到指定位置的资源。 500599:表示服务器端错误。Unit 9 Servl

30、et 相关的接口和类1 简述Java Servlet API。答:Java Servlet API 是一组Java类,它定义了Web客户端和Web Servlet之间的标准接口。客户的请求发给Web应用服务器,Web应用服务器通过这组API接口调用Servlet为这个请求服务。这组API有两个包组成:javax.servlet 和 javax.servlet.http。Javax.servlet包中所包含的是编写Servlet所需的最基本的类和接口。这些类是独立于协议的。Javax.servlet.http包扩展了上述基础包的功能,对http协议提供了特别的支持。2 ServletConfig

31、 接口的用法?答:ServletConfig 接口用于存取Servlet实例的初始化参数,这些参数以名称/数值对的形式存在ServletConfig中。容器在web.xml中设置Servlet的一些部署信息,这些信息可以通过ServletConfig得到。每一个ServletConfig对象对应着一个唯一的Servlet。ServletConfig 接口的定义如下:public abstract interface ServletConfigpublic String getInitParameter(String name);public Enumeration getInitParamet

32、erNames();public ServletContext getServletContext();3 Web容器和ServletContext的关系是怎样的?答:每个 Web 应用程序都有一个唯一的ServletContext对象,供多个客户端共享信息。ServletContext对象可以看作是一个 Web 应用程序的程序级别的对象影射,我们可以利用它来共享和存取基于 Web 应用程序级别的数据。4 结合下图说明RequestDispatcher对象的forward和include的区别是什么?答:forward 会把处理用户请求的控制权转交给到其他 Web 资源,如:Servlet、H

33、TML文件或JSP文件。在使用 forward 时,要传递控制权。与此不同的是,执行 include 的组件维持对请求的控制权,而只是简单地请求将另一个组件的输出包括在本页面的某个特定的地方。对于forward,要转发的组件不能设置响应头部信息,也不能有内容发送到输出缓冲区。所有与向客户发送内容直接相关的任务必须由被转发的组件完成。 也就是Servlet A 不能设置响应头部信息,也不能有内容发送到输出缓冲区。这些工作由Servlet B来完成。对于include,Servlet B不能设置响应头部信息,也不能有内容发送到输出缓冲区,这些工作由Servlet A来完成。5 结合下图说明Serv

34、let个对象之间的关系:答:在这里两个客户端Client 1和Client 2访问同一个Web应用程序的两个不同的Servlet,Servlet A 和Servlet B。因为访问的是同一个Web应用程序,所以Thread 1和Thread 2共享同一个ServletContext对象。但是,访问的是不同的Servlet, Servlet A 和Servlet B 都有各自的ServletConfig对象,所以Thread 1和Thread 2分别访问不同的ServletConfig对象。另外,ServletRequest和ServletResponse对象是针对Servlet实例的。所以Th

35、read 1和Thread 2各自有各自的ServletRequest和ServletResponse对象。Unit 10 会话跟踪1 Servlet 用于会话跟踪的方法有哪些?答:Servlet 用于会话跟踪的方法包括使用Cookie、使用URL重写、使用隐藏表单字段,以及使用HttpSession对象。2 什么是Cookie?答:Cookie是将会话数据保存在客户端来维护会话状态的一种方式。它是服务器发送给浏览器的体积很小的纯文本信息,用户以后再访问同一个Web服务器时,浏览器会把cookie原样发送给服务器。通过这种方式,服务器保存了用户的会话状态。3 Cookie是否是安全的?答:使用

36、cookie会带来安全问题。cookie是保存在客户端的,持久存储的cookie放在用户的文件系统中,因此用户可以看到和修改那些持久存储的cookie。一些对安全性要求很高的信息最好不要放在cookie中,而是放在服务器上。这些信息通常包括关于验证有效性的信息,和其他像信用卡号等信息。4 举例说明URL重写是怎样实现会话跟踪的?答:给应用程序的每一个URL进行编码,也就是在URL路径后添加一些数据,这些数据是会话的标识符,服务器会把该标识符和用户的会话数据关联起来。会话标识符会放在任何一个链接,或用户提交页面的链接上,方法是在URL后加上参数 jsessionid 等于某某某。此会话标识符作为

37、URL的参数传给客户端。例如:链接 catalog ,当用户点击这个链接时会转向到store目录下的catolog,这时,会话标识符作为URL的参数传给客户端。5 结合下图说明客户端访问Servlet时,它们的HttpSession对象之间的关系。答:在这张图中,两个客户端client 1和Client 2访问同一个Servlet A。Servlet A会为两个不同的客户端创建两个不同的线程Thread 1和Thread 2因为访问的是同一个Servlet,所以Thread 1和Thread 2共享一个ServletConfig对象,也共享同一个ServletContext对象。而Servle

38、tRequest和ServletResponse对象是针对Servlet实例的。所以Thread 1和Thread 2各自有各自的ServletRequest和ServletResponse对象。对于HttpSession对象,因为是两个不同的客户端,服务器会分别为这两个client设置各自的HttpSession对象,所以当两个客户端分别通过各自的ServletRequest对象调用HttpSession时,它们会访问各自的不同的HttpSession。Unit 11 Servlet过滤器1 什么是Servlet过滤器?答:Servlet过滤器是Servlet API的2.3版本中引入的一个

39、重要的新功能。过滤器是一个Java程序,它在与之相关的Servlet或JSP页面之前运行,起到检查这些资源被输入的请求信息,以做预先处理的一些功能。过滤器可附加到一个或多个Servlet或JSP页面上。2 Servlet 过滤器有哪些特性?答:Servlet 过滤器有以下特性:a) 将对应用程序处理的逻辑封装到单个类文件中;b) 调用是动态的,过滤器在运行时由 Servlet 容器调用来拦截和处理请求和响应;c) 通过Web 部署描述符来声明配置; d) 是可重用的。过滤器可附加到一个或多个Servlet或JSP页面上;3 结合下图谈谈doFilter方法如何处理过滤器链:答: 容器调用该过滤

40、器链的doFilter方法,从而依次顺序调用每个过滤器的doFilter方法。一个典型过滤器的doFilter方法如下: 预处理请求对象,或者用自定义的ServletRequest或者HttpServletRequest的实现限制它,来修改请求头或数据。 预处理响应对象,或者用自定义的ServletRequest或者HttpServletRequest的实现限制它,来修改请求头或数据。 通常通过调用过滤器链的doFilter方法来调用链中的下一个过滤器。 对请求对象和响应对象进行额外的后期处理。 最后,当链中所有过滤器都被调用过之后,过滤器链将调用最初的请求资源。 在一个过滤器从服务中移除之前

41、,容器必须调用它的destroy方法。4 通常建立一个过滤器涉及哪些几个步骤?答:建立一个过滤器涉及下列几个步骤: 首先创建一个Java类,实现Filter接口。 在doFilter方法中实现过滤逻辑。 调用FilterChain对象,激活下一个相关的过滤器,或Servlet、JSP页面。 在部署描述符文件(web.xml)中,对相应的Servlet和JSP页面注册过滤器。5 结合下列web.xml文件,简述其中有关Servlet过滤器元素的作用: Page Request Timer TimeTrackFilter Page Request Timer Main Servlet答:filte

42、r元素包含的子元素主要有: filter-name:定义过滤器的名称。 display-name:定义IDE使用的过滤器的简短名称。 description:对过滤器的描述。 filter-class:指定过滤器实现类的完全限定名。 init-param:过滤器的初始化参数。可以使用FilterConfig的getInitParameter方法读取。过滤器可以包含多个init-param元素。filter-mapping元素位于web.xml文件中filter元素之后serlvet元素之前。三它包含以下三个可能的子元素: filter-name:与前面filter元素声明时给予过滤器的名称相匹

43、配。 url-pattern:指定过滤器应用的URL。所有filter-mapping元素必须提供url-pattern或servlet-name。 servlet-name:指定过滤器应用的Servlet。Unit 12 JSP介绍1 JSP技术的目的是什么?答:JSP技术是一种用来开发含有动态内容的网页的技术。它将常规的静态HTML与动态产生的内容相结合。JSP技术允许Web开发人员和设计人员开发和维护与平台无关的、信息丰富的、动态的Web页面。JSP页面有助于完成分离视图和内容的设计目的。JSP技术把用户界面从内容层中分离出来,使得设计人员不必修改底层动态内容,就可以修改整体的页面布局。

44、2 JSP技术的特性有哪些?答:JSP的特性包括以下几点: 分离业务逻辑和表示 编写一次,随处运行 服务器端Java资源的高效利用 广泛的工具支持 可重用的组件和标签库3 JSP页面包括哪些组件?答:JSP页面包括以下组件: JSP指令(Directive) JSP Directive是JSP页面被编译成Servlet时由JSP引擎处理的指令; JSP Action JSP Action是在JSP页面中使用XML语法的一种定义;包含使用JavaBean组件,动态插入文件,把用户转发给其他页面等; JSP脚本JSP脚本元素允许将Java代码插入到将要在JSP页面中生成的Servlet中;4 结合

45、下图简述JSP的执行原理:答:首先,Web浏览器发出请求,查询JSP页面。JSP解析器会解析JSP文件的内容,根据JSP文件的内容创建临时的Servlet源代码,这些Servlet除了创建页面的动态元素,还负责显示原JSP页面上定义的静态元素。接着,Java编译器把Servlet源代码编译成Servlet类文件。Servlet实例化调用Servlet的init方法,然后调用service方法执行Servlet逻辑。最后,Web服务器将静态的HTML页面和图像与在JSP页面中声明的动态元素相结合,通过Servlet返回对象的输出流,将最终的页面传送给Web浏览器。在这个过程中生成的Servlet

46、将一直处于服务状态,直到应用程序被终止,或Servlet被手工卸载。5 JSP的生命周期有哪些阶段?答:JSP生命周期可以分为以下阶段:编译、装载、初始化、执行和清理。Unit 13 JSP元素1 简述JSP指令page,include 和 taglib类型的用处。答:page指令通过导入类、定制Servlet的超类、设置内容类型等,可以控制Servlet的结构;include指令可以在JSP文件转换成Servlet时,将文件插入到Servlet类中;taglib指令用于定义定制的标记;2 page指令的属性import的作用是什么?答:page指令的import属性允许你指定一些packag

47、e或class的名字,这些package将由Servlet导入。通过import,你可以指定导入多个package。例如在这个例子中,JSP页面引用了java.io 包和java.util.Hashtable包。3 JSP的隐含声明对象有哪些?答:JSP的隐含声明对象有request、response、pageContext、session、application、config、out、page和exception等。对象名描述requestHttpServletRequestresponseHttpServletResponsepageContext可以访问JSP页面的许多属性session

48、HttpSessionapplicationServletContextconfig本页的ServletConfig类out用于输出的Writer类page当前页的实例exceptionThrowable4 简述JSP页面作用域page、 request、 session 和 application。答:作用域类型变量描述pagePageContextpageContext对象只能接受来自创建当前页面的客户访问。requestServletRequestrequest对象只能在一个单独的客户请求生命周期内接受其访问。sessionHttpSessionsession对象在整个用户会话生命周期内

49、,在应用中接受一个单独的客户的访问。applicationServletContextapplication对象在整个应用的生命周期内,接受来自这个应用中的任何页面的访问。Unit 14 JSP元素使用示例1 编程实现使用include指令在一个页面包含另一个页面。答:略。2 编程实现使用从登陆页面根据不同的选择转向不同的页面。答:略。Unit 15 使用JavaBean1 如何理解组件?答:组件是指一种包装过的软件对象,它们拥有标准化的接口,而且可在多个应用程序中重用。组件体系结构规定了组件之间如何交互作用。组件遵循一系列命名的规范,使调用者能够依据这些规范调用不同的组件,JavaBean就

50、是一种组件。组件可以在多个应用程序中重用。2 使用JavaBean的好处有哪些?答:JavaBean拥有标准化接口的优点,在开发期有可视化编程工具的支持,在运行期有JSP和J2EE连接器的支持。使用JavaBean的另一个好处是让我们更明确的把WEB页面的设计和软件的设计区分开来。 JavaBean使软件开发人员与JSP页面尽量保持一种松散的联系。3 什么是Bean的自省?答:JavaBean的自省可以让构造工具来分析Bean是如何工作的。每个Bean都有一个相关的BeanInfo类,该类提供了关于Bean本身的属性,方法和事件信息。每个BeanInfo类都实现了BeanInfo接口,该接口专

51、门列出了需要让构造工具知晓的Bean的特性。这样当我们编写一个组件之后就能让构造工具知道这个组件拥有哪些属性、方法和事件。4 结合下图说明创建Bean的过程:答:从图中的顶部看起,当JSP执行过程中遇到useBean动作时,首先得到id和Scope参数的值,然后在Scope指明的范围内根据id指定的名称查找这个Bean,如果找到了,则取回Bean对象;如果没有找到,则在useBean中查找beanName参数,如果指明了beanName参数,则根据该参数指明的文件去寻找持久性数据,从持久性数据中实例化指明的Bean;如果没有指明beanName属性,JSP会查询是否指明了class参数,如果指

52、明了class参数,则会创建一个新的Bean实例。反之会抛出一个异常。Unit 16 JSP 自定义标记库1 简述JSP自定义标记的目的。答:目的是: 分离页面设计和逻辑设计; 赋予开发人员扩展可用于JSP页面内部的标记的能力; 允许开发人员将一些复杂的服务器端行为以标记处理的形式放到JSP页面中;2 一个JSP标记库由哪些部分构成?答:一个标记库由以下部分构成: 标记处理器(Tag handler) 标记库描述文件(Tag library descriptor file,TLD) 应用程序部署描述符(web.xml)文件 在JSP页面中的标记库声明3 标记处理器是什么?答:在处理HTML文件时,是由浏览器决定基于一套什么样的标准来处理文件包含的标记。而使用JSP自定义标记时,是由一个特殊的Java类来决定怎样处理自定义标记。这个Java类就是标记处理器(tag handler)。标记处理器是一个Java类,它执行标记的预定义的特定行为。首先,它需要实现某个自定义标记接口(继承TagSupport 类或 BodyTagSupport类),这取决于与需要开发的标记类型。处理器类有权访问所有的JSP资源,例如PageContext对象、请求响应对象,以及会话对象。4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论