深入理解Servlet与JSP:Head First Servlets & JSP笔记

需积分: 9 5 下载量 67 浏览量 更新于2024-08-01 收藏 603KB PDF 举报
"Head_First_Servlet_and_JSP_筆記.pdf" 在Java Web开发中,Servlet是用于处理HTTP请求的关键组件,它们充当了服务器与客户端之间的桥梁。`Head_First_Servlet_and_JSP_筆記.pdf`这份资料详细介绍了Servlet的相关概念和技术。 首先,Servlet是一个Java接口,定义了Web服务器如何调用Java对象来处理请求。它包含以下几个核心方法: 1. `service(ServletRequest, ServletResponse)`:这是Servlet的核心方法,用于接收并处理客户端的请求,根据请求类型调用适当的方法如`doGet()`或`doPost()`。 2. `init(ServletConfig)`:当Servlet被加载到服务器时,此方法会被调用,用于初始化Servlet实例。 3. `destroy()`:当Servlet不再需要或者服务器关闭时,此方法会被调用,用于释放Servlet占用的资源。 `GenericServlet`是一个抽象类,实现了Servlet接口,并提供了一些通用的功能: 1. 它也包含了`service(ServletRequest, ServletResponse)`、`init(ServletConfig)`和`destroy()`方法,但它们是抽象的,需要子类实现。 2. 提供了`getServletConfig()`返回ServletConfig对象,可以获取Servlet的配置信息。 3. `getServletInfo()`返回Servlet的信息。 4. `getInitParameter(String)`和`getInitParameterNames()`用于获取Servlet的初始化参数及其名称。 5. `getServletContext()`返回ServletContext对象,可以访问整个Web应用的上下文信息。 6. `log(String)`和`log(String, Throwable)`用于记录日志信息。 `HttpServlet`是`GenericServlet`的子类,专门针对HTTP协议进行了优化,提供了处理HTTP请求的方法: 1. `service(HttpServletRequest, HttpServletResponse)`:这个方法将请求和响应对象转换为HTTP特定的类型,然后根据请求类型调用对应的方法,如`doGet()`或`doPost()`。 2. `doXXX(HttpServletRequest, HttpServletResponse)`:这些方法(如`doGet()`和`doPost()`)是具体的请求处理器,开发者通常会重写这些方法以实现业务逻辑。 3. `getLastModified(HttpServletRequest)`:返回Servlet上次修改的时间,用于缓存控制。 4. HTTP方法(XXX):包括GET、POST、HEAD、OPTIONS、PUT、TRACE和DELETE,这些方法对应HTTP协议中的不同请求类型。其中,GET和HEAD被认为是幂等(idempotent)的,多次执行结果相同,而POST通常不是幂等的。 `ServletRequest`接口代表了客户端发送的请求: 1. `getAttribute(String)`:获取请求中携带的属性。 2. `getContentLength()`:获取请求体的长度。 3. `getInputStream()`:获取请求的数据流。 4. `getReader()`:获取请求的字符输入流,用于读取请求体中的文本数据。 5. `getRemoteXXX()`和`getServerXXX()`:提供客户端和服务器的相关信息,如远程地址、远程端口、服务器名称等。 了解这些基本概念后,开发者可以创建Servlet来处理来自客户端的请求,实现动态网页服务。这份笔记深入浅出地介绍了Servlet和相关接口的使用,是学习Servlet和JSP的宝贵参考资料。