JSP的运行原理:JSP的本质就是一个Servlet,JSP在运行之前会先被Tomcat服务器翻译为.java文件,然后再将.java文本编译为.class文件,而我们在访问jsp时,处理请求的就是那个翻译后的类
1 <%!%>
<%!%>称作声明,其中写的内容将来会直接翻译在Servlet类中,因为我们可以在类中定义方法和属性以及全局变量,所以我们也可以在<%!%>中声明方法、属性和全局变量
2 <%%>
<%%>叫做脚本片段,其中写的内容会翻译在Servlet的Service方法中,我们可以在类中定义局部变量或者调用其他方法,但是不能再Service方法中再定义其他的方法。在JSP页面中可以有多个脚本片段,但是多个脚本片段之间要保证结构完整
3 <%=%>
<%=%>称作JSP表达式,用于将已经声明的变量或者表达式输出到网页上面
4 直接写在JSP页面<body></body>中的代码称作模板元素,将来会在Servlet的Service方法中的out.write()中,作为输出内容
简单的来说 <%!%>表示表明一个声明方法、属性和全局变量
<%%>表示所执行的jsp语句块,也就是相应的java代码
<%=%>相当于<%out.println("字符串");%>在网页中显示某一个变量或某一个表达式的值
5 <%@ %>
<%@ 编译指令 属性="属性值" %>
在jsp中有三个编译指令page、include、taglib
拿page举例
<%@page import="java.util.ArrayList"%>
page 指令可以定义下面这些大小写敏感的属性(大致按照使用的频率列出):import、contentType、pageEncoding、session、isELIgnored(只限 JSP 2.0)、buffer、autoFlush、info、errorPage、isErrorPage、isThreadSafe、language 和 extends。
import属性
使用page指令的import属性指定JSP页面转换成的Servlet应该输入的包
contentType和pageEncoding属性
contentType 属性设置 Content-Type 响应报头,标明即将发送到客户程序的文档的 MIME 类型
pageEncoding 属性设置页面的字符集
session属性
session 属性控制页面是否参与 HTTP 会话。