将jsp理解为一个servlet类
- 声明为声明类的成员变量,声明类中方法,声明内部类
- 程序段理解为doGet() doPost()
由于容器中每个servlet类只有一个对象
- 当多个客户请求一个 JSP 页面时,JSP 引擎为每个客户启动一个线程。堆内存线程共享,栈内存或寄存器线程独立
- 成员对象在堆中,所以线程共享
- 局部变量在堆中或寄存器中,所以线程独立
jsp符号
- html注释
<!--注释-->
- jsp注释
<%--注释内容--%>
- jsp声明
<%!声明内容%>
- jsp程序段
<%程序段内容%>
- JSP指令
JSP 指令是为 JSP 引擎(比如 Tomcat)而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理 JSP 页面中的其余部分。
JSP 引擎会根据 JSP 的指令信息来编译 JSP,生成 Java 文件。在生成的 Java 文件中,指令就不存在了。
一般都会把 JSP 指令放到 JSP 文件的最上方,但这不是必须的。<%@ 指令名称 属性1="属性值1" 属性2="属性值2" ... 属性n="属性值n" %>
- jsp表达式
JSP 表达式在页面被转换为 Servlet 后,变成了 outprint() 方法。所以,JSP 表达式与 JSP 页面中嵌入小脚本程序中的 out.print() 方法实现的功能相同。
<%=变量或可以返回值的方法或 Java 表达式%>