web程序设计复习重点.doc_第1页
web程序设计复习重点.doc_第2页
web程序设计复习重点.doc_第3页
web程序设计复习重点.doc_第4页
web程序设计复习重点.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

2013版计算机二级考试WEB程序复习重点一、HTTP什么是HTTP协议、(请求响应模式、无状态)超文本传输(HTTP)协议(HTTP-Hypertexttransferprotocol)是分布式,协作式,超媒体系统应用之间的通信协议。是万维网(worldwideweb)交换信息的基础。HTTP的处理流程:建立连接、发出请求、生成响应、关闭连接HTTP请求和响应协议的组成部分Http请求:1.请求行响应:1.状态行2.请求头2.响应头3.空行3.空白行4.消息体4.消息体get和post的区别1.Post传输数据时,不需要在URL中显示出来,而Get方法要在URL中显示。2.Post传输的数据量大,可以达到2M,而Get方法由于受到URL长度的限制,只能传递大约1024字节.3.Post顾名思义,就是为了将数据传送到服务器段,Get就是为了从服务器段取得数据.而Get之所以也能传送数据,只是用来设计告诉服务器,你到底需要什么样的数据.Post的信息作为http请求的内容,而Get是在Http头部传输的。CGI是什么?特点是什么?缺陷?CGI:用网关接口(CommonGatewayInterface)优点可以和系统底层相互通讯。缺点就是每一个连接都启动一个进程。很消费系统的资源。容器是什么?有什么作用?容器:web容器是一种服务程序,在服务器一个端口就有一个提供相应服务的程序,而这个程序就是处理从客户端发出的请求,如JAVA中的Tomcat容器,ASP的IIS或PWS都是这样的容器。一个服务器可以多个容器。作用:(就是一种所谓的中间件,用来运行java程序的。)web容器主要是用于给处于容器中的应用程序组件(servlet,jsp)提供一个环境,使servlet,jsp直接跟容器中的环境变量交互。这样,我们就可以把注意力放在用servlet实现业务逻辑上,而不必为系统底层服务容器对Servlet的支持包括:通信支持(利用容器提供的方法)生命周期管理(容器控制着servlet的生死)多线程支持(容器会自动地为它接收的每个servlet请求创建一个新的java线程)支持JSP(容器会自动把JSP翻译成为servletjava代码)处理安全性(javaweb应用程序通常需要实现安全控制,限制用户可以访问的资源)Servlet是什么?规范/一系列接口和类/Web容器和Servlet程序之间通讯的基础Servlet是一个在web服务器端或者应用服务器端运行的java程序,主要用于在服务器端产生动态内容Servlet规范的组成:1)Web应用程序2)Servlet和HTTPServlet3)过滤器4)安全5)国际化读取客户端发送的显式和隐式数据、生成结果、向客户端发送显式数据(即文档)和隐式数据(HTTP响应数据)Web容器与Servlet如何配合处理请求1)客户端向Web服务器发起一个HTTP请求。2)HTTP请求被Web服务器接受,如果请求的是静态页面,则由Web服务器负责处理。如果请求的是JavaWeb组件(Servlet或者JSP),则移交给Web容器。Web容器可以在主机的同一个进程、不同的进程或其他的Web服务主机的进程中启动。3)Web容器根据Servlet的配置文件确定调用的具体Servlet类,并把request对象、response对象传给它。4)Servlet通过request对象知道客户端的使用者是谁,客户的请求信息是什么和其他的一些信息。Servlet处理完请求后把要返回的信息放入response对象返回到客户端。5)一旦Servlet完成了请求的处理,Web容器就会刷新response,把控制权返回给web服务器二、Web应用程序的组成结构项目根目录WEB-INF-lib-classescom.lovo.shpping.po.xxxxweb.xml(所有应用程序的配置文件都统一命名)Tomcat介绍、目录结构如何在Tomcat下手工部署一个Web应用程TomcatServlet/JSP6.x2.5/2.15.x2.4/2.04.x2.3/1.23.x2.2/1.1三、了解、认识ServletAPIServletGenericServletHttpServlet关系javax.servlet.GenericServlet实现了Servlet接口javax.servlet.http.HttpServlet继承自javax.servlet.GenericServlet类所以编写Servlet继承HttpServlet或GenericServlet即可。如何编写自定义的Servlet代码1、追加环境变量servlet-api.jar,编写自定义servlet继承HttpServlet,并重写doGet方法,生成class文件待用(访问控制符应该是public)2、在webapps目录下找到example中的WEB-INF,copy其中的web.xml3.在webapps目录下生成自己的文件夹,copyWEB-INF/web.xml如何部署Servlet(web.xml)、ServletUrl映射路径(注意*的使用)servlet!-servlet的名字,随便起个名,但和下面的servlet-name名一致-servlet-namemgc/servlet-name!-WEB-INF中文件路径-servlet-classAnyDirectory.ServletClassName/servlet-class!-或者可以用servletclass:jsp-file/WEB-INF/hello.jsp/jsp-file-/servletservlet-mapping!-servlet的名字,随便起个名,但和上面的servlet-name名一致-servlet-namemgc/servlet-name!-访问映射路径-url-pattern/hello/url-pattern/servlet-mappingServlet生命周期:类加载、实例化、初始化、服务、销毁service(HttpServletRequestrequest,HttpServletResponseresponse)方法的作用:根据不同的请求,进行分发工作(Http协议)init(ServletConfigconfig)与init()方法当容器(tomcat)帮忙调用init(ServletConfigconfig)并且给传过来一个参数config,这个方法把参数对象的引用指向类的成员变量this.config,并且调用类的this.init()方法。如果我们在写Servlet类时只要重写init(ServletConfigconfig)就可以了,但是init()不就成了多余的了吗?实际上init()方法是为了防止程序员在写Servlet类重写init(ServletConfigconfig)时忘记写super.init(ServletConfigconfig),这样就容易造成出现空指针异常。而这就要求我们最好不要重写init(ServletConfigconfig)。配置Servlet初始化参数:init-paramparam-nameparam-valueServletContext上下文是什么?和Servlet、ServletConfig的关系ServletContext:servletContext接口是Servlet中最大的一个接口,呈现了web应用的Servlet视图。ServletContext实例是通过getServletContext()方法获得的,由于HttpServlet继承Servlet的关系GenericServlet类和HttpServlet类同时具有该方法。Servlet、ServletConfig的关系:?四、HttpServetlResponse设置Http状态码:setStatus(intcode);设置Http响应头:setHeader(headername,value);getHeader(headername)getHeaders()设置响应内容类型:response.setContentType(text/html);-text/xml、image/gif、image/jpeg设置Http消息体(出现在设置响应内容之后):文本字符:PrintWriterout=response.getWriter();二进制流:ServletOutputStream(extendsOutputStream)out=response.getOutputStream();设置字符编码集(处理中文乱码),要求出现在得到请求数据和响应内容的前面客户端重定向原理(302响应吗)及特点:HttpServletResponse-sendRedirect(url);HttpServetRequest得到请求行:getMethod().得到请求头:getHeader(headername)、getHeaders()获取浏览器信息getHeader(User-Agent);得到请求参数:getParameter(param)、getParameters(param)服务器端转发:得到RequestDispatcher的方式有哪些?request.getRequestDispatcher();servletContext.getRequestDispatcher(/xxxx);servletContext.getNamedServlet(serlvet-name);forward(request,response)与include(request,response)的区别forward方法是把请求的内容转发到另外的一个servlet/jsp.include是把另一个servlet/jsp处理过后的内容拿过来与此时servlet的内容一同输出.转发与客户端重定向的区别?重定向:以前的request中存放的变量全部失效,并进入一个新的request作用域。转发:以前的request中存放的变量不会失效,就像把两个页面拼到了一起。请求范围:HttpServletRequest、ServletContext的范围区别setAttribute(Stringkey,Objectvalue);Objectobj=getAttribute(Stringkey);removeAttribute(Stringkey);contenxt-paramparam-name/param-nameparam-value/param-value/contenxt-paramWeb应用程序状态管理方式:隐藏字段、Cookie、HttpSession、URL重写为什么需要状态管理?根本原因是由于Http协议是无状态的造成的什么是Cookie?原理?如何使用?Cookie原理:ession是一种保存上下文信息的机制,它是针对每一个用户的,变量的值保存在服务器端,通过SessionID来区分不同的客户,session是以Cookie或URL重写为基础。默认使用Cookie来实现,系统会创造一个名为JSESSIONID的输出Cookie,或称为SessionCookie,以区别PersistentCookies(通常所说的Cookie).SessionCookie是存储在浏览器中,并不是写在硬盘上的,但是把浏览器的Cookie禁止后,使用response对象的encodeURL或encodeRedirectURL方法编码URL,WEB服务器会采URL重写的方式传递Sessionid,用户就可以在地址栏看到jsessionid=A09JHGHKHU68624309UTY84932之类的字符串。通常SessionCookie是不能跨窗口使用,当用户新开了一个浏览器进入相同的页面时,系统会赋予用户一个新的SessionID,这样信息共享的目的就达不到,此时可以把SessionID保存在PersistentCookie中,然后再新的窗口中读出来,就可以得到上一个窗口的SessionID了,这样通过SessionCookie和PersistentCookie的结合,实现了跨窗口的会话跟踪。Cookie和会话状态什么是Cookie?Cookie是一小段文本信息,伴随着用户请求和页面在Web服务器和浏览器之间传递。用户每次访问站点时,Web应用程序都可以读取Cookie包含的信息。Cookie的基本工作原理如果用户再次访问站点上的页面,当该用户输入URLwww.*.com时,浏览器就会在本地硬盘上查找与该URL相关联的Cookie。如果该Cookie存在,浏览器就将它与页面请求一起发送到您的站点。Cookie有哪些用途?最根本的用途是:Cookie能够帮助Web站点保存有关访问者的信息。更概括地说,Cookie是一种保持Web应用程序连续性(即执行“状态管理”)的方法.使Web站点记住您.什么是会话Session?当用户访问您的站点时,服务器会为该用户创建唯一的会话,会话将一直延续到用户访问结束。session的工作原理就session的实现而言,好像是这样的:(1)当有Session启动时,服务器生成一个唯一值,称为SessionID(好像是通过取进程ID的方式取得的)。(2)然后,服务器开辟一块内存,对应于该SessionID。(3)服务器再将该SessionID写入浏览器的cookie(一些在网页的源代码中有所体现)。(4)服务器内有一进程,监视所有Session的活动状况,如果有Session超时或是主动关闭,服务器就释放该内存块。(5)当浏览器连入IIS(服务器)时并请求的ASP(脚本语言)内用到Session时,IIS(服务器)就读浏览器Cookie中的SessionID。(6)然后,服务检查该SessionID所对应的内存是否有效。(7)如果有效,就读出内存中的值。(8)如果无效,就建立新的Session。注意:(1)在大浏览量的网站,Session并不保险,我们过去的网站就经常碰到存在Session中得值不正确(可能出现重复的SessionID)。(2)SessionID不能从硬盘上的Cookie文件获得,如果想在客户端获知自己的SessionID,只能通过Javascrpt来读取。会话失效的三种情况(服务器重启/关闭、会话超时(-1永不失效)、invalidate()设置键值对setAttribute(key,value);Objectobj=getAttribute(key);为什么需要URL重写?Stringstr=HttpServletResponse.encodeURL(Stringurl);url;jsessionid=sessionid对于搜索引擎而言,在主观上对静态页面和动态页面并没有特殊的好恶,只是很多动态页面的参数机制不利于搜索引擎收录,而静态页面更容易收录而已。此外,页面静态化在一定程度上也提高了页面访问速度和系统性能及稳定性-这使得在搜索引擎优化上面,为使得效果更加明显,问题简单快速解决,大家对站点的静态化非常的看重。URL应当是用户友好的;URL应当是可读的;URL应当是可预测的;URL应当是统一的;URL面向搜索引擎是友好的;五、对象作用域ServletContext、HttpSession、HttpServletRequestStringvalue=application.getInitParam(key);Servlet上下文监听器:生命周期监听器(ServletContextListener)、属性改变监听器(ServletContextAttributeListener)Servlet会话监听器:生命周期监听器(HttpSessionListener)、属性改变监听器(HttpSessionAttributeListener)对象绑定监听器(HttpSessionBindingListener)Servlet请求监听器:生命周期监听器(ServletRequestListener)、属性改变监听器(ServletRequestAttributeListener)listenerlistener-class/listener-class/listener过滤器的基本概念如何实现过滤器:开发和配置过滤器的步骤注意:doFilter(ServletRequestrequest,ServletResponseresponse,FilterChainfilterChain)filterChain.doFilter(request,response);位置配置过滤器:url-pattern*.htmlurl-patternservlet-name过滤器的优先级:先url-pattern再servlet-name,前后顺序决定过滤顺序过滤链:FilterChainchain.doFilter(ServletRequestrequest,ServletResponseresponse)出现的位置包装器的使用:?六、理解JSP的基础原理容器如何管理JSP、JSP的生命周期(七个阶段)_jspInit()_jspService(HttpServletRequest,HttpServletResponse)_jspDestroy()Servlet与JSP的相同点与不同点JSP的组成:元素与模板数据(html标签)JSP脚本元素:声明:%!%Scriplet:%脚本表达式:%=%JSP注释%-%!-/*/JSP指令:%pageimport=,contentType=pageEncoding=errorPage=err.jspisErrorPage=true|false.%includefile=%静态包含:包含另一个页面的源代码%taglibprefix=uri=%JSP标准动作:jsp:includepage=urlflush=true/动态包含:包含另一个页面的输出jsp:forwardpage=url/requestDispatcher.forwart(request,response);jsp:paramname=keyvalue=value/七、JavaBean规范1.公共类2.实现序列化3.公共的空构造方法4.属性私有化,setters.andgetters.jsp:useBeanid=class=scope=page|request|session|application/jsp:setPropertyname=property=value=/jsp:setPropertyname=property=param=/jsp:setPropertyname=property=*/jsp:getPropertyname=property=/JSP九个内置隐式对象:request、response、session、page、pageContext、application、config、out、exceptionjsp:forwardpage=urljsp:paramname=keyvalue=value/jsp:forwardjsp:includepage=xx.jspflush=truejsp:paramname=keyvalue=value/jsp:includeJavaBean:把计算机二级站点加入收藏夹1.类必须是public2.有一个不带参数的构造方法3.属性必须私有化4.每个属性都有对应的set和get方法JSP开发模式:Model1与Model2的特点与区别1.传统的JspModel1模型Jsp是独立的,自主完成所有的任务.2.改进的JspModel1模型Jsp页面与JavaBeans共同协作完成任务Model1模式的实现比较简单,适用于快速开发小规模项目。但从工程化的角度看,它的局限性非常明显:JSP页面身兼View和Controller两种角色,将控制逻辑和表现逻辑混杂在一起,从而导致代码的重用性非常低,增加了应用的扩展性和维护的难度。早期有大量ASP和JSP技术开发出来的Web应用,这些Web应用都采用了Model1架构。八、JspModel21.JspModel2中使用了三种技术JSP、

温馨提示

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

评论

0/150

提交评论