可以覆盖jsp_service()方法吗?

dev*_*per 4 jsp servlets

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

任何人都可以解释这是真的吗?

Har*_*hra 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>
Run Code Online (Sandbox Code Playgroud)

如果检查生成的此Servlet的Servlet.您将找到_jspService包含HTML代码的方法out.write

为什么?

因为我们在JSP中编写的代码将被放置在_jspService()生成的servlet类中(来自JSP).means _jspService()已经被我们所淹没.所以如果我们试图覆盖_jspService()它将会给出关于该方法_jspService()已经定义的编译错误.

阅读更多为什么jspService()无法被覆盖?