【问题标题】:Where is Tomcat6 processing this GET request?Tomcat6 在哪里处理这个 GET 请求?
【发布时间】:2014-08-26 09:55:45
【问题描述】:

我正在尝试调试我未设置的 Linux (Amazon AMI) 上的 Tomcat 6 Web 服务器的问题。具体来说,我正在尝试使用以下 URL 跟踪发送到 Web 服务器的 GET 请求的执行情况:

./x.html?a=param1&b=param2

...但我不明白 tomcat 在哪里处理请求。我检查了/var/www/WEB-INF/web.xml 并且没有处理请求的servlet,/etc/tomcat6 的web.xml 看起来没有受到影响。

该文件位于/var/www/x.html,因此默认情况下它是一个静态文件,但查询字符串参数在哪里处理。一定有某个 servlet 在某处处理请求。

【问题讨论】:

    标签: tomcat tomcat6


    【解决方案1】:

    总是有一个默认的 servlet 来处理静态资源,定义在 Tomcat_dir/conf/web.xml 中,其中说:

    所有 Web 应用程序的默认 servlet,它提供静态资源。它使用 servlet 映射(在此处或在您自己的 web.xml 文件中定义)处理未映射到其他 servlet 的所有请求。 ...

    【讨论】:

    • 但是在这些情况下如何处理查询字符串参数
    • 它们被传递到 ServletRequest 对象中,在默认的 servlet 中然后传递到 html 页面。在那里,您可以像在每个 html 页面中一样处理它们。你想达到什么目的?
    • 我试图弄清楚 x.html 的内容是如何生成的。原始文件很小,但有大量脚本,因此当文件返回客户端(对 GET 请求的响应)时,脚本最终会生成更多 HTML。但是在 GET 请求中传递的两个参数负责 x.html 最终对客户端的外观。我只是不明白当这个文件的服务委托给默认 servlet 时它们是如何处理的。
    • 那么页面是由Javascript生成的吗?那是在客户端处理的。可以发一些内容吗?
    • 例如在Javascript中处理它们看看here
    【解决方案2】:

    ./x.html?a=param1&b=param2 表示在发送请求的同一文件夹中名为 x.html 的页面

    【讨论】:

    • 我知道x.html在哪里了,就是我不懂的请求处理,具体是查询字符串参数的处理。
    猜你喜欢
    • 2016-04-21
    • 2015-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-04
    • 1970-01-01
    相关资源
    最近更新 更多