传智播客JavaWEB开发Servlet佟刚.ppt
《传智播客JavaWEB开发Servlet佟刚.ppt》由会员分享,可在线阅读,更多相关《传智播客JavaWEB开发Servlet佟刚.ppt(69页珍藏版)》请在三一办公上搜索。
1、北京传智播客教育,JavaWEB开发-Servlet,讲师:佟刚,北京传智播客教育,软件编程体系,BS 系统架构,CS 系统结构,北京传智播客教育,软件编程体系,北京传智播客教育,基于B/S结构的项目,目前主要采用两种服务器端语言:JSP(Java Server Pages)ASP(Active Server Pages)两种语言构成两大开发体系:JSP+Oracle体系ASP+SQL Server体系,北京传智播客教育,B/S架构编程体系,B/S结构的编程语言浏览器端编程语言服务器端编程语言 浏览器端HTML(Hypertext Markup Language,超文本标记语言)CSS(Cas
2、cading Style Sheets,层叠样式表单)JavaScript语言VBScript语言,北京传智播客教育,服务器端编程语言,目前主要是3P技术ASP、JSP和PHPASP是微软公司推出的,在这三种语言中是用得最为广泛的一种。JSP是SUN公司推出的是JAVAEE核心技术中最重要的一种 PHP在1999年的下半年和2000年用得非常广泛,因为Linux+PHP+MySQL(一种小型数据库管理系统)构成全免费的而且非常稳定的应用平台,北京传智播客教育,JAVA WEB开发环境介绍,在开发过程中,基于JSP项目通常涉及到Web服务器数据库服务器集成开发环境的选择,北京传智播客教育,WEB
3、 服务器,HTTP 协议:Web 浏览器与 web 服务器的交互所遵循的规则Web 服务器:Web服务器可以解析HTTP协议。当Web服务器接收到一个HTTP请求(request),会返回一个HTTP响应(response)。为了处理一个请求,Web服务器可以响应一个静 态页面或图片,或进行页面跳转,或者把动态响应的产生委托(delegate)给一些其它的程序例如CGI脚本,JSP脚本,ASP 脚本等。无论脚本的目的何,这些服务器端(server-side)的程 序通常产生一个 HTML的响应来让浏览器可以浏览。,北京传智播客教育,Web服务器,WebLogic是BEA公司的产品,是目前应用最
4、广泛的Web服务器,支持J2EE规范,而且不断的完善以适应新的开发要求,启动界面如图,北京传智播客教育,Web服务器,另一个常用的Web服务器是IBM公司的WebSphere,支持J2EE规范,启动界面如图,北京传智播客教育,Web服务器,在小型的应用系统或者有特殊需要的系统中,可以使用一个 免费的Web服务器:Tomcat,该服务器支持全部JSP以及 Servlet规范,启动界面如图,北京传智播客教育,数据库服务器,在Java相关的开发领域中,常用的是3种数据库:Oracle、DB2和MySQL。有时候也使用微软公司的SQL Server数据库 服务器 Oracle数据库是Oracle公司的
5、产品,也是历史最悠久的数 据库,世界前50强的企业中,80%使用Oracle数据库作为公司的数据库服务器。服务器的图标如图,北京传智播客教育,数据库服务器,IBM公司的DB2也是一种常用的数据库,和IBM的WebSphere 配合构成完整的企业级解决方案,数据库服务器的启动界 面如图,北京传智播客教育,数据库服务器,目前商业数据库服务器市场三足鼎立:Oracle、DB2和微软 公司的SQL Server,在实际应用中,有一个常用的免费的 小型数据库服务器:MySQL,启动界面如图,北京传智播客教育,JSP运行环境的安装配置,JSP推荐开发的环境:Windows2000 Server/2003
6、Server+Tomcat 6.x,也是企业中常用的开发环境。JSP运行环境需要JDK的支持,需要安装两个软件:j2sdk 和 Tomcat。,北京传智播客教育,JavaWeb应用的概念,在Sun的Java Servlet规范中,对Java Web应用作了这 样定义:“Java Web应用由一组Servlet、HTML页、类、以及其它可以被绑定的资源构成。它可以在各种供应商 提供的实现Servlet规范的 Servlet容器 中运行。”Java Web应用中可以包含如下内容:ServletJSP实用类静态文档如HTML、图片等描述Web应用的信息(web.xml),北京传智播客教育,Serve
7、lt 与 Servlet 容器,Web 浏览器,服务器,Web 服务器,HTTP请求,静态页面,Servlet 容器,jsp,Servlet,数据库,HTTP相应,北京传智播客教育,Servlet容器的概念,Servlet容器为JavaWeb应用提供运行时环境,它负责管理Servlet和JSP的生命周期,以及管理它们的共享数据。Servlet容器也称为JavaWeb应用容器,或者Servlet/JSP容器。目前最流行的Servlet容器软件括:TomcatResinJ2EE服务器(如Weblogic)中也提供了内置的Servlet容器,北京传智播客教育,Tomcat 简介,Tomcat 是一个
8、免费的开放源代码的 Servlet 容器,它是 Apache 软件基金会的一个顶级项目,由 Apache,Sun和其他一些公司及个人共同开发而成。由于有了 Sun 的参与与支持,最新的 Servlet 和 JSP 规范总是能在 Tomcat 中的到体现,Tomcat 6 支持最新的 Servlet 2.5 和JSP 2.1 规范。,北京传智播客教育,Tomcat 的目录结构,Tomcat 的目录层次结构,存放启动和关闭 Tomcat 的脚本文件,存放 Tomcat 服务器的各种配置文件,存放 Tomcat 服务器和所有 web 应用程序需要访问的 jar 文件,存放 Tomcat 的日志文件,
9、存放 Tomcat 运行时产生的临时文件,当发布 web 应用程序时,通常把 web 应用程序的目录及文件放到这个目录下,Tomcat 将 JSP 生成的 Servlet 源文件和字节码文件放到这个目录下,北京传智播客教育,运行 Tomcat,1.配置 java_home 或 jre_home2.双击 bin 目录下的 startup.bat 文件3.在地址栏中输入 http:/localhost:8080/,北京传智播客教育,关闭 Tomcat&配置 Tomcat 的端口号,1.双击 bin 目录下的 shutdown.bat 文件关闭 Tomcat 服务器2.修改 Tomcat 默认的端口
10、号:打开 conf 目录下的 server.xml 文件修改端口号,北京传智播客教育,Tomcat 启动分析1,判断“catalina_home”环境变量是否为空,判断当前目录下是否存在 bincatalina.bat 文件,结论:执行 startup.bat,实际上执行的是 catalina.bat,北京传智播客教育,Tomcat 启动分析2,若想在任意目录下都能启动 Tomcat,则需设置 CATALINA_HOME 环境变量直接执行 catalina.bat 时需要带上命令行参数常用的参数是start,run 和 stop,北京传智播客教育,Tomcat 的管理程序,Tomcat 提供了
11、一个管理程序:manager,用于部署到 Tomcat 服务器中的 web 应用程序要访问 manager web 应用程序,需要添加具有管理员权限的账号,编辑 conf 目录下的 tomcat-users.xml 文件,添加 manager 角色,设置用户名和密码,北京传智播客教育,Web 程序结构1,一个 web 应用程序是由一组 Servlet,HTML 页面,类,以及其它的资源组成的运行在 web 服务器上的完整的应用程序,以一种结构化的有层次的目录形式存在组成 web 应用程序的这些文件要部署在相应的目录层次中,根目录代表整个 web 应用程序的”根”通常将 web 应用程序的目录放
12、在 webapps 目录下,在 webapps 目录下的每一个子目录都是一个独立的 web 应用程序,子目录的名字就是 web 应用程序的名字,也就是 web 应用程序的“根”。用户通过 web 应用程序的”根”来访问 web 应用程序中的资源,北京传智播客教育,Web 程序结构2,Servlet 规范中定义了 web 应用程序的目录层次:,Web应用程序的根目录,属于此Web应用程序的所有文件都存放在这个目录下,存放Web应用程序的部署描述符文件web.xml,存放Servlet和其他有用的类文件,存放Web应用程序需要用到的JAR文件,这些JAR文件中可以包含Servlet、Bean和其他
13、有用的类文件,web.xml文件包含Web应用程序的配置和部署信息,北京传智播客教育,Web 程序结构3,几点说明:WEB-INF目录下的classes和lib目录都可以存放Java的类文件,在Servlet容器运行时,Web应用程序的类加载器将首先加载classes目录下的,其次才是lib目录下的类。如果这两个目录下存在同名的类,起作用的将是classes目录下的类 WEB-INF 是一个特殊的目录(所有字母都要大写)。这个目录并不属于Web应用程序可以访问的上下文路径的一部分,对客户端来说,这个目录是不可见的。但该目录下的内容对于Servlet代码是可见的,北京传智播客教育,配置任意目录下
14、的Web应用程序1,在Web服务器中可以配置虚拟目录,而虚拟目录所对应的真实目录可以在任何路径下。在Tomcat服务器中,主要在 XML 配置文件中通过元素的设置来完成的。一个元素就表示一个Web应用程序,运行在特定的虚拟主机中。元素是元素的子元素,可以在confserver.xml文件中设置Context元素。,北京传智播客教育,元素的常用属性,北京传智播客教育,配置任意目录下的Web应用程序2,元素是元素的子元素,可以在confserver.xml文件中设置Context元素。使用docBase属性指定Web应用程序的真实路径。将属性reloadable设置为true,Tomcat在运行时
15、会自动监测Servlet类的改动,如果发现有类被更新,Tomcat服务器将自动重新加载该Web应用程序。这样,在开发时,就不需要频繁重启Tomcat了,北京传智播客教育,配置任意目录下的Web应用程序3,还可以在conf目录下依次创建Catalinalocalhost目录,然后在localhost目录下为 test 这个Web应用程序建立 test.xml 文件,编辑这个文件输入以下内容 从Tomcat 5开始,不建议直接在server.xml文件中配置元素,因为server.xml文件作为Tomcat的主要配置文件,一旦Tomcat启动后,将不会再读取这个文件,因此无法在Tomcat服务器启
16、动时发布Web应用程序。如果在其他地方配置元素,那么在Tomcat运行时,也可以发布Web应用程序。从Tomcat 5.5开始,在confCatalinalocalhost目录下创建XML配置文件来配置Web应用程序,Tomcat将以XML文件的文件名将作为Web应用程序的上下文路径,而不理会在元素的path属性中指定的上下文路径是什么。由于Tomcat 5.5之后的版本是以XML配置文件的文件名作为Web应用程序的上下文路径的,因此在配置元素时,可以不使用path属性。,北京传智播客教育,Servlet简介,Java Servlet是和平台无关的服务器端组件,它运 行在Servlet容器中。
17、Servlet容器负责Servlet和 客户的通信以及调用Servlet的方法,Servlet和客 户的通信采用“请求/响应”的模式。Servlet可完成如下功能:创建并返回基于客户请求的动态HTML页面。创建可嵌入到现有HTML 页面中的部分HTML 页面(HTML 片段)。与其它服务器资源(如数据库或基于Java的应用程序)进行通信。,北京传智播客教育,Servlet容器响应客户请求的过程,北京传智播客教育,ServletAPI,北京传智播客教育,Servlet容器响应客户请求的过程,Servlet引擎检查是否已经装载并创建了该Servlet的实例对象。如果是,则直接执行第步,否则,执行第
18、步。装载并创建该Servlet的一个实例对象:调用该 Servlet 的构造器 调用Servlet实例对象的init()方法。创建一个用于封装请求的ServletRequest对象和一个代表响应消息的ServletResponse对象,然后调用Servlet的service()方法并将请求和响应对象作为参数传递进去。WEB应用程序被停止或重新启动之前,Servlet引擎将卸载Servlet,并在卸载之前调用Servlet的destroy()方法。,北京传智播客教育,Servlet容器响应客户请求的过程,北京传智播客教育,Servlet的注册与运行,.AnyNameHelloServlet.An
19、yName/demo/hello.html.,Servlet程序必须通过Servlet容器来启动运行,并且储存目录有特殊要求,通常需要存储在WEB-INFclasses目录中。Servlet程序必须在WEB应用程序的web.xml文件中进行注册和映射其访问路径,才可以被Servlet引擎加载和被外界访问。一个元素用于注册一个Servlet,它包含有两个主要的子元素:和,分别用于设置Servlet的注册名称和Servlet的完整类名。一个元素用于映射一个已注册的Servlet的一个对外访问路径,它包含有两个子元素:和,分别用于指定Servlet的注册名称和Servlet的对外访问路径。,北京传智
20、播客教育,Servlet映射的细节,AnyName/action/*,AnyName*.do,同一个Servlet可以被映射到多个URL上,即多个元素的子元素的设置值可以是同一个Servlet的注册名。在Servlet映射到的URL中也可以使用*通配符,但是只能有两种固定的格式:一种格式是“*.扩展名”,另一种格式是以正斜杠(/)开头并以“/*”结尾。,北京传智播客教育,缺省Servlet,如果某个Servlet的映射路径仅仅为一个正斜杠(/),那么这个Servlet就成为当前Web应用程序的缺省Servlet。凡是在web.xml文件中找不到匹配的元素的URL,它们的访问请求都将交给缺省Se
21、rvlet处理,也就是说,缺省Servlet用于处理所有其他Servlet都不处理的访问请求。在confweb.xml文件中,注册了一个名称为org.apache.catalina.servlets.DefaultServlet的Servlet,并将这个Servlet设置为了缺省Servlet。当访问Tomcat服务器中的某个静态HTML文件和图片时,实际上是在访问这个缺省Servlet。,北京传智播客教育,Servlet的线程安全问题,Servlet引擎采用多线程模式运行,它为并发的每个访问请求都使用一个独立的线程来进行响应,但带来了线程安全的问题。如果某个Servlet实现了SingleT
22、hreadModel接口,那么Servlet引擎将以单线程模式来调用其service方法。SingleThreadModel接口中没有定义任何方法,只要在Servlet类的定义中增加实现SingleThreadModel接口的声明即可。对于实现了SingleThreadModel接口的Servlet,Servlet引擎仍然支持对该Servlet的多线程并发访问,其采用的方式是产生多个Servlet实例对象,并发的每个线程分别调用一个独立的Servlet实例对象。实现SingleThreadModel接口并不能真正解决Servlet的线程安全问题,因为Servlet引擎会创建多个Servlet实
23、例对象,而真正意义上的多线程安全问题是指一个Servlet实例对象被多个线程同时调用的问题。事实上,在Servlet API 2.4中,已经将SingleThreadModel标记为Deprecated(过时的)。,北京传智播客教育,ServletConfig接口,为Servlet设置参数的例子:ConfigTestConfigTestServletCorporation北京传智播客公司,Servlet在有些情况下可能需要访问Servlet容器或借助Servlet容器访问外部的资源,所以,Serlvet引擎需要将表示Servlet容器的对象传递给Servlet。另外,在web.xml文件中为某
24、个Servlet设置的友好名称和初始化参数等信息也需要传递给该Servlet。,Servlet引擎将代表Servlet容器的对象(ServletContext)和Servlet的配置参数信息一并封装到一个称为ServletConfig的对象中,并在初始化Servlet实例对象时传递给该Servlet。ServletConfig接口则用于定义ServletConfig对象需要对外提供的方法,以便在Servlet程序中可以调用这些方法来获取有关信息。Servlet引擎调用Servlet的实例对象的init(ServletConfigconfig)方法将ServletConfig对象传递给Servl
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 传智播客 JavaWEB 开发 Servlet
链接地址:https://www.31ppt.com/p-5775925.html