是否有一种跨平台的方式来访问JSP servlet?

时间:2010-08-16 01:11:19

标签: java jsp servlets

在Tomcat中,我们可以配置Web应用程序,使用JSP servlet将非JSP文件视为JSP:

<servlet-mapping>  
   <servlet-name>jsp</servlet-name>  
   <url-pattern>/scripts/my.js</url-pattern>
</servlet-mapping>

是否有跨平台方式将资源映射到JSP servlet?

UPDATE :虽然没有可用于将资源映射到JSP servlet的跨平台方法,但可以使用<jsp-property-group>元素将非JSP文件视为JSP。例如,为了将所有.js个文件视为JSP,我们可以将以下片段添加到web.xml

<jsp-config>
    <jsp-property-group>
        <url-pattern>*.js</url-pattern>
        <is-xml>false</is-xml>
    </jsp-property-group>
</jsp-config>

4 个答案:

答案 0 :(得分:2)

JSP specification中没有指明。因此,没有跨平台方式来映射JSP servlet上的资源。

您最好的选择是让实际的.jsp文件生成所需的JS内容,并将/scripts/my.js映射到<jsp-file>而不是<servlet-class>,如下所示:

<servlet>  
   <servlet-name>js</servlet-name>  
   <jsp-file>/scripts/my.jsp</jsp-file>
</servlet>
<servlet-mapping>  
   <servlet-name>js</servlet-name>  
   <url-pattern>/scripts/my.js</url-pattern>
</servlet-mapping>

答案 1 :(得分:1)

可能最容易称之为.jsp。约定优于配置(在这种情况下甚至没有指定的配置方式)。

如果你把它称为.jsp会怎么样?

如果您希望.jsp在URL中不可见,您可以使用过滤器将URL内部转发到JSP(如果您有很多),或者像BalusC建议的映射(如果您只有几个) )。

答案 2 :(得分:0)

我同意Arafangion的第一个声明:servlet是跨平台开始的!

servlet是跨平台的,JSP(它是servlet的一个例子)是跨平台的,你提供的web.xml片段是跨平台的(它将在Windows上运行,就像它在运行时一样) Linux;您可以在Tomcat,JBoss或Websphere等中使用它。)

但是......

你知道,我确定,“Java”!=“Javascript”。您还知道servlet是服务器端的,但是.js脚本是在客户端处理的。

所以我对你为什么要把(服务器端)“”分配给看似是(客户端).js脚本的东西感到有点困惑?

答案 3 :(得分:-1)

不依赖于servlet平台(即,它们需要Java平台,通常是servlet平台)。

然而,这些平台通常很容易配置为在不同的操作系统上运行,但servlet本身并不一定知道这些细节。

所以......回答你的问题......可能是“不”,除非你限制你的答案,例如特定于多个操作系统的tomcat,或特定版本的tomcat和特定的替代servlet服务器。

相关问题