相关疑难解决方法(0)

用于提供静态内容的Servlet

我在两个不同的容器(Tomcat和Jetty)上部署了一个webapp,但是他们用于提供静态内容的默认servlet有一种不同的方式来处理我想要使用的URL结构(详细信息).

因此,我希望在webapp中包含一个小servlet来提供自己的静态内容(图像,CSS等).servlet应具有以下属性:

这样的servlet可以在某处使用吗?我能找到的最接近的是servlet书中的例子4-10.

更新:我想使用的URL结构 - 万一你想知道 - 只是:

    <servlet-mapping>
            <servlet-name>main</servlet-name>
            <url-pattern>/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
            <servlet-name>default</servlet-name>
            <url-pattern>/static/*</url-pattern>
    </servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

所以所有请求都应该传递给主servlet,除非它们是static路径.问题是Tomcat的默认servlet不考虑ServletPath(因此它在主文件夹中查找静态文件),而Jetty则这样(因此它在static文件夹中查找).

java jsp servlets java-ee

143
推荐指数
9
解决办法
16万
查看次数

在Java Web应用程序中从应用程序服务器外部提供静态数据的最简单方法

我有一个在Tomcat上运行的Java Web应用程序.我想加载静态图像,这些图像将在Web UI和应用程序生成的PDF文件中显示.此外,还将通过Web UI上传添加和保存新图像.

通过将静态数据存储在Web容器中但从Web容器外部存储和加载它们来解决这个问题并不是一个问题.

我不想在此时使用像Apache这样的单独的Web服务器来提供静态数据.我也不喜欢将图像以二进制形式存储在数据库中.

我已经看到一些建议,比如将图像目录作为指向Web容器外部目录的符号链接,但这种方法是否适用于Windows和*nix环境?

有人建议编写一个过滤器或servlet来处理图像服务,但这些建议非常模糊和高级别,没有指向如何实现这一目标的更详细信息.

tomcat servlets static-content java-ee

129
推荐指数
5
解决办法
14万
查看次数

为什么没有办法使用ajax请求下载文件?

在我们的应用程序中,我们需要实现以下场景

  1. 请求从客户端发送
  2. 服务器处理请求并生成文件
  3. 服务器返回文件作为响应
  4. 客户端浏览器显示文件下载弹出对话框,允许用户下载文件

我们的应用程序是基于ajax的应用程序,因此我们发送ajax请求(如使用jquery.ajax()函数)非常简单方便.

但是在googilng之后,事实证明只有在使用非ajax POST请求时才能进行文件下载(就像在这个流行的SO线程中所描述的那样).因此,我们需要实现更加丑陋且更复杂的解决方案,这需要form使用嵌套的隐藏字段构建HTML结构.

有人可以用简单的话来解释为什么ajax请求不能用于下载文件?这背后的机制是什么?

javascript ajax post download

46
推荐指数
1
解决办法
7万
查看次数

通过Ajax和PHP强制下载

我想创建一个允许强制下载JPG的下载文件.这是我的PHP脚本:

<?php
    header("Pragma: public"); // required
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Content-Description: File Transfer");
    header("Content-Type: image/jpg");
    header('Content-Disposition: attachment; filename="'.basename($GET['a']).'"');
    header("Content-Transfer-Encoding: binary");
    header("Content-Length: ".filesize(($GET['a']));
    readfile(($GET['a']);
?>
Run Code Online (Sandbox Code Playgroud)

这是我的js代码的代码段:

function downloadFile(a){
    document.location = "download.php?a="+ a;
}
Run Code Online (Sandbox Code Playgroud)

使用此代码示例没有任何反应.如果我将结果附加到HTML标记中,它会显示文件的内容.

有任何想法如何教浏览器下载此文件?

编辑:脚本更新

javascript php ajax jquery download

6
推荐指数
1
解决办法
4万
查看次数

标签 统计

ajax ×2

download ×2

java-ee ×2

javascript ×2

servlets ×2

java ×1

jquery ×1

jsp ×1

php ×1

post ×1

static-content ×1

tomcat ×1