Servlet开发计算机软件及应用.ppt

上传人:叶*** 文档编号:66073183 上传时间:2022-12-12 格式:PPT 页数:20 大小:372KB
返回 下载 相关 举报
Servlet开发计算机软件及应用.ppt_第1页
第1页 / 共20页
Servlet开发计算机软件及应用.ppt_第2页
第2页 / 共20页
点击查看更多>>
资源描述

《Servlet开发计算机软件及应用.ppt》由会员分享,可在线阅读,更多相关《Servlet开发计算机软件及应用.ppt(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Servlet开发计算机软件及应用高级软件人才实作培训专家高级软件人才实作培训专家!Tip:Servlet简介简介lServlet是sun公司提供的一门用于开发动态web资源的技术。lSun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向浏览器输出数据),需要完成以下2个步骤:编写一个Java类,实现servlet接口。把开发好的Java类部署到web服务器中。l快速入门,用servlet向浏览器输出“hello servlet”。阅读Servlet API,解决两个问题:输出hello servlet的java代码应该写在servlet的

2、哪个方法内?如何向IE浏览器输出数据?Servlet编译后放哪?高级软件人才实作培训专家高级软件人才实作培训专家!Tip:Servlet在在web应用中的位置应用中的位置l提示:按照一种约定俗成的称呼习惯,通常我们也把实现了servlet接口的java程序,称之为Servlet。Web应用所在目录这些文件一般存在web应用根目录下,根目录下的根目录下的文件外界可以直接访问文件外界可以直接访问java类、jar包、web应用的配置文件存在这个目录下,该目录下的文该目录下的文件外界无法非法直接访件外界无法非法直接访问,由问,由web服务器负责服务器负责调用调用高级软件人才实作培训专家高级软件人才实

3、作培训专家!Tip:Servlet的运行过程的运行过程lUML图描述调用过程高级软件人才实作培训专家高级软件人才实作培训专家!Tip:Servlet的运行过程的运行过程(课后看课后看)lServlet程序是由WEB服务器调用,web服务器收到客户端的Servlet访问请求后:Web服务器首先检查是否已经装载并创建了该Servlet的实例对象。如果是,则直接执行第步,否则,执行第步。装载并创建该Servlet的一个实例对象。调用Servlet实例对象的init()方法。创建一个用于封装HTTP请求消息的HttpServletRequest对象和一个代表HTTP响应消息的HttpServletRe

4、sponse对象,然后调用Servlet的service()方法并将请求和响应对象作为参数传递进去。WEB应用程序被停止或重新启动之前,Servlet引擎将卸载Servlet,并在卸载之前调用Servlet的destroy()方法。高级软件人才实作培训专家高级软件人才实作培训专家!Tip:Servlet的运行过程的运行过程(课后看课后看)高级软件人才实作培训专家高级软件人才实作培训专家!高级软件人才实作培训专家高级软件人才实作培训专家!Tip:在:在Eclipse中开发中开发Servletl在eclipse中新建一个web project工程,eclipse会自动创建下图所示目录结构:web工

5、程的名称,该工程部署时,在webapps目录下就会有一个example的web应用Java程序的开发目录,该目录下编写的所有j程序在部署时,会自动部署到example/WEB-INF/classes目录下。WebRoot对应于web应用的根目录,该目录下的所有子目录和子文件在部署时,会原封不动的发布到web应用目录下。web工程中存放使用的jar包高级软件人才实作培训专家高级软件人才实作培训专家!Tip:Servlet接口实现类接口实现类lServlet接口SUN公司定义了两个默认实现类,分别为:GenericServlet、HttpServlet。lHttpServlet指能够处理HTTP请

6、求的servlet,它在原有Servlet接口上添加了一些与HTTP协议处理方法,它比Servlet接口的功能更为强大。因此开发人员在编写Servlet时,通常应继承这个类,而避免直接去实现Servlet接口(5)。lHttpServlet在实现Servlet接口时,覆写了serviceservice方法方法,该方法体内的代码会自动判断用户的请求方式,如为GET请求,则调用HttpServlet的doGet方法,如为Post请求,则调用doPost方法。因此,开发人员在编写Servlet时,通常只需要覆写doGet或doPost方法,而不要去覆写service方法。l阅读HttpServlet

