如何在JSP页面中禁用脚本元素?

在 JSP 2.0中引入表达式语言后,建议使用 EL 而不是脚本元素/scriptlets。这意味着如果我们想访问服务器端对象,建议使用 EL,然后在 JSP 页面中编写一些 Java 代码。

为此,在 JSP 2.0中,我们提供了一个特性,通过在部署描述符文件(web.xml)中的 < JSP-property-group > 中定义一个 scripting-invalid 元素来禁用脚本元素。

这是您需要在web.xml文件中添加的JSP配置:

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">
    <display-name>JSP Examples</display-name>

    <jsp-config>
        <jsp-property-group>
            <url-pattern>*.jsp</url-pattern>
            <scripting-invalid>true</scripting-invalid>
        </jsp-property-group>
    </jsp-config>
</web-app>

当您尝试请求其中包含脚本元素的JSP页面时,它将给您以下错误消息:

HTTP Status 500 - /sessionWriteRead.jsp (line: 10, column: 2) Scripting elements ( <%!, <jsp:declaration, <%=, <jsp:expression, <%, <jsp:scriptlet ) are disallowed here.