web程序设计复习重点

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

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,这样信息共享的目的就

1 / 8
下载文档,编辑使用

©2015-2020 m.111doc.com 三一刀客.

备案号:赣ICP备18015867号-1 客服联系 QQ:2149211541

×
保存成功