JSP底层原理
在第一次发送请求时,会把jsp文件转义为java代码,并且会把java代码进一步编译为class文件,最后执行class文件。
jsp生成的java文件中的_jspService
相当于Servlet当中的service方法;
作用
把页面上的静态内容(html代码),使用out.write
方法进行打印,其中out对应着响应的字符输出流;而<% 代码 %>
会原封不动的搬移到jsp转义生成的java代码中。所以jsp的本质还是servlet,这些都是由tomcat做的。
新的方式
jstl 标签 + EL 表达式
旧的生成动态内容的方式
<% 代码 %>
:称之为jsp脚本,其中的变量是方法内的局部变量;方法里能放的东西这里面都能放。<%= 表达式 %>
把某个变量或表达式输出到页面相当于out.print( 表达式 )
,称之为jsp表达式;
- 使用jsp表达式获取作用域内容
<%= request.getAttribute("name") %>
- 使用el表达式获取
${ name }
<%! 代码 %>
:jsp声明,其中的变量类的成员变量和成员方法;类体里可以放什么,这里面就可以放什么。- 使代码不运行的注释
<%-- 注释内容 --%>
,会阻止java代码的运行,包括js标签、el表达式都可以使用; <%@ 指令名 %>
- page:用来指明页面的内容类型和编码方式,
isELIgnored="true|false"
表示是否忽略EL表达式; - taglib:用来引入一个标签库;
- include:用来执行一个页面的包含操作,一个jsp里包含另一个jsp;
<% include file="文件路径" %>