J2EE实战:Servlet与JSP核心概念解析

4星 · 超过85%的资源 需积分: 0 2 下载量 81 浏览量 更新于2024-10-17 收藏 61KB DOC 举报
"Servlet与JSP知识点" Servlet与JSP是Java Web开发中的核心组件,用于构建动态网页应用程序。Servlet是一个Java类,它扩展了服务器的功能,处理来自客户端(通常是Web浏览器)的请求,并向客户端发送响应。JSP(JavaServer Pages)是一种视图技术,允许开发者将HTML代码与Java代码混合编写,简化了界面的开发。 符合J2EE标准的Web应用目录结构通常包括以下几个部分: 1. **WEB-INF**:这个目录存放配置文件、类文件和库文件。其中: - **classes**:存放编译后的Java类文件。 - **web.xml**:Web应用的部署描述符,定义了应用的配置信息,如Servlet的映射和初始化参数。 - **libs**:存放应用所需的外部库文件(JAR)。 Servlet的开发过程通常涉及以下步骤: 1. 继承自`HttpServlet`类,并重写`doGet()`和`doPost()`方法,这些方法对应HTTP协议的GET和POST请求。 2. 部署时需要在`web.xml`中声明Servlet,设置其映射路径。 3. Servlet生命周期包括初始化、服务和销毁三个阶段: - 初始化:Servlet容器创建Servlet的单例对象,并调用`init()`方法,仅执行一次。 - 服务:每次客户端请求时,Servlet容器会以多线程方式调用`service()`方法,该方法会根据请求类型转发到`doGet()`或`doPost()`。 - 销毁:Web应用关闭或卸载前,Servlet容器调用`destroy()`方法,释放资源。 关于URL路径: - 表单提交中的`action`属性可以设置为相对路径或绝对路径,如`/`代表Web应用的根路径。 - 在Web应用的配置文件`web.xml`中,`url-pattern`用于定义Servlet的映射,`/`表示匹配Web应用的根URL。 乱码问题: - 页面显示中文乱码,可以在Servlet中通过`resp.setContentType("text/html;charset=gbk")`或在JSP中使用`<%@page contentType="text/html;charset=gb2312"%>`来指定字符编码。 - GET方式的乱码问题,可以通过修改服务器配置(如Tomcat的`server.xml`中的`URIEncoding`属性)来解决。 - POST方式的乱码问题,需要在获取请求参数之前调用`request.setCharacterEncoding("GBK")`。 - URL中包含中文参数的情况,应在JSP页面中使用`<%request.setCharacterEncoding("GBK");%>`。 Cookie与Session的区别: - Cookie存储在客户端,而Session存储在服务器端。 - Cookie有两种类型:Session Cookie(无声明周期,关闭浏览器消失)和Persistent Cookie(有声明周期,可设置过期时间)。 - Session通常依赖于Cookie,通过Cookie在客户端保持Session ID,但也可通过URL重写实现无Cookie的Session跟踪。 注意,Cookie可能因为用户设置而无法禁用,而Session的存活依赖于Cookie,如果用户禁用了Cookie,需要采取其他方式维持Session。此外,Cookie的访问范围受到父路径的限制,子路径无法访问父路径设置的Cookie。