JavaEE(JSPServlet)常见题.docx_第1页
JavaEE(JSPServlet)常见题.docx_第2页
JavaEE(JSPServlet)常见题.docx_第3页
JavaEE(JSPServlet)常见题.docx_第4页
JavaEE(JSPServlet)常见题.docx_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

此文档收集于网络,如有侵权,请联系网站删除JavaEE(JSPServlet)常见题1. 客户端(client),应用服务器(Application server),数据库系统(DBMS)三者之间如何进行数据交互?DataBaseResponseRequestApplication serverclientJDBC/ODBC2. 什么是Servlet?Servlet的运行环境?Servlet是Java编写的Server端程序,他与协议和平台无关.Servelet运行与Java-enabled WebServer中.Java Servlet可动态的扩展Server的能力,并采用请求-响应模式提供Web服务.Servlet 是动态加载模块,为来自Web服务器的请求提供服务.它常见的用途是扩展web服务器.提供安全,可移植,易于使用的CGI替代品。Servet是一种比JSP更早的动态网页编程技术,在没有JSP之前,servlet同时可以充当表现层,业务逻辑层和持久层。但是它的开发效率比较低,而且项目参与性比较差,无法让不懂得代码的美工人员参与。MVC规范出现后,servlet专门用于作为控制器使用。Servlet的运行环境,JSP/Servlet container,我们初学者常用的是Tomcat。Servlet总是在一个环境中运行,这个环境一般称为context,在java EE中,用ServletContext表示,与ServletContext密切相关的是ServletConfig。Web服务器HTTP服务器Http请求Http响应Servlet容器静态HTML页面客户浏览器ServletServlet运行的基本方式3. 常用的应用服务器有哪些?常见的web服务器有:Tomcat,Jetty和Resin常见的Java EE服务器有:JBoss AS,WebLogic和WebSphere4. 列出Servlet的常用类库。A. Servlet基本类:Servlet基本类是Servlet需要直接或间接继承的接口和抽象类.i. Javax.servlet.Servlet接口Void init(ServletConfig config) throws ServletException 初始化ServletServletConfig getServletConfig() 返回传递到Servlet的init()方法的ServletConfig对象Void service(ServletRequest request,ServletResponse response) throws ServletException,IOException处理Request对象中描述的请求,使用Response对象返回请求的结果String getServetInfo()返回描述Servlet的一个字符串Void destroy()当Servlet将要卸载时有Servlet引擎调用ii. Javax.Servlet.GenericServlet 抽象类Void destroy() 卸载ServletString getInitParameter(String name)返回具有制定名称的初始化参数值.通过调用config.getInitParameter(name)实现ServletConfig getServletConfig()返回传递到init()方法的ServletConfig对象String getServletInfo()返回描述Servlet的一个字符串Void init()throws ServletException默认方法,可以使用super.init(config)调用父类的初始化信息Void log(String msg)编写注册Servlet的入口,为此调用Servlet上下文的log()方法,Servlet的名字被加到消息文本的开头.Void log(String msg,Throwable t)编写一个入口和Servlet注册的栈轨迹.此方法也是ServletContext中相应方法的一个副本Abstract void service(Request request,Response response)throws ServletException,IOException用Servlet 引擎调用为请求对象描述的请求提供服务.这是GenericServlet中唯一的抽象方法.也是唯一被子类覆盖的方法.iii. Javax.servlet.httpHttpServlet 抽象类doGet()方法通过service()方法调用,用于HTTP的GET请求.GET请求可供客户端向服务器发送表单数据.有了GET请求.这些表单数据就会附带在浏览器发送的URL后面,作为查询字符串发送给服务器.可发送的表单数据的数量有URL允许的最大长度来限制.Protected void doGet(HttpServletRequest request,HttpservletResponse response)throws ServletException,java.io.IOExceptiondoPost()方法由服务器通过service()方法调用,用于处理HTTP的POST请求.POST请求使客户端向服务器发送表单数据.有了POST请求,这些表单数据就会别单独发送给服务器,而不是被追加到URL后面,这样就可以实现发送大量表单数据的目的.Protected void doPost(HttpServletRequest request,HttpservletResponse response)throws ServletException,java.io.IOException doHead()方法由服务器通过service()方法调用,用于处理HTTP的HEAD请求.HEAD请求使客户端仅能检索响应信息的标题,而不是检索主体信息.Protected void doHead(HttpServletRequest request,HttpServletResponse response)throws ServletException,java.io.IOExceptiondoPut()方法由服务器通过service()方法调用,用于处理HTTP的PUT请求.PUT请求可供客户端把一个文件放到服务器上,类似通过FTP向服务器发送文件Protected void doPut(HttpServletRequest request,HttpServletResponse response)throws ServletException,java.io.IOExceptiondoOptions()方法由服务器通过service()方法调用,用于处理HTTP的OPTIONS请求.OPTIONS请求确定服务器支持哪个doXXX()方法,并通过一个标题向客户端传送信息.Protected void doOptions(HttpServletRequest request,HttpServletResponse response)throws ServletException,java.io.IOExceptiondoDelete()方法由服务器通过service()方法调用,用于处理HTTP的DELETE请求.DELETE请求可供客户端从服务器上删除一个文档或者Web页面.Protected void doDelete(HttpservletRequest request,HttpServletResponse response)throws ServletException,java.io.IOExceptiondoTrace()方法由服务器通过service()方法调用,用于处理HTTP的TRACE请求.TRACE请求返回随TRACE请求发送的标题,会送给客户端.Protected void doTrace(HttpServletRequest request,HttpServletResponse response)throws ServletException,java.io.IOExceptiondoLastModified()方法用于返回请求资源上次被修改的时间,返回值表示从1970年1月1日午夜算起的毫秒数Protected long getLastModefied(HttpServletRequest request)B. Web请求响应类:直接对应于Web请求和响应,在Servlet和Web容器之间交互传递信息.当Web容器通过Http协议接收到客户的请求后,会将其转化为HttpServletRequest对象,然后传递给Servlet.Servlet 可以通过这些类理解客户的请求,将其处理后的内容通过HttpServletResponse回复到Web容器.Web容器进行整理后用HTTP协议向客户端传送相应.1. javax.servlet.ServletRequest接口2. javax.servlet.ServletResponse接口3. javax.servlet.ServletInputStream与ServletOutputStream接口4. javax.servlet.HttpServletRequst与javax.servlet.HttpServletResponse接口javax.servlet.SevletConfig 接口javax.servlet.ServletContext接口C. Servlet异常类D. RequestDispatcher接口5. 简介Servlet的生命周期。ServletServlet容器客户端发送请求解析请求 创建一个实例 调用init()方法输出响应信息返回响应调用destory()方法a) Servlet容器装载Servlet类并实例化一个Servlet实例对象;b) Servlet容器调用该实例对象的init()方法进行初始化;c) 如果Servlet容器收到对该Servlet的请求,则调用此实例对象的service()方法处理请求并返回响应结果.d) Servlet容器在卸载该Servlet实例前调用他的destroy()方法.创建实例成功完成初始化init()响应客户请求 destroy()实例被销毁资源回收完成6. 在JavaWeb项目中,如何配置一个Servlet实例?(1)先在web project中新建一个继承httpservlet的servlet类,重写其中的dopsot()和doget()方法;(2)在web.xml中进行配置,代码如下 Test test1.Test Test /Test 7. Servlet如何实现重定向?答:在servlet/JSP编程学习中,发现有两种方法可以实现服务端输出重定向,一种是通过forward方法(例如JSP中的),另一种则是通过运用javax.servlet.http.HttpServletResponse接口的sendRedirect方法(例如response.sendRedirect(“OtherPage.jsp”);两种方法有什么区别和联系:前者是利用服务器端先将数据输出到缓冲区的机制,在把缓冲区(buffer)的内容发送到客户端之前,原来的不发送,改为发送该页面的内容,如果在之前有很多输出,前面的输出已使缓冲区满,将自动输出到客户端,那么该语句将不起作用,这一点应该特别注意.后者通过修改HTTP协议的HEADER部分,对浏览器下达重定向指令的,让浏览器对在location中指定的URL提出请求,使浏览器显示重定向网页的内容。该方法可以接受绝对的或相对的URLs。如果传递到该方法的参数是一个相对的URL,那么Webcontainer在将它发送到客户端前会把它转换成一个绝对的URL。如果地址是相对的,没有一个/,那么Webcontainer就认为它是相对于当前的请求URI的。8. 如何区别servletConfig&ServletContext?对于web容器来说,ServletContext接口定义了一个servlet环境对象,这个对象定义了一个在servlet引擎上的servlet的视图。通过使用这个对象,servlet可以记录事件,得到资源并得到来自servlet的引擎类。servlet容器在启动时会加载web应用,并为每个web应用创建唯一的servlet context对象,可以把ServletContext看成是一个Web应用的服务器端组件的共享内存,在ServletContext中可以存放共享数据,他提供了4个读取和设置共享数据的方法。具体见api帮助文档。另外,ServletContext对象只在web应用被关闭的时候才被销毁,不同的web应用,ServletContext各自独立存在。一个web应用由jsp,servlet,javabean等web组件的集合构成,每一个web应用,容器都会有一个背景对象,而javax.servlet.ServletContext接口就提供了访问这个背景对象的途径。你可以通过一个servlet实例的getServletContext()方法得到该servlet运行其中的这个背景对象,从这个背景对象中你可以访问如下信息资源:(1)初始化参数(2)存储在背景中的对象(3)与背景关联的资源(4)日志最后针对ServletContext我自己的总结是:ServletContext即servlet容器,其内提供的方法可以在同一web应用下的所有servlet中被使用而对于config对象来说,他与context相比,就有了很大的局限性。当ServletConfig对象在servlet中被实例化后,对任何客户端在任何时候访问有效。但是一个servlet的ServletConfig对象不能被另一个servlet访问,也就是说,在本servlet声明后的ServletConfig只能在本servlet内被访问,属于内部持久有效的变量。9. 什么是监听器?如何在JavaWeb项目中使用监听器?监听器:专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动。JavaWeb项目监听器的使用: ServletContextListener 接口用于监听 ServletContext 对象的创建和销毁事件。a. 当 ServletContext 对象被创建时,激发contextInitialized (ServletContextEvent sce)方法。b. 当 ServletContext 对象被销毁时,激发contextDestroyed(ServletContextEvent sce)方法。 HttpSessionListener 接口用于监听 HttpSession 对象的创建和销毁。a. 创建一个Session时,激发sessionCreated (HttpSessionEvent se) 方法b. 销毁一个Session时,激发sessionDestroyed (HttpSessionEvent se) 方法。 ServletRequestListener 接口用于监听 ServletRequest 对象的创建和销毁。a. 创建一个 ServletRequest 对象时,激发 requestInitialized(ServletRequestEvent sre) 方法。b. 销毁一个 Session 时,激发 requestDestroyed(ServletRequestEvent sre) 方法。下面是以 ServletContext 对象为例,对它的创建和销毁的代码示例:public class TestServletContextListener implements ServletContextListener public void contextDestroyed(ServletContextEvent arg0) /用 contextDestroyed 方法来实现 ServletContext 对象的销毁。System.out.println(contextDestroyed.);public void contextInitialized(ServletContextEvent arg0) /用 contextInitialized 方法来实现 ServletContext 对象的创建。System.out.println(contextInitialized.);下面是 ServletContext 对象监听器在 web.xml 文件中的注册代码示例: text.listener.TestServletContextListener10. 建立和使用监听器的步骤。 Servlet 规范为每种事件监听器都定义了相应的接口,开发人员编写的事件监听器程序只需实现这些接口,web 服务器根据用户编写的事件监听器所实现的接口把它注册到相应的被监听对象上。 一些 Servlet 事件监听器需要在 web 应用程序的 web.xml 文件中进行注册,一个 web.xml 文件中可以注册多个 Servlet 事件监听器,web 服务器按照它们在 web.xml 文件中的注册顺序来加载和注册这些 Serlvet 事件监听器。 Serlvet 事件监听器的注册和调用过程都是由 web 容器自动完成的,当发生被监听的对象被创建,修改或销毁事件时,web容器将调用与之相关的 Servlet 事件监听器对象的相关方法,开发人员在在这些方法中编写的事件处理代码即被执行。 由于一个 web 应用程序只会为每个事件监听器创建一个对象,有可能出现多个线程同时调用同一个事件监听器对象的情况,所以,在编写事件监听器类时,应考虑多线程安全的问题。11. 分析8个监听者。想知道一个 Web应用上下文中是否增加、删除或替换了一个属性ServletContextAttributeListener(attributeAdded,attributeRemoved,attributeReplaced)ServletContextAttributeEvent你想知道有多少个并发用户,也就是说想跟踪活动的会话HttpSessionListener(sessionCreated, sessionDestroyed)HttpSessionEvent每次请求到来时想知道以便建立日志记录.ServletRequestListener(requestlnitialized,requestDestroyed)ServletRequestEvent你想知道什么时候增加,删除或替换一个请求属性.ServletRequestAttributeListener(attributeAdded,attributeRemoved,attributeReplaced)ServletRequestAttributeEvent你有一个属性类(这个类表示的对象 将被放在一个属性中),而且你希望这个类型的对象绑定到一个会话或者会话删除时得到通知.HttpSessionBindingListener(valueBound,valueUnbound)HttpSessionBindingEvent你想知道什么时候增加,删除或替换一个会话属性.HttpSessionAttributeListener(attributeAdded,attributeRemoved,attributeReplaced)HttpSessionBindingEvent你想知道是否粗行间或撤销了一个上下文ServletContextListener(contextlnitialized,contextDestroyed)ServletContextEvent你有一个属性类,而且希望此类对象绑定的会话迁移到另一个JVM时得到通知SessionActivationListener(sessionDidActivate,sessionWillPassivate)HttpSessionEvent12. 如何让Servlet做到线程安全?Servlet线程不安全,主要原因在于实例变量的使用不当。解决办法有三:(1) 让Servlet类实现SingleThreadModel接口,该接口指定系统如何处理对同一个Servlet的调用,如果一个Servlet被指定实现这个接口,那么,在这个Servlet中的service方法将不会在两个线程中同时执行,也就是说执行完一个后再执行下一个请求的service,当然也就不存在线程不安全的问题了。代码如下: public class SecurityTest extends HttpServlet implements SingleThreadModel其实这方法也就相当于是同步方法的效果吧。(2) 同步对共享数据的操作。我们所熟悉的就是用synchronized关键字,这样能保证一次只有一个线程来操作被保护的区段。(3) 避免使用实例变量,而使用局部变量。因为Servlet线程不安全的原因是由实例变量引起,所以我们可以避免使用实例变量,而使用局部变量,线程之间很难直接访问局部变量 ,这样就从根本上解决了这一问题。在本例子中,就是将output放在service方法中当局部变量 。13. HttpServletRequest和HttpServletResponse中的常用方法?HttpServletRequest的常用方法:getAttribute()、setAttribute()、removeAttribute()、getAttributeNames()、getCharaterEncoding()、getParamter()、getParameterNames()、getParameterValues()、getParameterMap()、getRequestDispatcher()、getSession()等。HttpServletResponse的常用方法:sendError(int sc),sc状态号、sendRedirect(url)重定向、setStatus(int sc)设置状态号、set/getCharacterEncoding()、getOutputStream()获取二进制数据流、getWriter()获取字符流、reset()清除buffer,sc和headers、setBufferSize()获取缓冲区大小、flushBuffer()将缓冲区内容写到客户端等。14. servlet中重定向或者请求转发语句之后的程序是否还会执行?Request.sendRedirect(URL)之后的语句任然会执行request.getRequestDispatcher().forward(URL)之后的语句也会执行。15. 编写监听程序。import javax.servlet.ServletContext;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;public class MyListener extends implements ServletContextListener private static int countnum=0;public void contextDestroyed(ServletContextEvent sce) countnum+; public void contextInitialized(ServletContextEvent sce) countnum-; public static int getCountnum() return countnum;Web.xml中配置信息如下: com.etc.MyListener16. 什么是Session?session中常用的方法?Session即会话,通常用来跟踪用户的会话信息,如判断用户是否登录、或者网上购物的购物车的应用,用于跟踪用户购买的商品信息等。Session范围内的属性可以在多个页面的跳转之间共享。Session中常用的方法有:(1) setAttribute(String str1,String str2):设置session范围str1属性的值str2(2) getAttribute(String str):获得属性str的值(3) getAttributeNames():获得当前session内的所有属性名,返回数组(4) removeAttribute(String str):移除当前session的属性str(5) getId():获得当前session的sessionId(6) isNew():判断当前的session是否为新创建(7) invalidate():手动设置当前session失效17. 什么是cookie?cookie中常用的方法?Cookie,是在访问某个服务后,该服务通过浏览器保存少量信息在本地机上,用于下次访问相同服务时使用cookie中常用的方法:(1) getName():获得当前cookie的名字(2) getValue():获得当前cookie的值(3) setMaxAge(int time):设置当前cookie的有效时间为time秒(4) setValue(String str):设置当前cookie的值为str18. Session和cookie的区别?a) session保存在服务器缓存区,客户端不知道其中的信息;cookie保存在客户端,服务器能够知道其中的信息。b) session中保存的是对象,cookie中保存的是字符串。c) session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到。而cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的。d) session在用户会话结束后就会关闭了,但cookie因为保存在客户端,可以长期保存。 19. 什么是Filter?如何在JavaWeb项目中使用filter?Filter可认为是servlet的一种变种,它主要用于对客户的http请求进行预处理,然后将处理后的请求交给servlet进行处理并生成响应。JavaWeb中filter的实现:(1)首先,写一个满足您需求的实现接口filter中的方法,实现doFilter(ServletRequest request, ServletResponse response,FilterChain chain)方法(2)其次,在web.xml中进行配置:filterNamefilterClassfilterName.do上面这段代码主要是用来过滤所有.do的页面20. 什么是JDBC?JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。有了JDBC,向各种关系数据发送SQL语句就是一件很容易 的事。换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用,将Java语言和JDBC结合起来使程序员只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次21. JDBC的常用接口和类。(1) 类:DriverManager:用于加载和卸载各类驱动程序,并建立数据库的连接(2) 接口:Driver:数据库提供商提供的驱动程序类必须实现的接口Connection:表示与特定的数据库进行的连接Statement:用于处理sql语句,并将结果检索到resultset中PreparedStatement:用于执行预编译的sql语句ResultSet:表示从数据库中查询出来的数据集CallableStatement:为所有DBMS提供一种标准方式调用己存储过程的方法22. 简介使用JDBC的步骤。(1) 注册一个驱动(2) 建立与数据库的连接(3) 创建一个Statement(4) 执行sql语句(5) 获得处结果,(如果是查询,要将结果数据集保存在Resultset中,然后进行结果处理)(6) 释放资源,包括Resultset、Statement、Connection例:(以Mysql数据库的连接为例)Class.forName(com.mysql.jdbc.Driver);Connection conn=DriverManager.getConnection(jdbc:mysql:/localhost:3306/test,root,123);Statement sta=conn.CreateStaement();ResultSet re=sta.executeQuery(select * from t_user);while(re.next()Resultset.close();Statement.close();Connection.close();以上的代码会产生异常,所以需放在trycatch语句块中23. 什么是JNDI?JNDI的原理。JNDI(Java Naming and Directory Interface)是SUN公司提供的一种标准的Java命名系统接口,JNDI提供统一的客户端API,通过不同的访问提供者接口JNDI SPI的实现,由管理者将JNDI API映射为特定的命名服务和目录系统,使得Java应用程序可以和这些命名服务和目录服务之间进行交互。JNDI(Java Naming and Directory Interface)是一个应用程序设计的API,为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口,类似JDBC都是构建在抽象层上。JNDI架构提供了一组标准命名系统的API,这个基础API构建在与SPI之上, JNDI API提供了访问不同JNDI服务的一个标准的统一的实现,其具体实现可由不同的 Service Provider来完成。中间层为命名管理层。其功能应该由JNDI SPI来完成, 前面讲解的只是作为应用程序客户端的架构实现,其服务端是由SPI对应的公司/厂商来实现的,我们只需将服务端的相关参数传给JNDI API就可以了,具体调用过程由SPI来完成。24. 什么是JSP?JSP与HTML的区别?为什么要使用JSP?(1)JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。(2)Jsp和Html的区别:jsp是一种基于动态语言,jsp在容器中会被解释为servlet,然后解析jsp中的动态内容,最终还是会返回给浏览器html格式的语言,在html中书写jsp的内容,容器(tomcat等)就会把jsp转换成servlet进行解析,返回html。html只是静态的语言,所谓静态是指不能和服务器交互、查询数据等。但是任何的动态语言都不能脱离html而单独存在于一个网站上,因为没有静态的页面显示,无法给用户返回数据。(3)为什么要使用Jsp,是因为其具有以下几点Html所不具有的优点:a. 一次编译,多次、多处运行,代码的执行效率高JSP的脚本语言是JAVA语言,因此它具有JAVA语言的一切特性。同时,JSP也支持现在大部分平台。当JSP第一次被请求时,JSP页面转换成servlet,然后被编译成.calss文件,以后(除非页面有改动或Web服务器被重新启动)再有客户请求该JSP页面时,JSP页面不被重新编译,而是直接执行已编译好的.class文件,因此执行效率特别高。b. 组件的重用性可重用的、跨平台的JavaBeans和EJB(EnterpriseJavaBeans)组件,为JSP程序的开发提供方便,我们可以将复杂的处理程序(如页面中需要显示的动态内容及对数据库的操作)放到组件中。可以多次使用这些组件,极大的减少了在JSP页面中重写重复的代码。c. 将内容的生成和显示进行分离使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者脚本来生成页面上的动态内容。生成动态内容的语句一般被封装在JavaBean组件、EJB组件或JSP脚本段中。这样,页面的设计人员和页面的编程人员可以同步进行。同时在客户端通过查看源文件,看不到JSP标识的语句,更看不到JavaBean和EJB组件,也可以保护源程序的代码。25. Servlet和JSP的关系?从表面上看,JSP页面已经不再需要Java类,似乎完全脱离了Java面向对象的特征。事实上,JSP是Servlet的一种特殊形式,每个JSP页面就是一个Servlet实例JSP页面由系统编译成Servlet,Servlet再负责响应用户请求。JSP其实也是Servlet的一种简化,使用JSP时,其实还是使用Servlet,因为Web应用中的每个JSP页面都会由Servlet容器生成对应的Servlet。对于Tomcat而言,JSP页面生成的Servlet放在work路径对应的Web应用下。JSP是一种脚本语言,包装了Java Servlet系统的界面,简化了Java和Servlet的使用难度,同时通过扩展JSP标签(TAG)提供了网页动态执行的能力。尽管如此,JSP仍没有超出Java和Servlet的范围,不仅JSP页面上可以直接写Java代码,而且JSP是先被译成Servlet之后才实际运行的。JSP在服务器上执行,并将执行结果输出到客户端浏览器26. 简述JSP的生命周期。JSP生命周期包括以下阶段:(1)解析阶段:Servlet容器解析JSP文件代码,如果有语法错误,就会向客户端返回错误信息;(2)翻译阶段:Servelet容器把JSP文件翻译成Servelet源文件;(3)编译阶段:Servelet容器编译Servelet源文件,生成servelet类的class文件;(4)初始化阶段:加载与JSP对应的Servelet类,创建其实例,并调用它的初始化方法;(5)运行时阶段:调用与JSP对应的Servelet实例的服务方法;(6)销毁阶段:调用与JSP对应的Servelet实例的销毁方法,然后销毁Servelet实例。27. 简述JSP指令元素(page、include、taglib)。(1)page指令元素功能:设定整个JSP网页的属性和相关功能语法格式:属性(13个):. language=language 指定JSP Container要用什么语言来编译JSP网页。. extends=className 定义此JSP页面产生的Servlet是继承自哪个父类。必须为实现HttpJspPage接口的类。. import=importList 定义此JSP页面可以使用哪些Java API。. session=true|false 指明JSP页面是否需要一个HTTP会话,如果为true,那么产生的servlet将包含创建一个HTTP会话(或访问一个HTTP会话)的代码,缺省为true。. buffer=none|size in kb 指定输出流缓存的大小。. authflush=true|false: 决定输出流的缓冲区是否要自动清除。. isThreadSafe=true 此JSP页面能处理来自多个线程的同步请求,此值为true,否则为false,生成的servlet表明它实现了SingleThreadMode接口。. info=text 表示此JSP页面的相关信息,由getServletInfo()方法返回的。. isErrorPage=true|false 如果此页面被用作处理异常错误的页面,则为true. errorPage=error_url 表示如果发生异常错误,网页会被重新指向一个URL页面。. contentType=ctinfo 表示将在生成servlet中使用的MIME类型和可选字符解码。. pageEncoding=ctinfo 表示JSP页面的编码方式。. isELIgnored=true|false 表示是否在此JSP网页中执行或忽略EL表达式。(2)include指令元素功能:在JSP编译时插入包含一个文件。包含的过程是静态的,包含的文件可以是JSP、HTML、文本或是Java程序。语法格式:(3)taglib指令功能:使用标签库定义新的自定义标签,在JSP页面中启用定制行为语法格式:属性(

温馨提示

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

评论

0/150

提交评论