Servlet学习笔记:类加载器与请求处理

需积分: 0 1 下载量 188 浏览量 更新于2024-07-30 收藏 3.54MB DOC 举报
"servlet学习笔记,记录了关于servlet的基础知识和一些深入的类加载机制,以及HTTP请求处理的相关内容。" 这篇学习笔记主要涵盖了以下几个关键知识点: 1. **Servlet编码问题**: - 在处理HTTP请求时,可能出现Request设置编码无效的情况,因为在第一次请求时,默认编码通常为GET方式的默认编码。 2. **类加载器**: - 类加载机制涉及到引导类加载器(Bootstrap ClassLoader)、扩展类加载器(Extension ClassLoader)和应用类加载器(System ClassLoader)。 - 执行过程中,类加载器遵循“双亲委派模型”,即自定义类加载器加载类时,会先委托给父类加载器尝试加载。 - Person类实现Serializable接口后,在序列化过程中不会初始化该接口,因为接口没有构造器。 - 抽象类拥有构造器,目的是为了子类实例化时提供服务。 - 接口中的常量在运行时会处于同一个包,且由相同的类加载器加载。 3. **类加载与卸载**: - 加载后的类很难被释放,如果修改了类文件,需要重新加载,但可能无法成功替换原有已加载的类,因为JDK并不支持热代码替换。 - 类加载器加载过的类无法卸载,除非发生Full GC。 4. **上下文路径与服务器路径**: - 服务器的根目录加上当前应用的目录组成上下文目录,用于定位应用资源。 5. **HTTP请求处理**: - 可以获取日期型的请求头,以及判断请求是否来自迅雷等特定用户代理。 - 获取请求头的所有信息,并通过Socket获取服务器的主机名。 - 通过特定方法可以获取客户端的地区和语言信息。 6. **Servlet多部分上传配置**: - 防止上传文件时出现空指针异常,需要在Servlet配置中添加`<multipart-config>`标签。 7. **HTTP方法**: - Servlet提供了多种处理HTTP请求的方法,包括GET、POST等。 8. **唯一标识符与主键生成策略**: - 使用UUID生成主键可以减少网络通信的复杂性;而Sequence主键生成通常需要两个步骤。 9. **权限管理与商品展示**: - 笔记中提到了添加角色和商品展示的场景,这可能与Web应用的权限控制和数据展示有关。 这些知识点是学习Java Web开发,尤其是Servlet技术的基础,对于理解Web应用的工作原理和处理HTTP请求的流程至关重要。同时,对类加载机制的理解有助于优化代码结构和处理类的生命周期问题。