可以重写jsp_service()方法吗?

可以重写jsp_service()方法吗?,jsp,servlets,Jsp,Servlets,我知道jsp\u service()方法不能被重写,但我的一个朋友说,我们可以使用jsp中的scriptlet来重写该方法,并可以在该方法中执行我们需要的任何操作 有人能解释这是真的吗?无论我们在scriplet中写什么,都会被转换成jsp\u service()方法并生成Servlet。因此,要覆盖此方法,只需在scriplet中编写代码即可。但是,您不能手动重写此方法。这将导致编译失败。不是这样 以JSP为例: <%@page contentType="text/html" pageE

我知道
jsp\u service()
方法不能被重写,但我的一个朋友说,我们可以使用jsp中的scriptlet来重写该方法,并可以在该方法中执行我们需要的任何操作


有人能解释这是真的吗?

无论我们在scriplet中写什么,都会被转换成
jsp\u service()
方法并生成Servlet。因此,要覆盖此方法,只需在scriplet中编写代码即可。但是,您不能手动重写此方法。这将导致编译失败。

不是这样

以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页面
你好,世界!
如果您检查此JSP的生成Servlet。您将发现
\u jspService
方法包含HTML代码,如
out.write

为什么?

由于我们在JSP中编写的代码将被放置在生成的servlet类(来自JSP)的
\u jspService()
中。这意味着
\u jspService()
已经被我们执行。因此,如果我们试图重写
\u jspService()
,它将给出一个有关方法
\u jspService()的编译错误
已定义


阅读更多内容

这就是执行Scriptlet中的代码的地方。这与重写方法不同。