JAVAWEB编程介绍

上传人:工**** 文档编号:570251939 上传时间:2024-08-03 格式:PPT 页数:73 大小:1.30MB
返回 下载 相关 举报
JAVAWEB编程介绍_第1页
第1页 / 共73页
JAVAWEB编程介绍_第2页
第2页 / 共73页
JAVAWEB编程介绍_第3页
第3页 / 共73页
JAVAWEB编程介绍_第4页
第4页 / 共73页
JAVAWEB编程介绍_第5页
第5页 / 共73页
点击查看更多>>
资源描述

《JAVAWEB编程介绍》由会员分享,可在线阅读,更多相关《JAVAWEB编程介绍(73页珍藏版)》请在金锄头文库上搜索。

1、JAVA WEB编程介绍编程介绍3Sept.2008Confidential第四章:第四章:WEB应用开发应用开发学学时:5学学时教学方法:教学方法:讲授授ppt上机上机练习点点评案例分析案例分析目目标:本章旨在使用案例向学本章旨在使用案例向学员介介绍WEB应用开用开发的主要技的主要技术,包括,包括WEB资源的跳源的跳转和包含、基于和包含、基于MVC模式的模式的WEB应用、数据用、数据库连接接缓冲池、冲池、Filter等知等知识,学,学员应该掌握如下知掌握如下知识:1)HTTP重定向和重定向和请求求转发2)WEB应用的用的MVC模式模式3)使用)使用请求求对象共享数据象共享数据4)连接接缓冲池

2、的配置和冲池的配置和编程程3Sept.2008Confidential主要内容主要内容Web资源的跳转与包含基于MVC模式的Web应用Web层的错误处理使用数据库Filter3Sept.2008ConfidentialWeb资源的跳转与包含资源的跳转与包含3Sept.2008ConfidentialWEB资源的跳转和包含资源的跳转和包含ServerWebAWebB3Sept.2008ConfidentialWEB资源的跳转和包含资源的跳转和包含(续续)ServerWebAWebBURL:WebBHTTP重定向3Sept.2008ConfidentialWEB资源的跳转和包含资源的跳转和包含(续

3、续)HTTP重定向浏览器向服务器的WebA资源发送请求,服务器返回处理该请求的WebB资源的URL给浏览器,浏览器接收到该响应后,又将请求以Get方式重新发送给WebB资源,WebB处理后,由WebB向浏览器发回响应。3Sept.2008ConfidentialWEB资源的跳转和包含资源的跳转和包含(续续)如何进行HTTP重定向HttpServletResponse接口sendRedirect(Stringlocation)location:表示的是webB资源的URL,由客户端负责解析。URL如以“/”开始,“/”代表的是当前的服务器。3Sept.2008ConfidentialWEB资源的

4、跳转和包含资源的跳转和包含(续续)请求转发(服务器内部的转发,forward)ServerWebAWebBbody-3Sept.2008ConfidentialWEB资源的跳转和包含资源的跳转和包含(续续)请求转发浏览器向服务器的WebA资源发送请求,服务器将请求转发给WebB来处理,最后由WebB向浏览器发回响应。3Sept.2008ConfidentialWEB资源的跳转和包含资源的跳转和包含(续续)如何实现请求转发使用RequestDispatcher接口的如下方法:forward(ServletRequestreq,ServletResponseres)转发请求给相应的Web资源,对客

5、户的响应取决于转发后的Web资源RequestDispatcher:请求分派对象主要作用:实现服务器端Web资源的转发和包含3Sept.2008ConfidentialWEB资源的跳转和包含资源的跳转和包含(续续)如何获得RequestDispatcher对象方式1:使用ServletContext接口如下方法:getRequestDispatcher(Stringpath)path:表示的要转发的web资源,必须以“/”开始,“/”表示相对于Web应用的根目录。方式2:使用ServletRequest接口如下方法:getRequestDispatcher(Stringpath)path:表示

