Servlet_chuanjiang.pdf
需积分: 0 172 浏览量
更新于2008-10-17
收藏 290KB PDF 举报
### Servlet_chuanjiang.pdf知识点概览
#### 一、Servlet基础概述
- **Servlet简介**:
- **定义**:Servlet是一种服务器端的轻量级小型应用程序,它用于处理客户端发送给服务器的请求并生成响应。与Applet相对,后者是在客户端运行的小型程序。
- **优势**:相较于传统的CGI技术,使用Servlet处理HTTP请求更为高效。Java虚拟机(JVM)持续运行,并使用轻量级的Java线程来处理每个请求,避免了每次请求都启动新进程的开销。
- **Web服务器**:
- **概念**:Servlet运行在Web容器内,如Apache Tomcat等,这些容器能够控制Servlet的生命周期,并负责将客户端请求分发给合适的Servlet进行处理。
- **配置Tomcat**:
- 设置环境变量`JAVA_HOME`指向JDK安装路径的父目录。
- 设置`CATALINA_HOME`指向Tomcat安装路径。
- 使`.sh`文件具有执行权限。
- 启动和关闭Tomcat。
- 测试启动是否成功。
- **Servlet的配置文件**:
- **Web.xml**:这是Web应用的核心配置文件,用于配置Servlet的各种属性,如初始化参数、映射URL等。
- **配置示例**:在`<web-app>`元素中定义`<servlet>`和`<servlet-mapping>`,以便将特定的URL路径映射到具体的Servlet实例。
#### 二、Servlet核心概念
- **Servlet接口**:
- **定义**:Servlet接口定义了处理HTTP请求的标准方法,包括`init()`、`service()`和`destroy()`等生命周期方法。
- **实现**:开发者通常继承抽象类`HttpServlet`来简化开发过程,因为它已经实现了大部分必要的方法。
- **Servlet生命周期**:
- **初始化阶段**:当Servlet第一次被加载到Web容器时,容器会调用`init()`方法初始化Servlet。
- **服务阶段**:每当接收到新的HTTP请求时,容器都会调用`service()`方法处理该请求。
- **销毁阶段**:当Web容器卸载Servlet时,容器会调用`destroy()`方法释放Servlet占用的资源。
- **SingleThreadModel接口**:
- **作用**:这是一个可选接口,表示Servlet的实例一次只处理一个线程的请求,以确保数据的安全性。
- **限制**:虽然提供了一定程度的线程安全性,但由于性能问题,现代Servlet容器不再推荐使用此接口。
#### 三、Servlet资源访问
- **Servlet资源访问**:
- **概念**:介绍如何让Servlet访问各种资源,包括数据库、文件系统和其他Web组件。
- **配置数据源**:通过在`web.xml`文件中定义数据源,可以让Servlet轻松地访问数据库。
- **MVC框架**:
- **模型-视图-控制器**(Model-View-Controller,MVC)是一种设计模式,用于分离应用的不同关注点。
- **在Servlet中的应用**:Servlet通常扮演控制器的角色,处理客户端请求并将数据传递给模型层处理,然后根据处理结果决定呈现哪个视图。
- **相关对象**:
- **ServletContext**:用于共享数据和获取初始化参数。
- **RequestDispatcher**:用于转发请求到其他资源。
- **HttpServletRequest**和**HttpServletResponse**:分别代表客户端请求和服务器响应。
#### 四、Cookie和Session
- **Cookie**:
- **概念**:一种存储在客户端浏览器上的小型文本文件,用于跟踪用户状态。
- **应用场景**:记录用户的登录状态、购物车信息等。
- **Session**:
- **概念**:服务器端维护的一组与特定用户相关的数据集合,用于跨请求保持状态。
- **机制**:通过为每个用户创建一个唯一的Session ID,并将其存储在Cookie或URL中,以便服务器能够识别并恢复用户的Session状态。
- **用户身份认证**:
- **过程**:验证用户的身份,通常涉及用户名和密码的检查。
- **Session在认证中的角色**:一旦用户通过身份验证,服务器会为该用户创建一个Session,并存储与用户相关的信息。
- **URL重写**:
- **替代方案**:在禁用Cookie的情况下,可以通过URL重写来维持Session状态。
#### 五、Servlet过滤器和监听器
- **Servlet过滤器**:
- **概念**:用于拦截请求并在请求到达目标资源之前对其进行预处理或在响应返回客户端之前对其进行后处理。
- **实现**:通过实现`javax.servlet.Filter`接口创建自定义过滤器。
- **Servlet监听器**:
- **概念**:监听Web应用程序中的特定事件,如应用程序初始化、会话创建等。
- **作用**:在特定事件发生时执行相应的操作,例如记录日志、设置初始化参数等。
#### 六、补充和小结
- **重要对象总结**:
- **Servlet中的关键对象**:如`HttpServletRequest`、`HttpServletResponse`、`ServletContext`等。
- **URL模式**:在`web.xml`中定义的用于映射Servlet的路径。
- **ServletRequest对象的返回路径方法**:`getRequestDispatcher()`等方法用于实现请求转发。
以上内容详细阐述了Servlet的基本概念、核心功能、资源访问方式、会话管理以及过滤器和监听器的相关知识,对于初学者理解和掌握Servlet技术非常有帮助。