JSP scriptlet中的方法是否合法?

我知道它不推荐,我应该使用标签库等。

但是我仍然想知道在JSP scriplet中声明方法是否合法:

 

这合法吗? 我得到一些奇怪的编译错误(如a ; is expected )似乎不适合。 谢谢。

您需要使用声明语法( <%! ... %> ):

 <%! public String doSomething(String param) { // } %> <% String test = doSomething("test"); %> 

理解jsp的工作 :Tomcat将整个JSP转换为Java类。 这个Java类只不过是Servlet。 因此,最终将运行的是servlet。

现在考虑你正在编写一个Jsp代码,它打印一个方法中传递的2个nos的总和

  <%! public int add(int a,int b) { return a+b; } %> <% int k; k=add(5,6); %> <%= k %>  

因此,如果您要编写在servlet中打印出2个n的总和的相同代码,您可能会在doGet()方法中编写它。

您会收到错误的原因是您在另一个方法中定义了一个方法(违反了方法定义的规则)。

因此,我们将该方法放在定义标记中,以便在形成新方法时使用