(第二章)编写与设置Servlet

第二章编写与设置Servlet

目录

第二章编写与设置Servlet

1、关于HttpServlet

2、使用@WebServlet

3、文件组织与部署

4、进阶部署设置

5、Web目录结构


1、关于HttpServlet

注意到HelloServlet.Java中import的语句区段:

如果要编译HelloServlet.java,则类路径(Classpath)中必须包括Servlet API的相关类,如果使用的Tomcat,则这些类通常是封装在Tomcat目录的lib子目录中的servlet-api.jar。假设HelloServlet.java位于Src目录下,并放置于对应包的目录中,则可以像以下这样进行编译:

注意下划线部分必须修改为实际的目录位置,编译出的.class文件会出现classes目录中,并有对应的包层级(因为使用javac时加了-d自变量)。

2、使用@WebServlet

编写号Servlet之后,接下来要告诉Web容器有关于这个Servlet的一些信息。在Servlet3.0中,可以使用标注(Annotation)来告知容器有哪些Servlet会提供服务以及额外信息。

使用web.xml

3、文件组织与部署

  • WEB-INF:这个目录名称是固定的,而且一定是位于应用程序根目录下。放置在WEB-INF中的文件或目录,对外界来说是封闭的,也就是客户端无法用HTTP的任何方式直接访问到WEB-INF中的文件或目录。若有这类需要,则必须通过Servlet/JSP的请求转发。不想让外界存取的资源,可以放置在这个目录下。
  • web.xml:这是Web应用程序部署描述文件,一定是放在WEB-INF根目录下,名称一定是web.xml
  • lib:放置JAR文件的目录,一定是放在WEB-INF根目录下,名称一定是lib。
  • classes:放置编译过后.class文件的目录,一定是放在WEB-INF目录下,名称一定是classes。编译过后的类文件,必须有与包名称相符的目录结构。

4、进阶部署设置

1、URL模式设置

一个请求URI实际上是由三个部分组成的:

requestURI = contextPath + servletPath + pathInfo

(1)环境路径

可以使用HttpServletRequest的getRequestURI()来取得这项信息,其中contextPath是环境路径(Context path)。是容器用来决定该挑选哪个Web应用程序的依据(一个容器可能部署多个Web应用程序),环境路径的设置方式标准中并没有规范。

一旦决定是哪个Web应用程序来处理请求,接下来就进行Servlet的挑选,Servlet必须设置为URL模式,可以设置的格式分别说明如下。

  • 路径映射(Path mapping):以“/”开头但以“/*”结尾的URL模式
  • 扩展映射(extension mapping):以“*.”开头的URL模式。
  • 环境根目录(Context root)映射:空字符串""是个特殊的URL模式,对应至环境根目录,也就是“/”请求,但不用于设置<url-pattern>或urlpattern属性。
  • 预设Servlet:仅包括“/”的URL模式,当找不到适合的URL模式对应时,就会使用预设Servlet。
  • 完全匹配(Exact match):不符合以上设置的其他字符串,都要作路径的严格对应。

5、Web目录结构

一个Web应用程序基本上会由以下项目组成:

  • 静态资源(HTML、图片、声音等)
  • Servlet
  • JSP
  • 自定义类
  • 工具类
  • 部署描述文件(Web.xml等)、设置信息(Annotation等)
发布了17 篇原创文章 · 获赞 0 · 访问量 223

猜你喜欢

转载自blog.csdn.net/SUN19980421/article/details/104152957