6、的要转发的web资源,是一个相对路径,由Web容器解析,“/”表示相对于Web应用的根目录3Sept.2008ConfidentialWEB资源的跳转和包含资源的跳转和包含(续续)重定向和请求转发的练习使用Servlet处理用户的登录请求,制作单独的欢迎和错误页面。3Sept.2008ConfidentialWEB资源的跳转和包含资源的跳转和包含(续续)重定向与转发请求的总结:尽管重定向和请求转发都可以让浏览器获得另外一个URL所指向的资源,但两者的内部运行机制有着很大的区别。具体包括:1、请求转发只能将请求转发给同一个WEB应用中的资源;而重定向不仅可以重定向到当前应用程序中的其他资源,还可

7、以重定向到同一个应用服务器的其他应用程序中的资源,甚至是使用绝对URL重定向到其他站点的资源。2、如果传递给sendRedirect方法的相对URL以“/”开头,它是相对于当前服务器的根目录;而请求转发方法指定的相对URL以“/”开头,它是相对于当前WEB应用程序的根目录。3、重定向的访问过程结束后,浏览器地址栏中显示的URL会发生改变,由初始的URL地址变成重定向的目标URL;而请求转发过程结束后,浏览器地址栏保持初始的URL地址不变。3Sept.2008ConfidentialWEB资源的跳转和包含资源的跳转和包含(续续)重定向与转发请求的总结:4、重定向对浏览器的请求直接作出响应,响应的

8、结果就是告诉浏览器去重新发出对另外一个URL的访问请求,这个过程好比有个绰号叫“浏览器”的人写信找张三借钱,张三回信说没有钱,让“浏览器”去找李四借,并将李四现在的通信地址告诉给了“浏览器”。于是,“浏览器”又按张三提供通信地址给李四写信借钱,李四收到信后就把钱汇给了“浏览器”。可见,“浏览器”一共发出了两封信和收到了两次回复,“浏览器”也知道他借到的钱出自李四之手。而请求转发是在服务器端内部将请求转发给另外一个资源,浏览器只知道发出了请求并得到了响应结果,并不知道在服务器程序内部发生了转发行为。这个过程好比绰号叫“浏览器”的人写信找张三借钱,张三没有钱,于是张三找李四借了一些钱,甚至还可以加

9、上自己的一些钱,然后再将这些钱汇给了“浏览器”。可见,“浏览器”只发出了一封信和收到了一次回复,他只知道从张三那里借到了钱,并不知道有一部分钱出自李四之手。3Sept.2008ConfidentialWEB资源的跳转和包含资源的跳转和包含(续续)重定向与转发请求的总结:5、请求转发的调用者与被调用者之间共享相同的request对象和response对象,它们属于同一个访问请求和响应过程;而重定向调用者与被调用者使用各自的request对象和response对象,它们属于两个独立的访问请求和响应过程。6、无论是请求转发还是重定向,在调用它们之前,都不能有内容已经被实际输出到了客户端。如果缓冲区中

10、已经有了一些内容,这些内容将被从缓冲区中清除。3Sept.2008ConfidentialWEB资源的跳转和包含资源的跳转和包含(续续)重定向与转发请求的比较:方法重定向:HttpServletResponse.sendRedirect(Stringurl)转发请求:RequestDispatcher.forward()相同点接收客户请求的是WebA,生成响应页面的是WebB区别:请求与响应的次数,重定向2次请求,2次响应,请求转发1次请求,1次相应。性能:请求转发快,重定向慢。地址栏:请求转发不变,重定向变化。访问内容:请求转发只允许在当前应用内转发,而重定向可以到任何web资源。3Sept

