Java Web基础:J2EE目录结构与Servlet解析

需积分: 15 3 下载量 131 浏览量 更新于2024-09-25 收藏 61KB DOC 举报
"JAVA-web基础知识点包括了web应用的目录结构、Servlet的开发与生命周期、web.xml配置、HTTP表单提交、乱码处理以及Cookie和Session的对比。" 在Java Web开发中,J2EE标准定义了一个典型的`web-app`目录结构。其中,`WEB-INF`是核心部分,包含`classes`目录存放编译后的类文件,`web.xml`是应用的部署描述符,定义了应用的配置信息,`lib`目录用于存放应用所需的jar包。 Servlet是Java Web中的重要组件,通常从`HttpServlet`类继承并重写`doGet`和`doPost`方法来处理HTTP请求。Servlet的生命周期包括:在第一次请求时创建一个Servlet实例(只有一个对象),然后调用`init`方法进行初始化,之后每次请求都会调用`service`方法,它会根据请求类型选择执行对应的`doGet`或`doPost`。由于多个请求可能会并发,因此`service`方法内部是以多线程方式运行的。在Servlet生命周期结束前,会调用`destroy`方法进行清理工作。需要注意的是,由于Servlet实例可能被多个线程共享,所以不应在Servlet中定义可变的成员变量。 在HTTP表单提交中,`form`元素的`action`属性可以设置为虚拟路径或绝对路径,例如,以`/`开头的路径表示完整的URL。`web.xml`文件用于配置应用的元数据,如Servlet的映射,其中`url-pattern`的`/`代表应用的根路径。 处理乱码问题是一项常见的任务。对于页面内容本身的乱码,可以通过在Servlet中设置响应的字符编码,如`resp.setContentType("text/html;charset=gbk")`,或者在JSP页面顶部使用指令`<%@page contentType="text/html;charset=gb2312"%>`来解决。GET方式的乱码问题通常通过修改服务器配置(如Tomcat的`server.xml`,设置`URIEncoding="GBK"`)来解决,而POST方式的乱码则需在获取请求参数前调用`request.setCharacterEncoding("GBK")`。 Cookie和Session是两种主要的用户状态管理机制。Cookie存储在客户端,有生命周期限制,可以被用户禁用;而Session存储在服务器端,依赖于Cookie(通过Cookie中的JSESSIONID追踪Session)。Session有两种实现方式,而Cookie分为两种类型。Cookie无法跨越父路径访问子路径,而Session可以通过URL重写在没有Cookie的情况下维持。 掌握这些JAVA-web基础知识点对于理解和开发Java Web应用程序至关重要。