代码之家  ›  专栏  ›  技术社区  ›  Behrang Saeedzadeh

有没有跨平台的方式来访问jspservlet?

  •  2
  • Behrang Saeedzadeh  · 技术社区  · 14 年前

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

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

    有没有跨平台的方法将资源映射到jspservlet?

    更新 :虽然没有跨平台的方法可以将资源映射到jspservlet,但是可以使用 <jsp-property-group> 元素。例如,为了治疗所有 .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 回复  |  直到 14 年前
        1
  •  2
  •   BalusC    14 年前

    这在法律中没有具体规定 JSP specification . 因此,没有跨平台的方法来映射jspservlet上的资源。

    你最好的办法就是 .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>
    
        2
  •  1
  •   Thilo    14 年前

    可能最简单的方法就是叫它.jsp。约定优先于配置(在本例中甚至没有指定的配置方式)。

    如果你叫它.jsp,会有什么中断?

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

        3
  •  0
  •   paulsm4    14 年前

    我同意Arafangion的第一句话:servlet首先是跨平台的!

    servlet是跨平台的,JSP(servlet的一个示例)是跨平台的,而web.xml 您给出的代码片段是跨平台的(它将在Windows上运行,与在Linux上运行相同;您可以在Tomcat、JBoss或Websphere中使用它。

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

    所以我有点搞不懂为什么要给一个(客户端).js脚本分配一个(服务器端)“?

        4
  •  -1
  •   Arafangion    14 年前

    从定义上看,servlets不依赖于平台(即,它们需要Java平台,通常需要servlet平台)。

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

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