11、.2008ConfidentialWEB资源的跳转和包含资源的跳转和包含(续续)请求包含(服务器端的包含,include)ServerWebAWebBbody-在WebA资源的响应信息中包含WebB资源的输出3Sept.2008ConfidentialWEB资源的跳转和包含资源的跳转和包含(续续)如何实现请求包含:使用RequestDispatcher接口的如下方法:include(ServletRequestreq,ServletResponseres)3Sept.2008ConfidentialWEB资源的跳转和包含资源的跳转和包含(续续)JSP动作:JSP指令相对应,不同的是,JSP动作

12、是在请求处理阶段起作用。而JSP指令是在翻译阶段起作用。Jsp动作是使用xml语法写成的。Jsp规范定义了一系列的标准动作元素,它用jsp作为前缀。JSP标准动作的目标:运行时执行特定的处理,减少Scriptlet的使用。3Sept.2008ConfidentialWEB资源的跳转和包含资源的跳转和包含(续续)JSP动作语法格式:符合XML语法空元素:主要的actionname有include、forward、paramuseBean、getProperty、setProperty3Sept.2008ConfidentialWEB资源的跳转和包含资源的跳转和包含(续续)Jsp:forward使

13、用JSP动作进行转发请求。语法格式:示例:处理将当前请求转发给指定的Web资源,该资源可以是另一个jsp、servlet或者静态资源文件,与请求转发方法的作用相同。每当遇到此操作时,就停止执行当前的jsp,转而执行被转发的资源。如果已经向客户发出了响应数据,此操作将抛出异常page属性语法格式:page=“相对URI”,如果以“/”起始,表示相对于contextroot的URL,否则相对于当前JSP页面的URI注:注:不建议使用(因为请求转发跳到另一个页面,属于控制逻辑,所以应该写在控制器中。)3Sept.2008ConfidentialWEB资源的跳转和包含资源的跳转和包含(续续)Jsp:i

14、ncludeJSP动态包含,在运行时起作用。使用JSP动作进行转发包含。语法格式:示例处理将指定Web资源的输出包含在当前的响应输出中,与RequestDispatcher.include方法的作用相同。属性与jsp:forward动作相同3Sept.2008ConfidentialWEB资源的跳转和包含资源的跳转和包含(续续)Jsp:param主要用来传递数据。示例处理增加或替换请求中的参数说明:通常作为子元素,与include、forward等动作联用如果替换了请求的参数值,仅在次页面中优先使用属性name属性:指定参数名value属性:指定参数值3Sept.2008Confidentia

15、linclude指令指令include指令:在翻译时起作用,是静态包含。静态的包含就是指这个被包含的文件在翻译时将会被插入到jsp文件中去,被包含的文件可以是jsp文件、html文件、文本文件、inc文件等。因此可以把一个复杂的jsp页面分成若干简单的部分,可以大大增加jsp页面的管理性。示例处理在JSP主文件被翻译前加入file指定的文件内容,然后再进行翻译。file属性:被包含文件的相对路径。3Sept.2008Confidential基于基于MVC模式的模式的Web应用应用实现MVC3Sept.2008Confidential基于基于MVC模式的模式的Web应用应用MVC回顾M:Mode

16、l,代表模型。V:View,代表视图。C:Controller,代表控制器。使用MVC好处MVC的思想:实现了功能分离。提高程序的可扩展性、可重用性、为了变化而设计的思想。并且有利于分工合作。3Sept.2008Confidential基于基于MVC模式的模式的Web应用(续)应用(续)注册用户处理过程-非MVC模式3Sept.2008Confidential基于基于MVC模式的模式的Web应用(续)应用(续)注册用户处理过程-MVC模式3Sept.2008Confidential基于基于MVC模式的模式的Web应用(续)应用(续)实现MVC的组件ControllerServlet及普通Jav

