文档介绍:北京传智播客教育件人才实作培训专家!Servlet开发方立勋北京传智播客教育件人才实作培训专家!Tip:Servlet简介?Servlet是sun公司提供的一门用于开发动态web资源的技术。?Sun公司在其API中提供了一个servlet接口,用户若想使用Java程序开发一个动态web资源,只需编写一个servlet接口的实现类,并把这个类部署到web服务器中,就算开发好了一个动态web资源。?按照一种约定俗成的称呼****惯,通常我们也把实现了servlet接口的java程序,称之为Servlet。北京传智播客教育件人才实作培训专家!Tip:Servlet开发快速入门?参看Servlet API文档,纯手工编写一个servlet程序,并部署访问。北京传智播客教育件人才实作培训专家!Tip:Servlet的部署?由于客户端是通过URL地址访问web服务器中的资源,所以Servlet程序若想被外界访问,必须把servlet程序映射到一个URL地址上,<servlet>元素和<servlet-mapping>元素完成。?<servlet>元素用于注册Servlet,它包含有两个主要的子元素:<servlet-name>和<servlet-class>,分别用于设置Servlet的注册名称和Servlet的完整类名。?一个<servlet-mapping>元素用于映射一个已注册的Servlet的一个对外访问路径,它包含有两个子元素:<servlet-name>和<url-pattern>,分别用于指定Servlet的注册名称和Servlet的对外访问路径。例如:<web-app><servlet><servlet-name>AnyName</servlet-name><servlet-class>HelloServlet</servlet-class></servlet><servlet-mapping><servlet-name>AnyName</servlet-name><url-pattern>/demo/</url-pattern></servlet-mapping></web-app>北京传智播客教育件人才实作培训专家!Tip:Servlet的部署<servlet-mapping><servlet-name>AnyName</servlet-name><url-pattern>/action/*</url-pattern></servlet-mapping><servlet-mapping><servlet-name>AnyName</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping>?同一个Servlet可以被映射到多个URL上,即多个<servlet-mapping>元素的<servlet-name>子元素的设置值可以是同一个Servlet的注册名。?在Servlet映射到的URL中也可以使用*通配符,但是只能有两种固定的格式:一种格式是“*.扩展名”,另一种格式是以正斜杠(/)开头并以“/*”结尾。北京传智播客教育件人才实作培训专家!Tip:Servlet的部署对于如下的一些映射关系:?Servlet1 映射到/abc/*?Servlet2 映射到/*?Servlet3 映射到/abc ?Servlet4 映射到*.do 问题:?当请求URL为“/abc/”,“/abc/*”和“/*”都匹配,哪个servlet响应Servlet引擎将调用Servlet1。?当请求URL为“/abc”时,“/abc/*”和“/abc”都匹配,哪个servlet响应Servlet引擎将调用Servlet3。?当请求URL为“/abc/”时,“/abc/*”和“*.do”都匹配,哪个servlet响应Servlet引擎将调用Servlet1。?当请求URL为“/”时,“/*”和“*.do”都匹配,哪个servlet响应Servlet引擎将调用Servlet2。?当请求URL为“/xxx/yyy/”时,“/*”和“*.do”都匹配,哪个servlet响应Servlet引擎将调用Servlet2。北京传智播客教育件人才实作培训专家!Tip:web服务器调用Servlet的过程?Servlet程序是由WEB服务器调用,web服务器收到客户端的Servlet访问请求后:①Web服务器首先检查是否已经装载并创建了该Servlet的实例对象。如果是,则直接执行第④步,否则,执行第②步。②装载并创建该Servlet的一个实例对象。③调用Servlet实例对象的init()方法。④创建一个用于封装H