Servlet 接口
Servlet 接口是 Java Servlet API 的核心抽象。所有 Servlet 类必须直接或间接的实现该接口,或者更通常做法是通过继承一个实现了该接口的类从而复用许多共性功能。目前有 GenericServlet 和 HttpServlet 这两个类实现了 Servlet 接口。大多数情况下,开发者只需要继承 HttpServlet 去实现自己的 Servlet 即可。
一般情况下,当开发基于 HTTP 协议的 Servlet 时,Servlet 开发人员将仅去实现 doGet 和 doPost 请求处理方法即可.
servlet 是单实例的
通常 Web 容器对于并发请求将使用同一个 servlet 处理,并且在不同的线程中并发执行 service 方法。
生命周期
init、service 和destroy
2.3.1 加载和实例化
可以从本地或者远程文件系统加载类,,加载完实例化
2.3.2 初始化
1.初始化一些代价高的资源(比如 JDBC API 连接)
2.或者执行一些一次性的动作
3.2 文件上传
当数据以 multipart/form-data的格式发送时,servlet 容器支持文件上传。
如果 servlet 容器提供 multipart/form-data 格式数据的处理,可通过 HttpServletRequest 中的以下方法得到:
■ public Collection getParts()
■ public Part getPart(String name)
3.1 HTTP 协议参数
■ getParameter
■ getParameterNames
■ getParameterValues
■ getParameterMap
头
servlet 可以通过 HttpServletRequest接口的下面方法访问 HTTP请求的头部信息:
■ getHeader
■ getHeaders
■ getHeaderNames
3.5 请求路径元素
引导 servlet服务请求的请求路径由许多重要部分组成。以下元素从请求 URI路径得到,并通过 request 对象
公开:
■ Context Path:与 ServletContext 相关联的路径前缀是这个 servlet 的一部分。如果这个上下文是基于 Web
服务器的 URL 命名空间基础上的“默认”上下文,那么这个路径将是一个空字符串。否则,如果上下文不是
基于服务器的命名空间,那么这个路径以/字符开始,但不以/字符结束。
■ Servlet Path:路径部分直接与激活请求的映射对应。这个路径以“/”字符开头,如果请求与“/ *”或“”模式
匹配,在这种情况下,它是一个空字符串。
■ PathInfo:请求路径的一部分,不属于 Context Path 或 Servlet Path。如果没有额外的路径,它要么是 null,
要么是以’/'开头的字符串。
使用 HttpServletRequest接口中的下面方法来访问这些信息:
■ getContextPath
■ getServletPath
■ getPathInfo
3.10 国际化
■ getLocale
■ getLocales
的 getLocale 方法将返回客户端要接受内容的首选语言环境。