17、a技术ViewJSP+自定义标签Model普通Java技术EJB其它:Hibernate(持久层)等3Sept.2008Confidential基于基于MVC模式的模式的Web应用(续)应用(续)模型、视图、控制器的关系:视图是如何显示,模型决定视图如何显示。视图的显示需要去模型中查找数据。视图发起改变模型的请求,控制器接受改变模型的请求,控制器负责修改模型。视图可能有多个,控制器可以选择要显示的视图。3Sept.2008Confidential基于基于MVC模式的模式的Web应用(续)应用(续)如何实现MVC?分离M、V、C分离业务逻辑M分离视图V剩下的是C部分,主要负责截获请求,调用业务逻

18、辑方法,进行转发或重定向。3Sept.2008Confidential基于基于MVC模式的模式的Web应用(续)应用(续)练习:把以前的登录练习使用MVC模式实现。其中:M:使用不同的JAVA类实现。C:使用Servlet实现。V:使用JSP实现。3Sept.2008Confidential基于基于MVC模式的模式的Web应用应用在Web层传递数据3Sept.2008Confidential使用请求对象共享数据使用请求对象共享数据ServletRequest接口:setAttribute(Stringname,Objectobject)getAttribute(Stringname):Obje

19、ctremoveAttribute(Stringname)getAttributeNames():Enumeration3Sept.2008Confidential练习练习登录示例成功页面显示用户名失败页面显示错误信息3Sept.2008ConfidentialWeb应用中的错误处理应用中的错误处理3Sept.2008ConfidentialWeb应用中的错误处理应用中的错误处理Web容器处理以下的错误HTTP错误Browser产生错误页面Servlet抛出的异常在servlet的doGet和doPost方法声明了IOException和ServletException,表明doGet和doP

20、ost方法中可能会抛出IOException和ServletException,如果发生,通常由web容器捕捉该异常,如果web容器容器捕捉该异常,则生成缺省的错误页面,web容器默认设置HTTP状态代码设置为500,然后在html页面中打印异常的堆栈信息。3Sept.2008ConfidentialWeb应用中的错误处理(续)应用中的错误处理(续)自定义Http错误的处理页面:在DD文件中配置HTTP错误的处理页面示例404/error/404.jsp如果发生(error-code)指定的HTTP错误,Web容器将请求转发给(location)指定的Web资源。3Sept.2008Confi

21、dentialWeb应用中的错误处理(续)应用中的错误处理(续)定义异常处理页面在DD文件中配置异常处理页面示例java.lang.Exception/error/exception.jsp表示如果web容器捕获了java.lang.Exception时,web容器将请求转发给/error/exception.jspweb资源来处理。3Sept.2008ConfidentialWeb应用中的错误处理(续)应用中的错误处理(续)Web容器处理异常的机制Web容器捕获Servlet中抛出的异常,如果异常类型与(exception-type)指定的相匹配:容器将异常对象及请求的URI保存在请求对象中

22、,key值:“javax.servlet.error.exception”“javax.servlet.error.request_uri”容器将请求转发给(location)指定的Web资源3Sept.2008ConfidentialWeb应用中的错误处理(续)应用中的错误处理(续)JSP中的错误:翻译时(解析错误)编译时(代码错误)运行时(异常或逻辑错误)JSP中异常的处理JSP页面代码可以抛出任意异常对象,抛出的异常在_jspService方法中被处理。抛出_jspService方法中的异常由Web容器处理。可以为当前页面指定一个异常处理页面,处理当前页面抛出的异常3Sept.2008C

23、onfidentialWeb应用中的错误处理(续)应用中的错误处理(续)为当前页面指定异常处理页面,使用page指令page指令的errorPage属性指定处理此JSP页面的异常处理页面语法:errorPage=“相对URL”相对URL以“/”起始,表示相对于contextroot的URL;否则,相对于当前JSP页面的URLpage指令的isErrorPage属性声明此JSP页面是否是其它JSP页面的异常处理页面属性值是true或者false(缺省值)如果为true,可以引用异常对象exception如果JSP页面没有设置errorPage属性,出现异常时,会找web.xml中的error配置

