4

我知道该jsp_service()方法不能被覆盖,但我的一个朋友说我们可以在 JSP 中使用 scriptlet 来覆盖该方法,并且可以在该方法中做我们需要的任何事情。

谁能解释这是真的吗?

4

2 回答 2

9

不是它不是真的。

取一个示例 JSP:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>Hello World!</h1>
    </body>
</html>

如果您检查为此 JSP 生成的 Servlet。您会发现_jspService包含 HTML 代码的方法为out.write

为什么 ?

由于我们在 JSP 中编写的代码将被放置在_jspService()生成的 servlet 类(来自 JSP)_jspService()中。意味着我们已经限制了它。因此,如果我们试图覆盖_jspService()它,则会给出关于方法_jspService()已定义的编译错误。

阅读更多为什么 jspService() 不能被覆盖?

于 2013-06-04T07:46:35.320 回答
1

我们在 scriplet 中写入的任何内容都会转换为jsp_service()生成的 Servlet 的方法。所以,要覆盖这个方法,你可以简单地用 scriplet 编写代码。但是,您不能手动覆盖此方法。会导致编译失败。

于 2013-06-04T05:57:50.813 回答