当前位置: 首页 > news >正文

探讨一下WebINFO 下的一些思考

       在平时的开发中,我们经常看到一个/WEB-INF 这个目录,这个是web 容器初始化加载的一个标准路径。官方解释:WEB-INF 是 Java 的 web 应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。也就是说,这个目录是给服务端看的,那么,如果想要在客户端进行访问的话,就必须通过 web.xml 文件或是采用注解的方式对要访问的文件进行映射。并且整个 web 应用程序的目录结构应该合理,文件应该放置在正确的位置,否则可能会出现 “404。

简单梳理一下WEB-INF的作用:

1、/WEB-INF/web.xml
Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。

2、 /WEB-INF/classes/
包含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中。
 3、/WEB-INF/lib/
存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件。
 4、/WEB-INF/src/
 源码目录,按照包名结构放置各个 Java 文件。
 5、/WEB-INF/database.properties
 数据库配置文件,一般项目开发中结合使用框架进行调整,不在这个文件中进行配置
 6、/WEB-INF/tags/
存放了自定义标签文件,该目录并不一定为 tags,可以根据自己的喜好和习惯为自己的标签文件库命名,当使用自定义的标签文件库名称时,在使用标签文件时就必须声明正确的标签文件库路径。例如:当自定义标签文件库名称为 simpleTags 时,在使用 simpleTags 目录下的标签文件时,就必须在 jsp 文件头声明为:<%@ taglibprefix="tags" tagdir="/WEB-INF /simpleTags" % >。
7、/WEB-INF/jsp/
jsp 文件的存放位置。改目录没有特定的声明,同样,可以根据自己的喜好与习惯来命名。此目录主要存放的是 jsp 1.2 以下版本的文件,为区分 jsp 2.0 文件,通常使用 jsp 命名,当然你也可以命名为 jspOldEdition 。这个在项目开发中可以根据使用MVC框架进行需改。

其中在这个路径下我们都知道一个web.xml 的一个文件,这个是web容器初始化加载的一个文件,可以处理一些关键的配置,今天结合tomcat服务器的请求响应简单看下处理的相关类。我们可以查看tomcat 中的conf下的web.xml ,这是tomcat 容器的默认请求处理类:

关键配置:

默认请求:

    <servlet>
        <servlet-name>default</servlet-name>
        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

对jsp 的处理

 <servlet>
        <servlet-name>jsp</servlet-name>
        <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
        <init-param>
            <param-name>fork</param-name>
            <param-value>false</param-value>
        </init-param>
        <init-param>
            <param-name>xpoweredBy</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>3</load-on-startup>
    </servlet>

在我们的开发中其实会引入mvc 框架进行请求处理的支持,以便更好的进行控制和管理,如Springmvc

<servlet>
    <servlet-name>mvcservlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:SpringMVC.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>SpringMVC</servlet-name>
    <url-pattern>/</url-pattern>

</servlet-mapping>

通过这个配置我们可以将应用的请求处理通过我们的应用进行接受处理,其中<load-on-startup>1</load-on-startup> 配置启动优先级,如果不进行配置初始化时代表容器启动时不加载且不初始化,那么当浏览器第一次访问servlet时,才会初始化,那么第一次访问页面会加载很久。这里servlet-mapping 可以具体配置请求比如.do,.go等,如果找不到的请求路径则tomcat 中的servlet 进行处理。

http://www.lryc.cn/news/275083.html

相关文章:

  • MySQL中的开发基于Python的SQL工具类操作数据库简单示例
  • 安卓Android Studio读写FM1208CPU卡源码
  • 二、Redis的特性与应用场景
  • 编程笔记 html5cssjs 019 HTML实体
  • 数据结构:树详解
  • list1.Sort((m, n) => m.Id - n.Id); id是double类型的为什么回报错
  • GoLang vs Python
  • Hello 2024(A~D,F1)
  • Python+Torch+FasterCNN网络目标检测识别
  • v8 pwn利用合集
  • JVM:字节码
  • 常见网络设备及功能详解
  • Python教程(20)——python面向对象编程基本概念
  • C# Winform教程(一):MD5加密
  • Mongodb使用指定索引删除数据
  • 虾皮怎么选品:虾皮(Shopee)跨境电商业务成功的关键步骤
  • QML —— 使用Qt虚拟键盘示例(附完整源码)
  • Nacos 持久化及集群的搭建【微服务】
  • win10下vscode+cmake编译C代码操作详解
  • 网络安全红队常用的攻击方法及路径
  • 【基于openGauss2.1.0企业版安装X-Tuner参数调优工具】
  • SpringBoot+Vue轻松实现考试管理系统
  • 详解Keras:keras.preprocessing.image
  • 来瞅瞅Java 11都有啥新特性
  • Copilot在IDEA中的应用:提升编码效率的得力助手
  • 【Python】Excel不同sheet另存为不同CSV
  • 软件测试|深入学习 Docker Logs
  • 试除法求约数算法总结
  • [JavaWeb玩耍日记] 数据库
  • rime中州韵小狼毫 inputShow lua Translator 输入字符透传翻译器