24、。如果web.xml中没有配置error项,容器会使用默认的处理。3Sept.2008ConfidentialWeb应用中的错误处理(续)应用中的错误处理(续)为当前页面指定异常处理页面/throws_error.jsp的page指令/error/ExceptionPage.jsp的page指令处理示意图3Sept.2008ConfidentialWeb应用中的错误处理(续)应用中的错误处理(续)/hello.htm访问欢迎文件时,在地址栏中的url写到contextroot后,回车,会自动显示该文件。例如:原来要访问hello.html需要在地址栏中写/hello.html,配置欢迎页面后,

25、只写就可以了。相对路径都是相对于contextroot的。在DD文件中定制欢迎页面3Sept.2008Confidential使用数据库连接缓冲池使用数据库连接缓冲池3Sept.2008Confidential使用使用JDBC连接数据库连接数据库回顾JDBC的工作步骤引入必要的类加载驱动程序标识数据源、获得一个连接对象分配一个statement对象SQL语句的执行从返回的结果既中遍历数据关闭ResultSet对象、Statement对象、Connection对象3Sept.2008Confidential使用使用JDBC连接数据库(续)连接数据库(续)在.oracleora92jdbclib路

26、径下,找到classes12.jar文件包,并导入eclipse工程中Class类中提供加载驱动程序的方法:publicstaticClassforName(StringclassName)throwsClassNotFoundExceptionOracle驱动的类描述符为:oracle.jdbc.driver.OracleDriverDriverManager类提供getConnection方法可获得指定数据库的连接对象:publicstaticConnectiongetConnection(Stringurl,StringuserName,Stringpassword)throwsSQLE

27、xceptionOracle数据库的url格式为:jdbc:oracle:thin:1521:3Sept.2008Confidential使用使用JDBC连接数据库(续)连接数据库(续)Connection类中提供可获得Statement对象的方法StatementcreateStatement()throwsSQLExceptionStatement类提供可执行SQL命令的方法,并可获得结果集ResultSetexecuteQuery(Stringsql)throwsSQLExceptionResultSet类提供可对结果集进行操作的方法:booleannext()throwsSQLExce

28、ption可调用类ResultSet、Statement、Connection中的关闭方法,立即释放数据库和JDBC相关资源:voidclose()throwsSQLException3Sept.2008Confidential使用数据库连接缓冲池使用数据库连接缓冲池JDBC连接数据库缺点:创建数据库连接时间较长,对程序性能有较大影响。web应用程序需要频繁使用数据库连接。3Sept.2008Confidential使用数据库连接缓冲池(续)使用数据库连接缓冲池(续)数据库连接池:其实就是用一个抽象的数据类型去保存返还的数据库连接如向量,列表.在数据库操作完成时我们并不是关闭连接而是把这个连接

29、返还给这个抽象的数据类型(池)去保存。当我们需要数据库连接时也不是急于创建新的数据库连接,而是先从池中去搜索可用的连接,只有当池中没有可用的连接时才创建新的连接。当然搜索过程还要删除池中的无效连接,创建新连接也要有一定的限制条件如允许的最多连接数目等等。3Sept.2008Confidential使用数据库连接缓冲池(续)使用数据库连接缓冲池(续)使用连接池的必要性: 因为数据库连接要占用数据库端的资源,所以使用后要关闭连接。动态Web站点往往用数据库存储的信息生成Web页面,每一个页面请求导致一次数据库访问。连接数据库不仅要开销一定的通讯和内存资源,还必须完成用户验证、安全上下文配置这类任务

30、,因而频繁的获得连接和关闭连接,往往成为最为耗时的操作。如果某个基于数据库的Web应用只需建立一次初始连接,不同页面请求能够共享同一连接,就能获得显著的性能改善。3Sept.2008Confidential使用数据库连接缓冲池(续)使用数据库连接缓冲池(续)使用连接池的必要性:在传统的两层结构中,客户端程序在启动时打开数据库连接,在退出程序时关闭数据库连接。这样,在整个程序运行中,每个客户端始终占用一个数据库连接,即使在大量没有数据库操作的空闲时间,如用户输入数据时,从而造成数据库连接的使用效率低下。在三层结构模式中,数据库连接通过中间层的连接池管理。只有当用户真正需要进行数据库操作时,中间层

