尚硅谷filterlistener课件及源码笔记全_第1页
尚硅谷filterlistener课件及源码笔记全_第2页
尚硅谷filterlistener课件及源码笔记全_第3页
尚硅谷filterlistener课件及源码笔记全_第4页
尚硅谷filterlistener课件及源码笔记全_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

1、TomcatIE0.学前交流0.1. 关于新技术学法(三步走) /WHAT?它是一个什么东西, 它有什么作用( WHY?它是为了解决什么问题而出现的?用它来做什么)?不用这个技术能不能实现它能实现的功能, 有什么问题?HOW?它涉及到哪些 API, 一些重要的接口或类都是什么角色, 分别用来做什么的SesFilterMy TagListenerCSSJSTLELI18NServletJSPHTMLHTTPFileuploadJSONAjaxXMLJSjQuery0.2. 关于一个新接口(类)的学习方法它是什么的抽象?它的对象都有哪些功能(方法)?0.3. 以 JDBC 来说明: List1.H

2、TML1.1.HTML 的常用表格 table/tr/td表单 form/ select/option/button/input(text/password/radio/checkbox/submit/reset/hidden) script:直接写代码 / src 属性style(直接写代码)/link(关联 css 文件)div..aimgiframe 相当地一个内部窗口(window)事件(事件属性)1.2.HTML 的类型结构Node(节点)(html 文件/文档)Element(/元素) Attribute(属性)Text(文本体)2.CSS2.1. 基本

