WEB-INF目录详解 - JavaEE Servlet应用核心

需积分: 50 3 下载量 10 浏览量 更新于2024-07-13 收藏 2.24MB PPT 举报
"理解WEB-INF目录 - JavaEE Servlet" 在Java EE的Web应用程序中,`WEB-INF`目录扮演着至关重要的角色。它是一个特殊的目录,是每个web应用必不可少的部分,因为缺少它,web服务器将无法识别该应用为合法的web应用,从而无法正确处理用户的请求。`WEB-INF`目录下的资源是受到保护的,用户无法直接通过URL来访问,只有web服务器有权限读取和使用这些资源。 1. `classes`目录:这个目录用于存放编译后的Servlet类文件以及Servlet所依赖的其他类文件。当web服务器启动时,它会自动将`classes`目录下的所有类加载到系统的类路径(classpath)中,使得服务器能够运行和管理Servlet。 2. `lib`目录:这个目录用于存放web应用的JAR文件,包括Servlet和其他第三方库。所有放置在`lib`目录下的JAR文件会在web服务器启动时被加载到系统类路径中,使得服务器在运行时能够访问这些库,支持应用的正常运行。如果web应用的Servlet及相关类被打包成单独的JAR,应当将它们放入此目录。 3. `web.xml`文件:这是web应用的部署描述符,是整个web应用的核心配置文件。`web.xml`包含了web应用的资源、安全设置、Servlet映射、过滤器、监听器等配置信息。服务器根据这个文件来配置和管理web应用的行为。 接下来,我们简要探讨一下Servlet和Web技术的基础知识: Servlet是Java EE中的一种服务器端组件,它扩展了web服务器的功能,允许开发者创建动态、交互式的web应用。Servlet可以接收并响应HTTP请求,处理数据,然后生成HTML或其他类型的响应返回给客户端。相比于早期的静态HTML,Servlet提供了更强大的服务器端计算能力。 Web技术的发展经历了从早期的静态页面到现在的动态交互式应用的转变。Web客户端,通常是指浏览器,负责展示信息内容,而Web服务器则负责响应客户端的请求并返回数据。随着技术的进步,出现了多种服务器端技术,如CGI、PHP、ASP和Java的JSP/Servlet,它们使服务器能够动态生成内容,提供更加丰富的服务。 B/S(Browser/Server)架构与传统的C/S(Client/Server)架构相比,具有显著的不同。在B/S架构中,客户端只需要一个通用的浏览器,无需安装特定的软件,使得部署和维护更加简便,适合大规模的应用。而C/S架构中,客户端需要安装专门的软件,这增加了部署成本,且不利于跨平台使用。 `WEB-INF`目录是Java EE Web应用的关键组成部分,它保护了敏感的类和库文件,以及定义了应用行为的配置文件。Servlet作为服务器端技术,是构建动态web应用的重要工具,而B/S架构则带来了更广泛的适用性和更低的维护成本。

<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://JAVA.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name>springMVC</display-name> <welcome-file-list> <welcome-file>/WEB-INF/jsp/login.jsp</welcome-file> </welcome-file-list> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext-mybatis.xml</param-value> </context-param> <filter> <filter-name>encodingFilter</filter-name> <filter-class> org.springframework.web.filter.CharacterEncodingFilter </filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>classpath:log4j.properties</param-value> </context-param> <context-param> <param-name>webAppRootKey</param-name> <param-value>keshe_C12_09.root</param-value> </context-param> <listener> <listener-class> org.springframework.web.util.Log4jConfigListener </listener-class> </listener> </web-app>

2023-07-16 上传