发表于: 2025-06-26 20:48:17

0 4


今天的计划:学习深度思考。

48.War包是什么,为什么WEB服务通常打出来的都是War包?除了War包,还有几种打包格式,他们之间的区别呢?

1.背景介绍

WAR是Sun提出的一种Web应用程序格式,是许多文件的一个压缩包。这个包中的文件按一定目录结构来组织:通常其根目录下包含有Html和Jsp文件或者包含这两种文件的目录,另外还会有一个WEB-INF目录。通常在WEB-INF目录下有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的Servlet类和Jsp或Servlet所依赖的其它类。

2.知识剖析

一个war包有什么样的结构?

war包就是一个web应用的打包格式,一个web应用,需要一个用户交互的界面,负责给用户提供信息输入的地方,即jsp页面。数据需要保存下来,jsp把网页上的数据穿送给后台的java类,java类在得到这些数据之后再进行数据相关的工作,如存入数据库,给出相关统计数据等等。

3.常见问题

为什么WEB服务通常打出来的都是War包?

Java web工程,都是打成war包,进行发布,打成war包的好处是不会缺少目录,并且只管理好一个发布文件就好,并且tomcat服务器能够自动识别,将war包放在tomcat容器的webapps下,启动服务,即可运行该项目,该war包会自动解压出一个同名的文件夹。

除了War包,还有几种打包格式,他们之间的区别呢?

49.Put请求在Linux下的Tomcat或者是Resin中会收不到数据,怎么解决这个问题,原因是什么?为什么本地使用Jetty的时候往往是正常的?

tomcat 默认就是不允许PUT和DELETE的 

AJAX

Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。

Ajax = 异步 JavaScript 和 XML标准通用标记语言的子集)。

Ajax 是一种用于创建快速动态网页的技术。

Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。

通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

传统的网页(不使用 Ajax)如果需要更新内容,必须重载整个网页页面。

 

为什么会收不到PUT请求

下载Tomcat源码,打开如下路径

\apache-tomcat-9.0.0.M10-src\java\org\apache\catalina\connector

找到Request.java

在3121行有处理请求类型的方法

  protected void parseParameters() {

下面有一个判断,否则返回,是则继续

if( !getConnector().isParseBodyMethod(getMethod()) ) {
                success = true;
                return;
            }

继续的内容大概是获取form表单的内容,打包成Map格式返回

查找getConnector,看到

  public Connector getConnector() {
        return this.connector;
    }
打开Connector.java

查找isParseBodyMethod,得到

protected boolean isParseBodyMethod(String method) {
        return parseBodyMethodsSet.contains(method);
    }
查找parseBodyMethodsSet,找到如下语句:


        this.parseBodyMethods = methods;
        this.parseBodyMethodsSet = methodSet;
        setProperty("parseBodyMethods", methods);
    }

查找parseBodyMethods,会看到

 protected String parseBodyMethods = "POST";

回到if( !getConnector().isParseBodyMethod(getMethod()) ) {

这个判断,也就是说,如果非POST则返回,是POST就继续执行

所以我们使用PUT返回的是空值

明天的计划:把深度思考学习完,开始任务三。


返回列表 返回列表
评论

    分享到