首先JSP的本质就是一个Servlet,JSP的运行之前会先被Tomcat服务器翻译为.java文件,然后在将.java文本编译为.class文件
然后我们访问jsp,处理请求就是那个类。
然后关于<%%>和<%!%>嵌入java代码的问题。
<% %>叫做脚本片段,其中写的内容会翻译在Servlet的_jspService方法中,显然我们可以在_jspService方法中定义局部变量或者调用其他方法,但是不能在_jspService中再定义其他的方法,也就是我们可以在<%%>中定义局部变量或者调用方法,但不能定义方法。在jsp页面可以有多个脚本片段,但是多个脚本片段之间要保证结构完整
其实说白了一个jsp里面的所有的<%%>片段组成一个方法,被放在_jspService里面,所以其语法也必须与java严格一致
<%!%>称作声明,其中写的内容将来会直接翻译在Servlet类中,因为我们可以在类中定义方法和属性以及全局变量,所以我们可以在<%!%>中声明方法、属性、全局变量。
参考链接:
jsp