我知道jsp_service()方法不能被覆盖,但是我的一个朋友说我们可以在JSP中使用scriptlet来覆盖方法,并且可以在该方法中做任何我们需要的事情. 任何人都可以解释这是真的吗? 不是不是真的
任何人都可以解释这是真的吗?
不是不是真的.拿一个示例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>
如果检查生成的此Servlet的Servlet.你会发现包含HTML代码的_jspService方法为out.write
为什么?
因为我们在JSP中编写的代码将被放置在生成的servlet类的_jspService()中(来自JSP).means _jspService()已经被我们称赞.如果我们试图覆盖_jspService(),它将给出编译错误关于方法_jspService()已经定义.
阅读更多why jspService() cannot be overridden?