31、才从连接池申请一个连接,数据库操作完毕,连接立即释放到连接池中,以供其他用户使用。这样,不仅大大提高了数据库连接的使用效率,使得大量用户可以共享较少的数据库连接,而且省去了建立连接的时间。3Sept.2008Confidential使用数据库连接缓冲池(续)使用数据库连接缓冲池(续)使用连接池如何进行数据库操作?和JDBC不同的只是获得连接的方法不同,其他方法与前面讲的步骤一样。连接也要关闭,只是关闭后,返回给连接池。3Sept.2008Confidential使用数据库连接缓冲池(续)使用数据库连接缓冲池(续)如何使用连接池获取连接:数据源(DataSource):在JDBC2.0中,提供了

32、javax.sql.DataSource接口,它负责建立与数据库的连接,在应用程序访问数据库时不需要编写连接数据库的代码,可以直接从数据源获得数据库连接。在DataSource中事先建立了多个数据库连接,这些数据库连接保存在连接池(Connect Pool)中。Java程序访问数据库时,只需要从连接池中取出空闲状态的数据库连接;当程序访问数据库结束,再将数据库连接放回连接池。使用DataSource.getConnection()方法,可以获得数据库连接对象connection。3Sept.2008Confidential使用数据库连接缓冲池(续)使用数据库连接缓冲池(续)如何获得数据源(Da

33、taSource)对象?一个数据源(DataSource)对象映射一个数据库连接池(或多连接池),并使用JNDI在命名目录服务中注册连接池。 具体代码如下:/DataSource注册到JNDI上,利用JNDI来获得DataSourceContextcontext=newInitialContext();ds=(DataSource)context.lookup(java:comp/env/jdbc/course);conn=ds.getConnection();3Sept.2008Confidential使用数据库连接缓冲池(续)使用数据库连接缓冲池(续)命名与目录服务:命名服务:通过名字查找

34、到特定的值,如114电话查询。命名服务是网络上一个基础的服务,如大家都使用的DNS服务,是将域名解析成IP地址。目录服务:目录服务可以理解为是命名服务的一个扩展,如LDAP(LightweightDirectoryAccessProtocol)。命名和目录服务不是专属于java的,属于网络的。但是java有专门的APIJNDI(javanaminganddirectoryinterface),是使用java访问名字和目录服务的API。3Sept.2008Confidential使用数据库连接缓冲池(续)使用数据库连接缓冲池(续)JNDI:全称javanaminganddirectoryinte

35、rface,表示Java命名接口与目录。Java命名接口与目录是一个API,它提供了用来连接命名与目录服务的一个接口。命名服务的作用就像一个网络上的储藏库,系统可以访问他来查找信息。这使得我们能够在我们的应用程序中消除对特定JDBC驱动程序或JDBCURL的依赖性。使用javax.naming.context.lookup(Stringname)方法,通过名字得到数据源对象。3Sept.2008Confidential使用数据库连接缓冲池(续)使用数据库连接缓冲池(续)配置DataSource在Web应用中配置META-INF/context.xmlContext/Resourcename代码

36、示例Contextcontext=newInitalContext();DataSourceds=(DataSource)context.lookup(“java:comp/env/”);Connectionconn=ds.getConnection();3Sept.2008Confidential小结使用JDBC编写数据库访问程序的步骤使用JDBC连接池编写数据库访问程序的步骤JNDI使用数据库连接缓冲池(续)使用数据库连接缓冲池(续)3Sept.2008Confidential练习使用数据源进行数据库连接。使用数据库连接缓冲池(续)使用数据库连接缓冲池(续)3Sept.2008Confid

