版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2013版计算机二级考试WEB程序复习重点一、HTTP什么是HTTP协议、(请求响应模式、无状态)超文本传输(HTTP)协议(HTTP-Hypertexttnuisfeiprotocol)是分布式,协作式,超媒体系统 应用之间的通信协议。是万维网(woHdwideweb交换信息的基础。HTTP的处理流程:建立连接、发出请求、生成响应、关闭连接HTTP请求和响应协议的组成部分Http请求:1.请求行响应:1.状态行2. 请求头2.响应头3. 空行3.空白行4. 消息体4.消息体get和post的区别1. Post传输数据时,不需要在URL中显示出来,而Get方法要在URL中显示。2. Post传
2、输的数据量大,可以达到2M,而Get方法由于受到URL长度的限制,只能传 递大约1024字节.3. Post顾名思义,就是为了将数据传送到服务器段,Get就是为了从服务器段取得数据.而 Get之所以也能传送数据,只是用来设计告诉服务器,你到底需要什么样的数据.Post的信息作 为http请求的内容,而Get是在Http头部传输的。CGI是什么?特点是什么?缺陷?CGI:用网关接丨 I (ConunonGatewayliiterface)优点可以和系统底层相互通讯。缺点就是每一个连接都启动一个进程。很消费系统的资源。容器是什么?有什么作用?容器:web容器是一种服务程序,在服务器一个端I I就有
3、一个提供相应服务的程序,而这个程 序就是处理从客户端发出的请求,如JAVA中的Tomcat容器,ASP的US或PWS都是这样 的容器。一个服务器可以多个容器。作用:(就是一种所谓的中间件,用来运行java程序的。)web容器主要是用于给处于容器中的应用程序组件(servletjsp)提供一个环境,使 sender,jsp直接跟容器中的环境变量交互。这样,我们就可以把注意力放在用servlet实现业 务逻辑上,而不必为系统底层服务容器对Servlet的支持包括:通信支持(利用容器提供的方法)生命周期管理(容器控制着sender的生死)多线程支持(容器会自动地为它接收的每个servlet请求创建一
4、个新的java线程)支持JSP (容器会自动把JSP翻译成为sendetjava代码)处理安全性(jawweb应用程序通常需要实现安全控制,限制用户可以访问的资源) Servlet是什么?规范/一系列接I 1和类/Web容器和Servlet程序之间通讯的基础Servlet是一个在web服务器端或者应用服务器端运行的jaw程序,主要用于在服务器端产生动态内容Servlet规范的组成:1)Web应用程序2)Servlet 和 HTTPServlet3)过滤器4)安全5)国际化读取客户端发送的显式和隐式数据、生成结果、向客户端发送显式数据(即文档)和隐式 数据(HTTP响应数据)Web容器与Serv
5、let如何配合处理请求1)客户端向Web服务器发起一个HTTP请求。2)HTTP请求被Web服务器接受,如果请求的是静态页面,则由Web服务器负责处理。如果请求的是JavaWeb组件(Servlet或者JSP),则移交给Web容器。Web容器可以在主机的同一个进程、不同的进程或其他的Web服务主机的进程中启动。3)Web容器根据Servlet的配置文件确定调用的具体Seivlet类,并把request对象、response对象传给它。4)Servlet通过request对象知道客户端的使用者是谁,客户的请求信息是什么和其他的一些信息。Seivlet处理完请求后把要返回的信息放入response
6、对象返回到客户端。5)旦Seivlet完成了请求的处理,Web容器就会刷新response,把控制权返回给web服务器二、Web应用程序的组成结构项目根目录WEE-INF-libclassesco mo vo.shppmg.po.xxxxweb.xml(所有应用程序的配置文件都统一命名)Tomcat介绍、目录结构如何在Tomcat F手工部署一个Web应用程TomcatSeivlet/JSP6.X2.5/2.15.X2.4/2.04.X2.3/1.23.X2.2/1.1三、了解、认识 ServletAPIServletGenericServletHttpServlet 关系javax.serv
7、let.GenericServlet 实现了 Servlet 接 I 1javax.sendet.http.HttpSeivlet 继承自 javax.seivlet.GenericSeivlet 类所以编写 Sen-let 继承 HttpServlet 或 GenericSeivlet 即 叭如何编写自定义的Servlet代码1、 追加坏境变量seivlet-api.jar,编写自定义seivlet继承HttpS亡rvlw 并重写doGet方 法注成class文件待用(访问控制符应该是public)2、在webapps目录下找到example中的WEEINF, copy其中的web.xml3
8、在webapps目录卜生成自己的文件夹,copyWEEINF/w亡b.xml如何部署Servlet(web.xml)、SendetUil映射路径(注意*的使用)servlet!-servlet的名字,随便起个名,但和下面的servlet-name名一致-sendet-namemgc/servlet-name!WEE-INF中文件路径一 sendet-classAiivDiiectoivSeivletClassName/sendet-classJJ!一或者可以用 sendetclass:jsp-file/WEB-INF/hello.jsp/jsp-file-/seivletsendet-niap
9、pmg! -servlet的名字,随便起个名,但和上面的servlet-name名一致-sendet-namemgc/servlet-name!-访问映射路径-uil-pattenVhello/url-pattern/servdet-mappmgServlet生命周期:类加载、实例化、初始化、服务、销毁service(HttpServIetRequestreqiiest,HttpServletResponseresponse)方法的作用:根据不同的请求,进行分发工作(Http协议) init(SenTletConfigconfig)j init0方'去当容器(tomcat)帮忙调用ui
10、it(Sen4etConfigconfig)并且给传过来一个参数config,这个方 法把参数对彖的引用指向类的成员变量this.config,并且调用类的血s.imtO方法。如果我们 在写Seivlet类时只要重写mit(SeivletConfigcoiifig)就口J以了,但是niitQ不就成了多余的了 吗?实际上方法是为了防止程序员在写Servlet类重写init(Sen4etConfigcoiifig)时忘记写 super.mit(SeivletConfigconfig),这样就容易造成出现空指针异常。而这就要求我们最好不要重 写 init(SeivletConfigcoiifig)
11、o配置Servlet初始化参数:liiit-parampaiam-nameparam-valueSendetContext 上下文是什么?和 Sen-let> SeivletConfig 的关系ServdetContext:sendetContext接I I是Servlet中最人的一个接I I,呈现了 web应用的Servlet视图。 SeivletContext 实例定通过 getSeivletContext()方法获得的,由于 HttpServlet 继承 Seivlet 的关 系GeneiicServdet类和HttpServlet类同时具有该方法。Servlet. Servlet
12、Config 的关系:?四、HttpServetlResponse设置Http状态码:setStatus(intcode);设置Http响应头:setHeader(headeniaiiie,value);getHeader(headernaine)getHeaders()设置响应内容类型:代 sponse.s 亡tCon 忙 ntType(text/html);-textxiiil> iinage/gif image/jpeg设置Http消息体(出现在设置响应内容之后):文本字符:PrmtWnterout=response.getWriterQ; 进 制 流:SeivletOutputS
13、tieam(extendsOutputStieam)out= response.getOutputStreamQ;设置字符编码集(处理中文乱码),要求出现在得到请求数据和响应内容的前面 客户端重定向原理(302响应吗)及特点:HttpSeivletResponsesendReduect(uii);HttpSeivetRequest得到请求行:getMethod()得到请求头:getHeadei(headername)、getHeadersQ获取浏览器信息 getHeader(User-Agent); 得到请求参数:getParameter(paiam)、getParameteis(paiain
14、) 服务器端转发:得到RequestDispatcher的方式有哪些? request.getRequestDispatcherO;senTletContext.getRequestDispatcher(/xxxx);sendetC ontext.getN amed Seivlet(serlve t-naine);forward(request,response) include(request,response)KSOforward方法是把请求的内容转发到另外的一个servlet/jsp.include是把另一个seivlet/jsp处理过后的内容拿过来与此时seivlet的内容一同输出.
15、转发与客户端重定向的区别?重定向:以前的request中存放的变量全部失效,并进入一个新的request作用域。 转发:以前的request中存放的变量不会失效,就像把两个页面拼到了一起。请求范围:HttpServletRequestn ServIetContext 的范围区别setAttnbute(Stimgkey.Objectvralue);Objectobj=getAttiibute(Stiingkey);iemoveAttribute(Stn ngkey);conteiixt-paramparam-name/param-nameparam-value/param-value/conte
16、iixt-paiamWeb应用程序状态管理方式:隐藏字段、Cookie> HttpSession. URL 重写为什么需要状态管理?根本原因是由于Http协议是无状态的造成的什么是Cookie?原理?如何使用?Cookie 原理:ession是一种保存上下文信息的机制,它是针对每一个用户的,变量的值保存在服务器 端,通过SessionlD来区分不同的客户,session是以Cookie或URL重写为基础。默认使用 Cookie来实现,系统会创造一个名为JSESSIONID的输出Cookie,或称为SessionCookie, 以区别PeisistentCookies(通常所说的Cooki
17、e).SessionCookie是存储在浏览器中,并不是写在 硬盘上的,但是把浏览器的Cookie禁止后,使用response对彖的encodeURL或 encodeReduectURL方法编码URL, WEE服务器会采URL重写的方式传递Sessiomd,用户 就可以在地址栏看到jsessiomd=A09JHGHKHU68624309UTY84932之类的字符串°通常SessionCookie是不能跨窗I I使用,当用户新开了一个浏览器进入相同的页面时, 系统会赋予用户一个新的SessioiiID,这样信息共享的目的就达不到,此时可以把SessionlD 保存在Persistent
18、Cookie中,然后再新的窗I I中读出来,就可以得到上一个窗I I的SessionlD 了,这样通过SessionCookie和PersistentCookie的结合,实现了跨窗I I的会话跟踪。Cookie和会话状态什么是Cookie?Cookie是一小段文本信息,伴随着用户请求和页面在Web服务器和浏览器之间传递。 用户每次访问站点时,Web应用程序都可以读取Cookie包含的信息。Cookie的基本工作原 理如果用户再次访问站点上的页面,当该用户输入URLwww.*.com时,浏览器就会在 本地硬盘上查找与该URL相关联的Cookie3如果该Cookie存在,浏览器就将它与页面请求 一
19、起发送到您的站点。Cookie有哪些用途?最根本的用途是:Cookie能够帮助Web站点保存有关访问者的信息。更概括地说,Cookie 是一种保持Web应用程序连续性(即执行“状态管理”)的方法.使Web站点记住您.什么是会话Session?当用户访问您的站点时,服务器会为该用户创建唯一的会话,会话将一直延续到用户访 问结束。session的工作原理就session的实现而言,好像是这样的:(1) 当有Session启动时,服务器生成一个唯一值,称为SessionlD (好像是通过取进程 ED的方式取得的)。(2) 然后,服务器开辟一块内存,对应于该SessionlDo(3) 服务器再将该Se
20、ssionlD写入浏览器的cookie(一些在网页的源代码中有所体现)。(4) 服务器内有一进程,监视所有Session的活动状况,如果有Session超时或是主动关 闭,服务器就释放该内存块。(5) 当浏览器连入US(服务器)时并请求的ASP(脚本语言)内用到Session时,IIS(服务器) 就读浏览器Cookie中的SessionlD3(6) 然后,服务检查该SessionlD所对应的内存是否有效。(7) 如果有效,就读出内存中的值。(8) 如果无效,就建立新的Sessiono注意:在大浏览量的网站,Session并不保险,我们过去的网站就经常碰到存在Session中得 值不正确(可能出
21、现重复的SessionlD)。SessionlD不能从硬盘上的Cookie文件获得,如呆想在客户端获知自己的SessionlD, 只能通过Javascript来读取。会话失效的三种情况(服务器重启/关闭、会话超时(-1永不失效)、invalidateQ)设置键值对 setAttiibute(key,value);Objectobj=getAttribute(key);为什么需要URL重写?Stnngsti-HttpServ7letResponse.encodeURL(Stiinguil);uilJsessionid=sessionid对于搜索引擎而言,在主观上对静态页面和动态页面并没有特殊的好
22、恶,只是很多动态 页面的参数机制不利于搜索引擎收录,而静态页面更容易收录而已。此外,页面静态化在一 定程度上也提高了页面访问速度和系统性能及稳定性一-这使得在搜索引擎优化上面,为使 得效果更加明显,问题简单快速解决,大家对站点的静态化非常的看重。URL应当是用户友好的;URL应当是可读的:URL应当是可预测的:URL应当是统一的;URL面向搜索引擎是友好的;五、对象作用域SendetContext > HttpSession、HttpSeivletRequestStiingvalue=application.getInitParam(key);Servlet上下文监听器:生命周期监听器(
23、SendetContextListener)、属性改变监听器(Ser'letContextAttributeListeneijServlet会话监听器:生命周期监听器(HttpSessioiiListener)、属性改变监听器(HttpSessioiiAttiibuteListener) 对象绑定监听器(HttpSessioiiBindiiigListener)Servlet请求监听器:生命周期监听器(SendetRequestListener)、属性改变监听器(Ser4etRequestAttributeListeneijlistenerlistener-class/listener
24、-class/listener过滤器的基本概念如何实现过滤器:开发和配置过滤器的步骤注意:doFilter(Ser4etRequestiequest,Ser'letResponseresponse,FilteiChauifilteiChain) filterCliam.doFiltei(request.response);feM配置 过滤器:uii-pattein* .htniiuil-patternseivlet-naine过滤器的优先级:先url-pattern再servlet-name,前后顺序决定过滤顺序过 滤链:FilteiChaincliain.doFiltei(Seivl
25、etRequestiequest,Sen4etResponseresponse)出现的位 置包装器的使用:?六、理解JSP的基础原理容器如何管理JSP、JSP的生命周期(七个阶 |:)_jspIiMt()jspSeivice(HttpSenrletRequest,HttpSeivletResponse)jspDestroy()Servlet与JSP的相同点与不同点JSP的组成:元素与模板数据(html标签)JSP脚本元素:声明:!%Scriplet:%脚本表达式:=%JSP 注释-一%!-/*/JSP指:%pageiinport=,contentT?pe=pageEncodmg=enoiPag
26、e=en-.jspisEnoiPage=ti-ue|false%iiicludefile=%静态包含:包含另一个页面的源代码%taglibprefix=uri=%JSP标准动作:jsp:includepage=uilflush=true/动态包含:包含另一个页面的输出 jsp:fbnvardpage=ml,requestDispatcheLfdrwart(iequestjesponse);j sp :paiaiimame=keyvralue=value/七、JavaBean规范1. 公共类2. 实现序列化3. 公共的空构造方法4. 属性私有化,setters.andgetters.jsp:us
27、eBeaiud=class=scope=page|iequest|session|applicatioii/j sp: setPropei-tyiiame=piopeny=value=/j sp: setPiopei-tyname=piopeity=param=/j sp:setPiopen yiiaine=piopeny= */j sp: getPiopeityname=pioperty=/JSP 九个内置隐式对彖request、responsesession、page、pageContext applicationx config、 out、exceptionj sp: fbnvardpa
28、ge=uilj sp:paiaiimame=kewalue=value/°sp:fbrwaidjsp:includepage=xx.jspflush=truej sp:paiaiimame=kewalue=value/jsp: includeJavaBeaii:»把计算机二级站点加入收藏夹1. 类必须是public2. 有一个不带参数的构造方法3. 属性必须私有化4. 每个属性都有对应的set和get方法JSP开发模式:Model 1与Model2的特点与区别1. 传统的JspModell模型Jsp是独立的,自主完成所有的任务.2. 改进的JspModell模型Jsp页面与JavaBeans共同协作完成任务Modell模式的实现比较简单,适用于快速开发小规模项目。但从工程化的角度看,它 的局限性非常明显:JSP页面身兼View和Controller两种角色,将控制逻辑和表现逻辑混杂 在一起,从而导致代码的重用性非常低,增加了应用的扩展性和维护的难度。早期有大量ASP和JSP技术开发出来的Web应用,这些Web应用都釆用了 Modell架 构。八、JspModel21. JspMode
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 取用水领域信用评价指标及评分标准
- 《水文分析与计算》本科题集
- 班子领导在新单位见面会上的讲话
- 石淋与现代艺术融合
- 江苏省苏州市姑苏区2024-2025学年九年级上学期10月月考历史卷(含答案)
- 2024年电银项目资金需求报告代可行性研究报告
- 2023年带钢传输自动纠偏装置资金申请报告
- 2023年自动络筒机投资申请报告
- 2024年实验室仪器装置项目资金筹措计划书代可行性研究报告
- 强化现场6S管理-推进班组建设
- 2024-2030年中国富含蛋白质的营养棒行业市场发展趋势与前景展望战略分析报告
- 职业院校“金课”建设方案
- 2024年步步高高考英语大一轮复习(新人教版)基础知识默写本必修第一册含答案
- 人教版2024年新版七年级上册英语Unit 3 模拟测试卷(含答案)
- 《一只窝囊的大老虎》名师教案(第二课时)
- 2023广西玉林市北流市残疾人联合会招聘镇(街道)社区残疾人专职委员聘用前笔试历年典型考题及考点剖析附答案带详解
- 高中生心理健康教育课教案(15篇)
- 公司隐私保护管理制度
- 2023-2024学年全国初中八年级上政治人教版期中考卷(含答案解析)
- 公园绿化保洁管理制度方案(2篇)
- 2024年高考数学(理科)全国3卷(精校版)
评论
0/150
提交评论