3、语法组成selector property1: value1;property2: value2;2.2. CSS 选择器1). 基本选择器:(tagname),通配符(*),属性选择器( pname=value) ID(#id)class(. class)2). 组合选择器:分组选择器: selector1 ,selector 2后代选择器: selector1 selector 2子选择器: selector1selector 2相邻兄弟选择器: selector1+selector 22.3.CSS机制-盒子模型(Box M)外边距: margin边框: border内边距: paddi

4、ng3.JavaScript1.1.javascript 是什么?解释型面象,弱类型动态变量可以反复赋不同类型的值可以给对象动态添加属性/方法基于原型(对象)(不基于类)一般函数-构造函数functionvar p = new var t =()()(); /undefined数据的类型a. 基本类型:数值(number)字符串(string)-String s = “abc”; s.length布尔值( undefinedb. 对象类型:对象(object),数组(array),函数(function)var t; alert(t); alert(.tt);4. HTML DOM4.1.理解

5、 DOMNodeElementAttriubute(Attr)Text整个文档它是树状结构4.2.事件(事件句柄)window.onload = tt;/浏览器加载完整个文档后就会调用function tt()element.onclick = function()/点击 element 对应的调用;4.3.DOM 中的一些 CRUD 方法查询:.ge.ge.geementById(“id”);ementsByTagName(“tagname”);ementsByName(“nameAttrValue”);Node: nodeName, NodeValue, NodeTypeelement.c

6、hildNodeselement.Childelement.lastChildelement.ge增删改tributeNode(attrName);.createElement(tagname);-Element.createTextNode(content);-Text element.append(newElement);element.insertBefore(newElement,Child);element.innerHTML = “”;element.replaceChild(newElement, oldChild); element.removeChild(deleteChil

7、d);element.setribute(name, value);element.removeAttribute(name);5.jQueryjQueryi 源码的整体结构:(function(window) var jQuery = function(selector, context) return new jQuery.fn.init(selector, context, rootjQuery);window.jQuery = window.$ = jQuery;jQuery函数1 jQuery()$()2 调用$()得到的是一个 jQuery 对象$()的使用: 参数类型1 stri

8、ng 类型selector: 根据选择器去找对应jQuery 对象(数组), 并返回一个包含所有匹配的对象的格式: 创建对象, 并返回包含这个对象的 jQuery 对象2 function 类型:$(function();window.onload = function:在加载完文档后自动调用这个回调函数3 dom 对象类型 $(this)将 dom 对象包装成一个jQuery 对象jQuery 对象的使用); : 遍历jQuery 对象中包含所有dom 对象, 每取到一个 dom 对象都会调each(function()用 一个指定回调函数size()/length: 得到jQuery 对象

9、中包含所有 dom 对象的个数get(index)/ index: 根据下标得到jQuery 对象中包含对应的 dom 对象选择器基本选择器tagname/*#id / .class / attr=value selector1,selector2层次选择器12selector1selector2selector1 selector2selector1 +selector2 selector1 selector2过滤选择器都以:开头3jQuery 对象 DOM 数据进行 CRUD 操作)(window);: append()替换: replace()删除: empty()remove()6.w

10、eb 快速入门配置 tomcat解压 apache-tomcat-6.0.37-windows-x86.zip 到一个非中文目录下将tomcat 下的 bin 目录配置到 path (D:filesapache-tomcat-6.0.37bin)作用: 可以在任何目录执行bin 下的可执行文件找开命令行窗口, 执行: startup3说明: 需要配置一个 catalina_home 环境变量(它应该指向 tomcat 的安装目录)配置catalina=tomcat 的安装目录(D:filesapache-tomcat-6.0.37)重新启动一个命令行窗口, 执行startup45说明: 需要配

11、置一个 java_home 环境变量(它应该指向jdk 的安装目录)添加 java_home 环境变量:67 重新启动一个命令行窗口, 执行startup8:9 : 如果启动出错不能:tomcat 安装目录下/conf/server.xml, 修改它:将 8080 改为 898910 重新启动,:如果 tomcat 已经启动, 再次出现异常说明: 说明端口已经被绑定解决: 点击 shutdown 关闭运行的 tomcattomcat 的目录结构bin: 包含很多可以执行的文件catalina.bat: 启动 tomcat 的文件startup.bat: 启动 tomcat 的文件(调用 cat

12、alina.bat ) shutdown.bat: 关闭 tomcatconfserver.xml: 整个 tomcat 配置web.xml: 所有web 项目的 web.xml 继承了它webapps: 包含了很多 tomcat 管理的应用, 自动部署work:包含很多项目jsp-java/class时生成的文件配置 web 应用1 方法 1:将应用文件夹放入Tomcat 安装目录下的 webapps 文件夹下2.方法 2在 server.xml 文件中添加一个配置path: 指定的是虚拟路径(给浏览器docBase: 项目的绝对路径(给 tomcat用的)用)3 方法 3在confCata

13、linalocalhost 目录下创建XML 配置文件来配置Web 应用程序,Tomcat将以 XML 文件的文件名将作为 Web 应用程序的上下文路径手动创建一个可运行的 web 应用使用 Eclipse 创建 Web 应用1: 将 ecliipse 与 tomcat 关联2: 创建一个 tomcat 的实例, 修改其配置3: 创建一个动态的 web 应用4: 部署运行7. XMLxml 文件做什么?基本功能: 保存有关系的数据应用: 项目的配置的文件(web.xml), 数据传输的格式(webservice)xml 语法1: 文档2: 元素/3: 属性4: 文本Node: 必须在第一行体E

14、lementAttributeTextXML 文件将整个 xml 文档加载到内存中, 并生成一个包含所有数据的对象树DOM:-dom4j: 对 dom 进行了 api 级别的包含, api 使用更方便特点: 比较面象,可以 CURD 操作,但文件较大时不适合Sax: 基于事件方法回调机制, 将文件分隔成很多个小的部分, 每次一小部分数据就调用一个处理对象回调方法, 并把据的数据传入.方法执行完成以后自动下一个数特点: 文件较大也不会有问题, 但找到数据后也不中途停止pull: 原理同 sax, 一次只能一个小数据, 只有调用 next()才会下一个小数据特点:找到数据后,就可以停止工作,效率高

15、8.Servlet理解 Servlet服务端用来处理浏览器端的请求的一种组件(需要,一般都是自动创建,有生命周期,)第PULLDOM4JSax.xml.saxDOM.w3c.domJDKJAXP(规范)javax.xml.parsers编写 Servlet1: 写一个类 extends HttpServlet2: 重写 doGet/do 3: 在 web.xml 中t 方法(处理请求)这个类Servlet 处理请求的步骤1: 从请求获取请求中获取请求参数数据2: 对数据进行处理(操作数据库)3: 给浏览器返回一个响应数据Servlet 的生命周期生命周期方法:构造方法Init()service

16、()/ doGet()/do destroy()t()第一次请求调用: 构造方法 Init()service()/ doGet()/dot()后面的请求调用: service()/ doGet()/dot()当前 Servlet 对象之前: destroy()Servlet 的配置在 web.xml 中: 全类名(反射): 当前 Servlet 对应的虚拟路径(给浏览器用)它的值有几种类型:常规: /yy通配符:*.action*.do/xx/*/*ServletConfig它的对象代表什么?代表 Servlet 配置如何创建/得到它的对象?servlet.getServeltConfig()

17、如何使用它的对象?config.getServletName()config.getInitParameter(name); config.getServletContext();ServletContext:它的对象代表什么?代表当前整个应用(web.xml), 只有一个如何创建/得到它的对象?创建: tomcat 启动时会创建所有它管理应用的 ServletContext 对象得到: servlet.getServletContext();如何使用它的对象?得到应用的初始化参数: context.getInitParameter(name); (web.xml 文件)根据资源的虚拟路径得到

18、资源的本地路径: context.getRealPath()它是一个 Application 域对象:context.setribute(name, value)Object context.getribute(name);context.removeAttribute(name);实现: 实现多个 Servlet 之间的数据共享和HTTP 协议get 请求:GET /web09_servlet/HttpTestServlet?username=Tom&pwd=123 HTTP/1.1Accept: image/jpeg, application/x-ms-application, */*(浏

19、览器接收的数据类型) Referer: servlet/httpTest.jsp(发送请求所在资源的 path) Accept-Language:(接收的语言)User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media CentC 6.0; InfoPath.3; Tablet PC2.0)(浏览端的一些信息)Accept-Encoding: gzip, de

20、flate(能接收的压缩) Host: localhost(请求的主机)Connection: Keep-Alive (保持连接): JSESID=5C179D1FDF90B4B3DFFCD46A93A8A02E (数据)T 请求:HTTP 请求:HTTP 响应HTTP/1.1 200 OKServer: Apache-Coyote/1.1 (服务器的信息) Content-Length: 12 (响应体数据的大小)content-type: text/html; charset=GB2312 (响应体内容的类型)Set-:SS=Q0=5Lb_nQ; path=/search 将数据回送给 i

21、e Date: Fri, 25 Apr 2014 01:48:27 GMT (响应的时间)sucs2222!请求行(请求方式 请求资源路径 协议版本)多个请求头请求体(请求参数)T /web09_servlet/HttpTestServlet HTTP/1.1Accept: image/jpeg, application/x-ms-application, image/gif, */* Referer:Accept-Language:User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2

22、; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media CentC 6.0; InfoPath.3; Tablet PC2.0)Content-Type: application/x-www-form-urlencoded Accept-Encoding: gzip, deflateHost: localhost Content-Length: 21Connection: Keep-Alive Cache-Control: no-cache: JSESID=5C179D1FDF90B4B3DFFCD46A93A8A

23、02Eusername=Jack&pwd=123HTTP/1.1 200 OKServer: Apache-Coyote/1.1 Content-Length: 8Date: Fri, 25 Apr 2014 01:47:03 GMTsucs!请求行(请求方式 请求资源路径?参数 协议版本)多个请求头Get 请求与T 请求的区别转发请求与重定向我我小四小四我: 是浏览器/小四: 服务器端的二个资源转发重定向浏览器发了几次请求12二个资源得到的请求是否相同同一个请求不同的请求地址栏显示的是哪个路径请求的路径第 2 次请求的路径(重定向的)转发重定向GETT地址栏有请求参数(请求行)没有请求参数(

24、请求体)调用 Servlet 的哪个方法doGet()dot()是否安全不安全安全数据大小是否限制有限制没有限制200 代表成功302 代表让浏览器重新请求另一个资源404 找不到请求的资源500 服务器出问题了响应状态行(协议版本 响应码 响应提示信息)多个响应头响应体(给浏览器显示用的)今日问题HTTP 协议的理解?作用: 规范了浏览器与服务器进行交互的过程和交互数据格式HTTP 请求请求行 (请求方式 资源 path?name=tom&pwd=123 HTTP/1.1)请求头(key1:value1 key2:value2.)请求体(只有HTTP 响应t 请求有, 请求参数数据name=

25、tom&pwd=123)响应状态行(HTTP/1.1 200 ok)响应头响应体(浏览器显示的数据)GET 请求与T 请求的区别?request 的重要功能?request.getParameter(name);getRequestDispatchgetMethod()ath).forword(req, resp);setCharacterEncoding(“utf-8”)setribute(name, value);getribute(name);removeAttribute(name);getServletContext(); getRequestURI()getRequestURL()

26、;response 的重要功能?getWriter().write(String);sendRedirect(path);setCharacterEncoding(“utf-8”);setContentType(“text/html;charset=utf-8); addHead(name, value);请求转发与重定向区别?请求次数浏览器显示是否是请求路径是否可以共享请求数据(属性/参数)Servlet 的中文乱码问题?服务器得到浏览器提交的数据乱码GET: 修改 server.xml 中: URIEncoding=”utf-8” T: request.setCharacterEncodi

27、ng(“utf-8”);浏览器得到服务器响应的数据乱码response.setContentType(“text/html;charset=utf-8);设置服务器写数据的编码所用码表告诉浏览器用哪个码表path 路径问题?绝对路径是否需要写项目的虚拟路径?需要: 路径是浏览提交给服务器处理的页面路径/重定向不需要: 服务器项目转发/根据资源虚拟路径取本地路径Servlet 项目实战BaseCRUDDML-update() DQL-Query()如何将结果集封装指定类型的对象dbutils.jarQueryRunner: 对表数据进行 DML 和 DQL 操作的类DML-update(conn

28、ection, sql, params)DQL T query(conn, sql, ResultSendler rsh,Object. params)/conn, sql, params利用这个三参数乾查询操作-ResultSetResultSendler处理返回的ResultSet的对象BeanHandler(Class c): 将ResultSet中的第一条封装成一个对象id:1, name:tom, pwd:123,:nullc.newInstance();-空对象将各个字段的数据设置对应的属性中要求: 字段名与实体类属性名要一致(大小写)BeanLisndler : 将ResultS

29、et中的所有封装成对象集合publicupdate(String sql, Object params)public T query(String sql, Object params)public List queryForList(String sql, Object params)一个 web 项目的架构(MVC)bookusersServiceUserServiceUserUserServiceImplUserImplUserRegistServlet LoginServletregist.thmlregist_sucs.html regist_error.html/login 一套B

30、aseJDBCUtilsBean(实体类)ServletHTML/JSP9.JSP为什么要用 JSPHTML 只能显示静态数据, 不能动态数据 Servlet 可以用来显示动态数据, 但麻烦解决办法: HTML+Servlet-JSPJSP:写起来和看起来像 HTML跑起来就是 ServletJSP 运行的原理web 应用下所有 jsp 都会自动对应虚拟路径web11_JSP 应用下有 testJsp.jsp 文件:第一次请求 JSP/testJsp.jsp后面的请求jsp和 jsp 表达式page 指令% pagecontentType=text/html; charset=UTF-8 /指

31、定浏览器返回数据和浏览的用的码表pageEncoding=gbk /指定jsp转换为java文件所用的码表直接调用 testJsp_jsp 对象的_jspService(req, resp)处理请求构造方法init()_jspService(req, resp)返回浏览器进入 Servlet 的生命周期testJsp_jsp.classtestJsp_jsp.javatestJsp.jsp进入 Servlet 的生命周期JSP 九大隐含对象jsp 隐含对象: 在jsp 中可以直接使用的对象为什么有这些对象:public void _jspService(HttpServletRequest r

32、equest, HttpServletResponse response) throws java.io.IOException, ServletException PageContext pageContext = null; HttpSesses= null;Throwable exception = JspRuntimeLibrary.getThrowable(request); ServletContext application = null;ServletConfig config = null; JspWriter out = null;Object page = this; t

33、ry response.setContentType(text/html; charset=UTF-8);pageContext = _jspxFactory.getPageContext(this, request, response, null, true, 8192, true);_jspx_page_context = pageContext;application = pageContext.getServletContext(); config = pageContext.getServletConfig();ses= pageContext.getSes(); out = pag

34、eContext.getOut();_jspx_out = out;/页面的代码包含的动作: 在 jsp 转换为 java 文件时这个动作只执行一次-静态包含import=java.util.ArrayList,java.util.List /导包 isErrorPage=false /是否是一个错误页面 errorPage=/myerror.jsp /指定出错转向的错误页面 ses=true /是否自动创建ses对象%四个域对象:区别动态包含与静态包含/转发请求, 还可携带参数include:jsp:include:名称静态包含动态包含生成了几个java 文件12包含动作发生的时间jspja

35、va 文件每次请求时才发生动作发生的次数1第次请求都会发生response.sendRedirect();/重定向请求出错的 a 页面:页面运行抛出异常, 转向到 myerror.jsp错误信息页面 myerror.jsp exception.getMessage()通过在 web.xml 文件中定义: 如果请求的资源不存在自动转发到指定的页面404/myerror.jspout.write(使用out输出); /不会立即输出,先缓存起来, 到最后才一起输出response.getWriter().write(使用 response 输出); /立即输出pageContext: 只有当前页面可

36、共享 request : 同一个请求共享(转发请求) ses: 同一个会话共享(重定向) application: 整个应用共享今日问题:jsp 的运行原理和请求过程第一次请求: jsp-java-class-创建对象运行(init()_jspService()处理请求)后面的的请求: 调用对象_jspService()处理请求jsp 的表达式和的使用: 向浏览器输出数据JSP 的九大隐含对象pageContextPageContext当前页面request-HttpServletRequest同一个请求(转发)sesHttpSes同一个会话(同一个浏览器没有关闭窗口)(重定向)applica

37、tion-ServletContext整个应用setribute(name, value) /转发之前调用 ge tribute(name) /在页面取数据显示提示 removeAttribute(name)response-HttpServletResponse重定向exception-Throwable在错误页面显示异常信息out-JspWriterconfig-ServletConfig Object(this)JSP 的 page 指令index_jsp.javaindex.jsp (保存编码)index_jsp.class (输出编码)浏览器(编码)jsp 的静态包含与动态包含jsp

38、 的 forword 与 param使用转发到 other.jsp, 并添加了一个新请求参数10.ELEL 的作用向浏览器端输出属性或参数数据EL 隐含对象对象名称类型说明pageContextPageContext就是 jsp 的 pageContext$pageContext.reqontextPathrequestScopeMap包含了 request 中的所有属性sesScopeMap包含了 sess中的所有属性applicationScopeMap包含了 application 中的所有属性paramMap包含了请求参数(参数值只取第一个)paramValuesMap包含了请求参数(

39、参数值包含所有的值)静态包含动态包含动作发生的时间jspJavaclass 运行的时候生成了几个 Java 文件12动作会发生多少次1多次(每次请求发生)struts2使用 EL 取数据1: 通过点来取一般的对象: obj.pName Map 对象: map.keymap.class/通过反射调用对应的 get 方法/map.get(key)2: 通过来取map 的 key 是可能有空格的一般的对象: obj“pName” Map 对象: map“key”如果是从四个域对象中取数据, 可以省略它们,如果没有找到, 显示空串.自动从小到大找对应的属性.struts2 也有用到 ognl .EL

40、的运算运算都必须写在中算术,比较,逻辑empty 运算 /jQeury empty()/remove() null“”/空集合三目运算符11.JSTL为什么要用 JSTL?页面经常要动态的显示一个列表数据El 不能做循环用 jsp和 JSp 表达式来实现, 麻烦(写,读)JSTL 能做什么?输入输出,流程控制, 遍历,重定向(域对象/请求参数)JSTL 的库18”数据$ item .class $item.key $, $ sus.count$itemEL 函数名作用属性if一重条件判断test:值choose用于多重条件判断(包含下面的两个)没有when相当 if/elseiftest:值o

41、therwise相当于 else, 一个 when 都没有执行没有forEach遍历 Array/List/Set遍历 Map遍历连续的数值(分页)items: 用 el 取出域对象中的集合属性var: string 类型 key, 当前遍历的元素value:map 时是 entrybegin: 从集合的哪个下标开始取数据end: 最后取数据的下标和 Ses12.与 Ses的经典现实案例某咖啡厅推出了一个活动:累计喝五杯咖啡可以免费赠送一杯。他们该怎么实现呢?-方法一、咖啡厅服务费了几杯。记住每个客人,在他们来到咖啡厅时候,知道他们已经消方法二、给客人一张卡片上面就知道他已经消费了几了(id/

42、data)。他的消费次数,客人每次来都带上卡片,咖啡厅方法三、咖啡厅为每个客人登记消费次数要出示此卡,咖啡厅就能得到用户消费次数。方法二:方法三: ses(id/data),给客人一张会员卡(id),只id=count=2id=next3next210step: 隔几个(1)varSus: 包含 count 属性的对象count 标识当前数据是第几条是什么?保存请求状态的一种技术对应一个类浏览器端缓存, 它的对象代表一个数据的一个小纸片(数据(name=value)文件)?服务器端如何操作获取浏览器传过来的所有 cs = request.get/遍历这个 cs, 根据s();的 name 找到

43、想要的创建对象c = new(name, value);c.setMaxAge(age)age0告诉浏览器缓存到文件中(持久化返回给浏览器)将的数据response.add的数据 name value(host)path(c);/set-=?浏览器如何操作发: 浏览器每次提交请求时,都会找到匹配的数据交给服务器匹配的:比较的数据(/path)与请求 path如何交给服务器?: cName=cValue: JESID=xx收:浏览器接收到服务器返回的数据(读 set-响应头数据)根据的 age 值做不同的操作age0保存到文件中(持久化) , 如果有对应存在会替换以前的过了 age 指定的有效期

44、就会自动删除Ses是什么?是一个浏览器会话1 ses2 一门技术(购物车,登陆)3 HttpSes-seshashMapKey, Value)对象(debug)index key.hashCode()/数组长度key1value1key1value2key2value2Objectkey3key2key1Entrykey1value1EntryEntrykey2value2key1=value2EntryEntry如何得到或创建一个 Ses对象?request.getSes()jsp 页面中默认是自动创建 sesSes对象的功能?debug 查看如何实现关闭浏览器后还使用以前的 Ses?c =

45、 newc.setMaxAge(1223);(“JSESID”, ses.getId();c.setPath(projectPath);response.add(c);如何在浏览器禁用 Ses后还能共享 Ses数据?URL 重写response.encoderURL(url); url+”;jsesid=sesid”;使用 Ses如何实现防止表单重复提交?regist.jsp创建一个随机唯一值(id)ses.setribute(“token”, id);RegistServletString pToken = request.getparameter(“pToken”);String sTok

46、en = ses.getribute(“token”);if(pToken= sToken) /第一次ses else .removeAttribute(“token”);/重复提交/转向到错误提示页面13.JavaBeanJavaBean:一些类: 一些私有的成员变量, 成员变量对应 set/get 方法JavaBean 的属性set/get 方法去掉前面 get/get, 把一个字母变成小写后的字符串POJO: 一般的 Java 类对象重量级轻量级1.1.web 应用的三层架构不同的层次, 在应用中承担的功能职责是完全不同的: 负责处理与界面交互相关功能(Servlet(Filter)/J

47、SP/JavaBean): 负责复杂的业务逻辑计算和判断(Service): 负责将数据持久化()1.2.表示层的 MVC 模型: 数据模型(JavaBean)MView: 对互(JSP)Controllor: 程序的执行和控制(Servlet/Filter)表示层业务层持久层Java 应用程序的金字塔结构14.MY Tag:如何写一个自定义1 创建一个处理器类, 继承于 SimplTagSupport重写 void doTag() /操作2 创建配置文件: /WEB-INF/ tld/.tldatguiguhttp/mytagtagName处理器类全类名scriptless /体中可以写 E

48、LattrNametrue/false/是否必须的true/false/属性值是否可以用 EL 3 在 jsp 中使用自定义的导入库 使用处理器类相关 API处理器类就会调用SimplTagSupport:doTag(): 每次getJspContext(): 得到 JspContext 对象getJspBody(): 得到 JspFragement 的对象getParent(): 得到父JSPContext: 代表jsp 页面的处理器类的对象, 如果没有父它就是 nullgetOut().write(data); /向浏览器输出一个数据JSPFragement: 代表invoke(null)

49、:invoke(wirter):体的对象体, 在浏览器中输出体的内容体, 将体的内容保存到 writer,后面可以得到处理后再通过 JSPContext 对象输出练习:15.XML 约束要求:明白 XML 约束的作用看得懂如何引入 xml 约束基本看得懂 xml 约束的定义16.Filter(AOP)Filter 作用: 在请求到达请求的资源之前或资源处理请求之后,Servlet 作用: 处理请求写 Filter 的目的: 为了在 Servlet 中减少代码的编写Filter 的优先最高的, 它总比请求的目标资源优先执行erceptorerceptor-stack对请求进行过滤/过滤器的处理流

50、程编写 Fliter1 编写一个 Filter 接口的实现类,在 doFilter()对请求进行过滤2 配置这个 Filter(跟 Servlet 的配置基本相同)FilterChain代表匹配当前请求的所有 filter 对象组成的一个链filterChain.doFilter(): 调用下一个 Fitler 对象的 doFilter(), 如果没有,源处理直接交给请求的资Filter的请求类型request: 浏览器提交 的请求(默认) forword: 服务器内部的请求转发 配置:REQUESTFORWARDThreadLocaleThreadLocal:同一线程内在程序的不同阶段(不同

51、层)共享数据Mapthread3=conection3thread2=conection2thread1=conection1()makeOrder异常处理17.ListenerListener 的作用域对象的创建和12(request/ses/application)域对象的属性操作(添加/删除/修改) (request/ses/application)常用的 Listener 接口ServletContextListenerapplication 对象的创建和死亡contextInitialized(Event event) contextDestroyed(Event event)Htt

52、pSesListenerses对象的创建和sesCreated()sesDestroyed()ServletRequestListenerRequest 对象的创建和requestInitialized() requestDestroyed()ServletContextribuistenerapplication 的属性操作attributeAdded() attributeReplaced() attributeRmoved()HttpSesAttribuistenerses的属性操作attributeAdded()ServiceServletFlterJSP编写自定义 Listener1

53、 创建一个类实现上面的一或者多个接口, 2 在 web.xml 中写配置并在相应的方法中做一些事应用统计登陆用户的列表18.I18NAPILocale: 代表一个地区/国家的对象语言代码国家代码DateFormat: 格式化日期样式localMessage: 格式化带点位符的字符串带点位符的字符串 : 0 like 1, 1 like 2参数: 三个ResourceBundle: 对应某个资源文件baseName /Locale资源文件: baseName_语言代码_国家代码.propertiesJSTL/保存一个local 对象/在此之前先在域对象中保存了它/根据上面设置locale 和ba

54、sename 加载对应的资源文件attributeReplaced() attributeRmoved()ServletRequestribuistenerrequest 的属性操作attributeAdded() attributeReplaced() attributeRmoved()/value: 从EL 中取出date 对象/dateStyle: 指定日期的样式(LONG/SHORT/MEDIUM)/var: 将生成的日期字符串以什么为name 保存到域对象中fmt:formatDate value=$DATE dateStyle=LONG/从资源文件中以指定的key 取对应的Value 显示var=cDate/如果Value 中有点位符, 用param来指定/ value: 使用el 从域对象中取出一个数据19.Fileupload and downloadcommons-fileupload.jar 组件(框架)的 APIDiskFileItemFactory用来创建 DiskFileItem 对象的工厂DiskFileItem它的对象对应一个表单项(一般/文件)判断表单项是否为一般表单项: isFormField()表单项的name 属性值 : getFieldN

温馨提示

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

评论

0/150

提交评论