尚学堂手把手教程授课:张志宇版权所有:尚学堂科技ServletServlet手把手教程版权所有:尚学堂科技Servlet尚学堂背景知识常用的Web服务器IISApacheTomcat通常的动态网页技术CGI(CommonGateWayInterface)API常用的有(NSAPI,ISAPI)ASP(ActiveServerPage)PHP(PersonalHomePage)JSP/Servlet(JavaServerPage)LAMP手把手教程版权所有:尚学堂科技Servlet尚学堂tomcat启动与停止startupshutdowncatalinastartcatalinastopcatalinadebug调试错误的时候runexithelp设置环境变量JAVA_HOMEshutdown.bat小心使用手把手教程版权所有:尚学堂科技Servlet尚学堂tomcat目录结构bin:存放各种平台下启动和关闭Tomcat的脚本文件。startup.bat是windows下启动tomcat的文件,shutdown.bat是关闭tomcat的文件。common:在common目录下的lib目录,存放Tomcat服务器和所有web应用都能访问的JAR。shared:在shared目录下的lib目录,存放所有web应用能访问的,但Tomcat不能访问的JAR。server:在server/webapps目录中,存放Tomcat自带的两个APP-admin和manager应用,来管理Tomcat-web服务用的。work:Tomcat把各种由jsp生成的servlet文件放在这个目录下。temp:临时活页夹,Tomcat运行时候存放临时文件用的。logs:存放Tomcat的日志文件webapps:web应用的发布目录,把java开发的web站点或war文件放入这个目录下就可以通过tomcat服务器访问了。conf:Tomcat的各种配置文件,最重要的是server.xml.手把手教程版权所有:尚学堂科技Servlet尚学堂Tomcat配置文件conf/server.xml服务器的主配置文件conf/web.xml定义所有Web应用的配置(缺省的Servlet定义和MIME类型定义)conf/tomcat-user.xml定义了tomcat用户的信息(用于权限与安全)手把手教程版权所有:尚学堂科技Servlet尚学堂conf/server.xml顶层类元素:位于整个配置文件的顶层,Server;连接器类元素[Connectors]:客户和服务(容器类元素)间的通讯接口。接受客户请求,返回响应结果;Connector容器类元素[Containers]:处理客户请求并且生成响应结果,包含3个:EngineHostContext嵌套类元素[NestedComponents]:可以加入到容器中的元素,包括:loggerValveRealm等一个Server包含一个或多个Service,一个Service包含唯一一个Engine和一个或多个Connector,多个Connector共享一个Engine;一个Engine包含多个Host,每个Host定义一个虚拟主机,包含一个或多个web应用Context;Context元素是代表一个在虚拟主机上运行的Web应用。Pleasenotethatfortomcat5.x,unliketomcat4.x,itisNOTrecommendedtoplaceContextelementsdirectlyintheserver.xmlfile.Instead,putthemintheMETA-INF/context.xmldirectoryofyourWARfileortheconfdirectoryasdescribedabove.手把手教程版权所有:尚学堂科技Servlet尚学堂什么是MIMEMultipurposInternetMailExtension指明白传送内容的格式最早用于邮件附件手把手教程版权所有:尚学堂科技Servlet尚学堂server.xml的层次结构Serverport=8005shutdown=SHUTDOWNdebug=0Servicename=Tomcat-StandaloneConnectorclassName=HttpConnectorport=80/Enginename=StandalonedefaultHost=localhostdebug=0LoggerclassName=FileLoggerprefix=catalina_log./RealmclassName=MemoryRealm/Hostname=localhostdebug=0appBase=webappsunpackWARs=trueValveclassName=AccessLogValvedirectory=logs/LoggerclassName=FileLoggerrefix=localhost_log./Contextpath=docBase=ROOT/Contextpath=/managerdocBase=managerprivileged=true/Contextpath=/myappdocBase=tdebug=0reloadable=true//Host/Engine/Service/Server手把手教程版权所有:尚学堂科技Servlet尚学堂HTTP协议基础HTTP(HypertextTransferProtocol,超文本传输协议)HTTP是以明文方式发送数据的用于从服务器传输超文本到本地浏览器的传输协议。HTTP协议是以TCP/IP为基础的高层协议。现在广泛使用的版本HTTP/1.1手把手教程版权所有:尚学堂科技Servlet尚学堂HTTP协议基础GET/latest.htmlHTTP/1.1Host:…{空行}POST/servlet/servHTTP/1.1Host::32username=billgates&password=heheHTTP/1.1200OKDate:Fri,31Dec200310:23:34GMTContent-Type:text/htmlContent-length:280html……/html手把手教程版权所有:尚学堂科技Servlet尚学堂WebApplication的概念WebApplicationNameWEB-INFweb.xml该webapp的配置文件lib该webapp用到的库文件classes存放编译好的servletMETA-INF存放该webapp的上下文信息,符合J2EE标准WebApplication可以直接放在webapp下面也可以通过配置文件指定到其他目录host里面Contextpath=“/虚拟路径名“docBase=”目录位置debug=0reloadable=true/手把手教程版权所有:尚学堂科技Servlet尚学堂Tomcat的目录结构bin/二进制可执行文件和脚本catalinastartstopcatalinadebugrunexitcommon/Catalina本身和web应用可加载的类目录conf/配置文件目录logs/日志目录server/服务器所需的类库目录shared/WebApp共享的类库webapps/Web应用所存放的目录applicationswork/Tomcat的工作目录(存放jsp产生的class文件)temp/存放临时产生的文件手把手教程版权所有:尚学堂科技Servlet尚学堂Servlet简介Servlet是服务器小应用程序用来完成B/S架构下,客户端请求的响应处理平台独立,性能优良,能以线程方式运行ServletAPI为Servlet提供了统一的编程接口Servlet一般在容器中运行常见的Servlet容器Tomcat(其下载、安装和运行请参考视频文件)Jetty/Resin手把手教程版权所有:尚学堂科技Servlet尚学堂Servlet示例HelloWorldServlet.java需求:编写一个生成纯文本的简单的Servlet类。目的:了解Servlet的基本概念在web.xml的配置servletservlet-nameHelloWorldServlet/servlet-nameservlet-classHelloWorldServlet/servlet-class/servletservlet-mappingservlet-nameHelloWorldServlet/servlet-nameurl-pattern/HelloWorldServlet/url-pattern/servlet-mappingwebapp根路径(url)必须/开头手把手教程版权所有:尚学堂科技Servlet尚学堂手把手教程版权所有:尚学堂科技Servlet尚学堂创建Servlet1.XXXextendsHttpServlet2.OverridedoGetdoPost3.copytoWEB-INF/classes4.web.xml1.servletservlet-nameservlet-class/servlet2.servlet-mappingurl-pattern/5.restartserver手把手教程版权所有:尚学堂科技Servlet尚学堂Servlet的生命周期生命全过程:加载ClassLoader实例化new初始化init(ServletConfig)处理请求servicedoGetdoPost退出服务destroy()只有一个对象API中的过程:init()//只执行一次,第一次初始化的时候publicvoidinit(ServletConfigconfig)throwsServletExceptionservice()publicvoidservice(ServletRequestreq,ServletResponseres)throwsServletException,java.io.IOExceptiondestroy()//webapp退出的时候publicvoiddestroy()TestLifeCycleServlet.java手把手教程版权所有:尚学堂科技Servlet尚学堂initinit(servletconfigconfig)this.config=configinit();重写必须得super.init(config)不然不能使用this.getServletConfig当然也就不能用getInitParameter();我们只需要重写init();手把手教程版权所有:尚学堂科技Servlet尚学堂Servlet编程接口GenericServlet是所有Servlet的鼻祖用于HTTP的Servlet编程都通过继承javax.servlet.http.HttpServlet实现请求处理方法:(分别对应http协议的7种请求)1、doGet响应Get请求,常用2、doPost响应Post请求,常用3、