JSP原理
JSP对应的Servlet代码
JSP所有的网页,都会被生成Servlet的子类,在eclipse的工程相对路径下可以查到jsp网页的代码。
比如FirstWeb工程的路径如下,可以看到所有的jsp网页都会生成一个filename_jsp为类名的HttpJspBase(扩展自HttpServlet)子类。
.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\FirstWeb\org\apache\jsp
9大隐含对象
由于所有的jsp网页内容都隐含放在下面内部函数中,所以对于jsp网页来说,都会有隐含的9个变量可以使用。
即参数request,response,和_jspService函数内变量pageContext,session,application,config ,out,page,eception
public void _jspService(HttpServletRequest request, HttpServletResponse response){
...
final javax.servlet.jsp.PageContext pageContext;
javax.servlet.http.HttpSession session = null;
final javax.servlet.ServletContext application;
final javax.servlet.ServletConfig config;
javax.servlet.jsp.JspWriter out = null;
final java.lang.Object page = this;
1.request 获取客户请求信息。
2.response 一般在jsp页面中不会调用response的 方法。
3.pageContext是整个页面的上下文,通过这个对象可以获取其他8个隐含对象。在自定义标签中经常被使用。
4.session代表浏览器和服务器的一次会话,每次访问时唯一的编号。
5.application代表当前应用,是ServletContext的对象。可以用来获取<init-param>配置等信息。
6.config 当前JSP网页对应的Servlet的ServletConfig对象,在实际开发中基本上不用。
7.out 将输出信息打印到jsp页面中,而不是控制台。
8.page 指向当前JSP对应的Servlet对象的引用,但类型为Objectg的,在开发时从来不用。
9.exception 只有在<%@ page isErrorPage = "true" %>的页面中才可以使用。
基本语法
模板元素
Jsp页面中的静态HTML称为模板元素。
JSP表达式
<%=var%> 等价于 out.println(var);
JSP脚本片段
放在<% %>中间的代码
JSP声明
由于所有的Jsp网页内容都会生成到jspService函数中,所以在jsp网页中是不能跟普通操作一样定义函数的。
但是通过声明<%! %>,可以将函数定义到jspService函数之外,但是通常开发中几乎不使用。
注释
<%-- JSP声明注释 --%> HTML注释 <!-- HTML注释 -->
<完>