您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > 达内SERVLET笔记整理
*表示重要性,星号越多越重要day1一、Web应用基础1.B-S架构(***)架构的发展c/svs.b/sc/s架构(client客户端-server服务端)(胖客户端:要求客户端运行业务;把业务放到服务器端,则是瘦客户端)典型的c/s应用:ftp工具、QQ、邮件系统、杀毒软件...1.建立在tcp/ip协议之上,有自己的通信规则(建立业务)2.需要相互配合才能完成一个完整业务逻辑3.允许多个客户端程序同时接入一个server程序(并发)4.每一个client(机器)都必须安装客户软件5.修改了server程序,通常client程序都要修改(升级)优点:利用客户端的计算能力,分担服务器的负荷(大型网络游戏就利用这点)缺点:用户必须安装客户端程序;客户端需要升级(麻烦)b/s架构(browser-webserver(cluster集群))(极瘦客户端:最低限度地减少客户端程序,只需要browser(浏览器))1.基于http协议(应用层)2.几乎所有的业务逻辑处理都在server完成3.支持并发4.client要求很少,只需要安装browser(浏览器)5.修改server之后,client不需要任何变化6.server端开发技术:html/js,xhtml,...php,asp,jsp,servlet缺点:所有业务都在服务器端完成,服务器负荷大。优点:支持高并发访问;不需另外安装软件(只需浏览器),免去更新的麻烦。2.开发一个静态的Web应用(*)1)下载一个tomcat服务器2)web服务器-Tomcat的启动和配置(熟练使用和配置)先进入Tomcat主目录下的bin目录//%catalina_home%/binwindow平台:启动---startup.bat关闭---shutdown.batLinux平台:启动---startup.sh或catalina.shrun//catalina单次启动;startup启动直至shutdown关闭---shutdown.sh或Ctrl+C测试:打开浏览器,访问Tomcat首页:或者获取进程Id强行杀死tomcat进程psef|greptomcat---查看tomcat的进程idkill-9tomcat进程Id号---强行杀死tomcat进程3)介绍Web应用的结构严格定义为两部分①Web应用的根目录下有一个特定的子目录称为WEB-INF,其中包含不能被客户访问的专用Web应用程序软件,包括Servlet类文件、部署描述符web.xml、外部库以及其他任何由此应用程序使用的专用文件。②所有位于WEB-INF之外的文件都被看作是公共的,它们可以从客户端被访问。资源包括HTML页面、JSP页面和图像等。web.xml的模板(一个web.xml中可以配置多个Servlet):?xmlversion=1.0encoding=UTF-8?web-appversion=2.5xmlns=:xsi=:schemaLocation=://java.sun.com/xml/ns/javaee/web-app_2_5.xsdservletservlet-nameservlet的名字1/servlet-name//servlet的逻辑名servlet-classservlet类全名1/servlet-class//类的完全限定名/servletservletservlet-nameservlet的名字2/servlet-nameservlet-classservlet类全名2/servlet-class/servletservlet-mappingservlet-nameservlet的名字1/servlet-name//要和servlet标签中的相同url-pattern指定servlet相对于应用目录的路径/url-pattern//servlet的访问路径/servlet-mappingservlet-mappingservlet-nameservlet的名字2/servlet-nameurl-pattern指定servlet相对于应用目录的路径/url-pattern/servlet-mappingwelcome-file-listwelcome-fileindex.jsp/welcome-file//指定默认的欢迎页面/welcome-file-list/web-app4)注意事项3.介绍Web服务器的一些特点什么是静态内容?什么是动态内容?静态:返回页面每个客户端都相同。动态:各个客户端的页面各不相同。产生动态内容的Web辅助应用:CGI&ServletCGI(CommonGatewayInterface):可以产生动态内容,跨语言(C/C++,Perl,python...)1.本身是一个进程(数据共享,跨进程调用)--性能较差2.可移植性很差(本地语言)3.安全性差--可以访问本地的操作系统,容易受黑客攻击webserver/servletcontainer1.性能好--多线程(而不是进程)2.可移植性--相对好3.安全性4.Http基础(**)HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送方式的数据。HTTP协议采用了请求/响应模型。基于TCP/IP之上的协议,在Web上广泛使用。无状态。如果来自服务器的响应是html页面,那么html内容会嵌入到Http响应中。Http会话:是一个简单的请求-响应序列。1)请求响应模型请求的关键要素:1.http方法(要完成的动作)2.要访问的页面(URL请求)3.表单参数响应的关键要素:1.状态码(请求是否成功)2.内容类型(txt,img,html等)3.返回内容(具体资源:html,图片等)2)URL的分析URL(UniformResoureLocator)统一资源定位器。Web上的每一个资源都有唯一的地址,采用的就是url格式3)使用HttpMonitor截获http的请求与响应信息Http请求方法包括:Get()方法;Post()方法;其他方法:Head,Trace,Put,Delete,Connect等Get()方法:Http最简单的方法,其最主要的任务:从服务器上获取资源Post()方法:更强大的请求方法,不仅可以请求资源,还可以向服务器发送表单数据4)分析http请求的信息客户端向服务器发送一个请求,请求头包含:1.请求的方法;2.URI;3.协议版本;4.以及包含请求修饰符;5.客户信息和内容的类似于MIME的消息结构5)分析http响应的信息截获内容:HTTP/1.1200OK//HTTP/1.1是web服务器使用的版本;200是状态码;OK是状态码的文本版本ETag:W/472-1198101802343Last-Modified:Wed,19Dec200722:03:22GMTContent-Type:text/html//MIME类型:告诉浏览器所要接收的是哪一类型的数据。以供浏览器显示。Content-Length:472Date:Wed,19Dec200722:05:44GMTServer:Apache-Coyote/1.1//以上是Http响应的首部//响应体中包含了Html以及其他要显示的内容htmlheadtitleUserLogin/title/headbodycenter……/center/body/htmlHttp响应状态码分析(具体代码含义参看http代码对照表):1xx:信息响应类,表示接收到请求并且继续处理2xx:处理成功响应类,表示动作被成功接收、理解和接受3xx:重定向响应类,为了完成指定的动作,必须接受进一步处理4xx:客户端错误,客户请求包含语法错误或者是不能正确执行如:404——无法找到,表示无法找到指定位置的资源。5xx:服务端错误,服务器不能正确执行一个正确的请求二、Servlet基础1.介绍Servlet的基本概念(***)(Servlet、Servlet容器、Servletvs.CGI)——————图示1)它是由java编写的、服务端的小程序。相对而言,Applet和javaScript是客户端小程序。2)基于Http协议的,运行在web服务器内的。Servlet和CGI都是运行在Web服务器上,用来生成Web页面。3)没有main方法。是接受来自网络的请求(form表单,以及其他的请求),并对不同请求作出不同的响应。4)由容器管理和调用。这个web容器可以控制Servlet对象的生命周期,控制请求由Servlet对象处理。5)Web服务器的辅助应用,处理特定的用户请求,并返回响应。web服务器,这里的服务器不是硬件概念,而是软件,常用的web服务器有Tomcat,Jboss等Tomcat是一个用java语言编写的web服务器,所以需要有相应的java运行环境,也就是JVM,还要配置tomcat的具体路径。6)继承java的优点,与协议、平台无关2.开发第一个Servlet应用(**)Web应用的结构开发一个Servlet应用的步骤1)建立Web应用目录(注意细节:各目录的位置、名称与包含的内容)2)编写Java代码,如:HelloWorld.java把生成的.class文件放置到WebRoot/WEB-INF/classes目录下3)编写配置文件:web.xml放置到WebRoot/WEB-INF/目录下4)把整个web应用放到%catalina_home%/webapps//放到tomcat的webapps目录下3.分析Servlet应用(***)1)Servlet的继承体系javax.servlet.Servlet接口--GenericServlet抽象类--HttpServlet--自定义类所有的servlet都必须实现该接口处理各种协议(包括http)专职处理http协议也可继承GenericServlet2)Servlet接口;GenericServlet抽象类;HttpServlet类Servlet接口(位置:javax.servlet.Servlet)定义了特定的生命周期方法:init(ServletConfigconfig)service(HttpServletRequestrequest,HttpServletResponseresponse)destroy()GenericServletimplementsServlet实现了init(ServletConfigconfig)、destroy()等方法;并提供了init()方法。还实现了ServletConfig接口。由于这是抽象类,所以必须实现抽象方法:service()HttpServletextendsGenericServlet(位置:javax.servlet.http.HttpServlet)具有父类GenericServlet类似的方法和对象,是使用Servlet编程常用的类支持HTTP的post和get等方法。3)容器如何找到指定的Servlet?(图示)Servlet有3个名字:url名、应用中的逻辑名、实际的名字配置文件web.xml都把这几个名字一一对应起来了Servlet是受容器管理的request对象、response对象都是容器根据客户端请求而产生的。容器根据url请求,通过DD(web.xml)配置(url名,内部逻辑名,完全限定名
本文标题:达内SERVLET笔记整理
链接地址:https://www.777doc.com/doc-6365680 .html