7、 API文档,查看源码 (画图解析三个类之间的方法区别画图解析三个类之间的方法区别)高级软件人才实作培训专家高级软件人才实作培训专家!Tip:Servlet的一些细节的一些细节(1)l由于客户端是通过URL地址访问web服务器中的资源,所以Servlet程序若想被外界访问,必须把servlet程序映射到一个URL地址上,这个工作在web.xml文件中使用元素和元素完成。l元素用于注册Servlet,它包含有两个主要的子元素:和,分别用于设置Servlet的注册名称和Servlet的完整类名。l一个元素用于映射一个已注册的Servlet的一个对外访问路径,它包含有两个子元素:和,分别用于指定Se

8、rvlet的注册名称和Servlet的对外访问路径。例如:AnyNameHelloServletAnyName/demo/hello.html高级软件人才实作培训专家高级软件人才实作培训专家!Tip:Servlet的一些细节的一些细节(2)AnyName/action/*AnyName*.dol同一个Servlet可以被映射到多个URL上,即多个元素的子元素的设置值可以是同一个Servlet的注册名。l在Servlet映射到的URL中也可以使用*通配符,但是只能有两种固定的格式:一种格式是“*.扩展名”,另一种格式是以正斜杠(/)开头并以“/*”结尾。高级软件人才实作培训专家高级软件人才实作培

9、训专家!Tip:Servlet的一些细节的一些细节(3)对于如下的一些映射关系:对于如下的一些映射关系:lServlet1 映射到/abc/*lServlet2 映射到/*lServlet3 映射到/abc lServlet4 映射到*.do 问题:问题:l当请求URL为“/abc/a.html”,“/abc/*”和“/*”都匹配,哪个servlet响应ServletServlet引擎将调用引擎将调用Servlet1Servlet1。l当请求URL为“/abc”时,“/*”和“/abc”都匹配,哪个servlet响应ServletServlet引擎将调用引擎将调用Servlet3Servlet

10、3。l当请求URL为“/abc/a.do”时,“/abc/*”和“*.do”都匹配,哪个servlet响应ServletServlet引擎将调用引擎将调用Servlet1Servlet1。l当请求URL为“/a.do”时,“/*”和“*.do”都匹配,哪个servlet响应ServletServlet引擎将调用引擎将调用Servlet2Servlet2。l当请求URL为“/xxx/yyy/a.do”时,“/*”和“*.do”都匹配,哪个servlet响应ServletServlet引擎将调用引擎将调用Servlet2Servlet2。高级软件人才实作培训专家高级软件人才实作培训专家!Tip:S

11、ervlet的一些细节的一些细节(4)lServlet是一个供其他Java程序(Servlet引擎)调用的Java类,它不能独立运行,它的运行完全由Servlet引擎来控制和调度。l针对客户端的多次Servlet请求,通常情况下,服务器只会创建一个Servlet实例对象,也就是说Servlet实例对象一旦创建,它就会驻留在内存中,为后续的其它请求服务,直至web容器退出,servlet实例对象才会销毁。l在Servlet的整个生命周期内,Servlet的init方法只被调用一次。而对一个Servlet的每次访问请求都导致Servlet引擎调用一次servlet的service方法。对于每次访问

12、请求,Servlet引擎都会创建一个新的HttpServletRequest请求对象和一个新的HttpServletResponse响应对象,然后将这两个对象作为参数传递给它调用的Servlet的service()方法,service方法再根据请求方式分别调用doXXX方法。高级软件人才实作培训专家高级软件人才实作培训专家!Tip:Servlet的一些细节的一些细节(5)l如果在如果在元素中配置了一个元素中配置了一个元素,那么元素,那么WEBWEB应用程序应用程序在启动时,就会装载并创建在启动时,就会装载并创建ServletServlet的实例对象、以及调用的实例对象、以及调用ServletS

13、ervlet实例对象的实例对象的initinit()()方法。方法。举例:invoker11l细节:值为整数,细节:值为整数,=0 越小优先级越高0 访问的时候再加载该servlet实例l用途:为用途:为webweb应用写一个应用写一个InitServletInitServlet,这个,这个servletservlet配置为启动时装载,为整个配置为启动时装载,为整个webweb应用创建必要的数据库表和数据,应用创建必要的数据库表和数据,初始化日志。初始化日志。高级软件人才实作培训专家高级软件人才实作培训专家!Tip:Servlet的一些细节的一些细节(6)l如果某个Servlet的映射路径仅仅

14、为一个正斜杠(/),那么这个Servlet就成为当前Web应用程序的缺省Servlet。l凡是在web.xml文件中找不到匹配的元素的URL,它们的访问请求都将交给缺省Servlet处理,也就是说,缺省Servlet用于处理所有其他Servlet都不处理的访问请求。l在confweb.xml文件中,注册了一个名称为的Servlet,并将这个Servlet设置为了缺省Servlet。l当访问Tomcat服务器中的某个静态HTML文件和图片时,实际上是在访问这个缺省Servlet。高级软件人才实作培训专家高级软件人才实作培训专家!Tip:Servlet的一些细节的一些细节(7)线程安全线程安全l当

15、多个客户端并发访问同一个Servlet时,web服务器会为每一个客户端的访问请求创建一个线程,并在这个线程上调用Servlet的service方法,因此service方法内如果访问了同一个资源的话,就有可能引发线程安全问题。l如果某个Servlet实现了SingleThreadModel接口,那么Servlet引擎将以单线程模式来调用其service方法。lSingleThreadModel接口中没有定义任何方法,只要在Servlet类的定义中增加实现SingleThreadModel接口的声明即可。l对于实现了SingleThreadModel接口的Servlet,Servlet引擎仍然支持

16、对该Servlet的多线程并发访问,其采用的方式是产生多个Servlet实例对象,并发的每个线程分别调用一个独立的Servlet实例对象。l实现SingleThreadModel接口并不能真正解决Servlet的线程安全问题,因为Servlet引擎会创建多个Servlet实例对象,而真正意义上解决多线真正意义上解决多线程安全问题是指一个程安全问题是指一个ServletServlet实例对象被多个线程同时调用的问题实例对象被多个线程同时调用的问题。事实上,在Servlet API 2.4中,已经将SingleThreadModel标记为Deprecated(过时的)。高级软件人才实作培训专家高级

17、软件人才实作培训专家!Tip:ServletConfig对象对象l在Servlet的配置文件中,可以使用一个或多个标签为servlet配置一些初始化参数。l当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时,将ServletConfig对象传递给servlet。进而,程序员通过ServletConfig对象就可以得到当前servlet的初始化参数信息。l阅读ServletConfig API,并举例说明该对象的作用:获得字符集编码获得数据库连接信息获得配置文件,查看s

18、truts案例的web.xml文件高级软件人才实作培训专家高级软件人才实作培训专家!Tip:ServletContextlWEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用。lServletConfig对象中维护了ServletContext对象的引用,开发人员在编写servlet时,可以通过ServletConfig.getServletContext方法获得ServletContext对象。l由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此Servlet对象之间可以通过ServletCo

19、ntext对象来实现通讯。ServletContext对象通常也被称之为contextcontext域域对象对象。l查看ServletContext API文档,了解ServletContext对象的功能。高级软件人才实作培训专家高级软件人才实作培训专家!Tip:ServletContext应用应用l多个Servlet通过ServletContext对象实现数据共享。l获取文件的MIME类型。l获取WEB应用的初始化参数。l实现Servlet的转发。path)l利用ServletContext对象读取资源文件。得到文件路径 getRealPath()读取资源文件的三种方式 getResourcesAsStream()loader.properties文件(属性文件)相对路劲高级软件人才实作培训专家高级软件人才实作培训专家!Tip:在客户端缓存:在客户端缓存Servlet的输出的输出l对于不经常变化的数据,在servlet中可以为其设置合理的缓存时间值,以避免浏览器频繁向服务器发送请求,提升服务器的性能。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 文案大全

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