37、entialFilter过滤器过滤器3Sept.2008ConfidentialFilter过滤器过滤器Filter:Filter可以挡在web应用(servlet)之前。意味servlet被调用之前,filter代码先被执行。3Sept.2008ConfidentialFilter过滤器(续)过滤器(续)FilterChain:一个web资源可以添加多个过滤器。3Sept.2008ConfidentialFilter过滤器(续)过滤器(续)FilerMapping:过滤器可以有选择的挡在web资源之前,是可以配置的。通过FilterMapping进行配置。3Sept.2008Confiden

38、tialFilter过滤器(续)过滤器(续)Filter的配置:filter在使用之前,必须要在web.xml文件中进行配置,如下。setcharencodingorg.training.course.filter.setCharEncodingsetcharencoding/*3Sept.2008ConfidentialFilter过滤器(续)过滤器(续)javax.servlet.Filter接口:所有的过滤器要实现的接口。init(FilterConfigconfig):doFilter(ServletRequestrequest,ServletResponseresponse,Filt

39、erChainchain)destroy():javax.servlet.FilterChain接口:是容器提供给开发者的一个对象,用于资源请求调用的一个链表,过滤器使用FilterChain来调用链表里的下一个过滤器!调用完链表里最后一个过滤器以后,再继续调用其它的资源。doFilter(ServletRequestrequest,ServletResponseresponse):如果过滤器链表里没有其它过滤器的话,这个过滤链的调用就会转到其它资源的调用。3Sept.2008ConfidentialFilter(过滤器过滤器)(续)(续)1、建立一个实现Filter接口的类。这个类需要三个方

40、法,分别是:doFilter、init和destroy。doFilter方法包含主要的过滤代码(见第2步),init方法建立设置操作,而destroy方法进行清除。2、在doFilter方法中放入过滤行为。doFilter方法的第一个参数为ServletRequest对象。此对象给过滤器过滤器提供了对进入的信息(包括表单数据、cookie和HTTP请求头)的完全访问。第二个参数为ServletResponse,通常在简单的过滤器过滤器中忽略此参数。最后一个参数为FilterChain,如下一步所述,此参数用来调用servlet或JSP页。Filter开发过程3Sept.2008Confiden

41、tialFilter(过滤器过滤器)(续)(续)3、调用FilterChain对象的doFilter方法。Filter接口的doFilter方法取一个FilterChain对象作为它的一个参数。在调用此对象的doFilter方法时,激活下一个相关的过滤器过滤器。如果没有另一个过滤器过滤器与servlet或JSP页面关联,则servlet或JSP页面被激活。4、对相应的servlet和JSP页面注册过滤器过滤器。在部署描述符文件(web.xml)中使用filter和filter-mapping元素。Filter开发过程3Sept.2008ConfidentialFilter过滤器(续)过滤器(续

42、)Filter执行过程:当Filter对象被创建时,容器会调用Filter的Init()方法。当Filter对象被销毁时,容器会调用Filter的destroy()方法。当Filter对象处理请求时,容器会调用Filter的doFilter()方法。注意:FilterChain接口的doFilter方法与Filter接口的doFilter方法有何不同?当请求过来时,Filter接口的doFilter方法被调用,请求还要继续向下走,请求如何继续执行,在Filter接口的doFilter方法中,调用FilterChain接口的doFilter方法。否则请求就中断了。3Sept.2008ConfidentialWEB资源的跳转和包含结合登录案例,学习servlet编程方法请求转发重定向MVC模式基于MVC的web应用Web应用的mvc模式使用请求对象共享数据总结总结3Sept.2008Confidential使用数据库连接缓冲池使用JDBC编写数据库访问程序的步骤使用JDBC连接池编写数据库访问程序的步骤FilterFilter接口的使用Filer配置总结(续)总结(续)3Sept.2008ConfidentialCopyright2008版权所有 东软集团

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号