JSP
一. 概念
Java Server Pages,Java服务器页面,是一种脚本
它是开发动态网页项目的一种规范,它是Servlet的一种简化设计
二. 语法
2.1 注释
- Java注释:// 注释内容、 /* 注释内容 */ ,jsp源码中、翻译后的Servlet中可见
- html注释:<! -- 注释内容 -- > ,jsp源码中、翻译后的Servlet、html源码中可见
- jsp注释:<%-- 注释内容 --%> ,仅jsp源码可见
2.2 脚本语法
- <% Java代码 %>:内部的Java会被翻译到jsp所对应servlet的service方法中
- <%= Java变量或者表达式 %>:内部的Java会被翻译到jsp所对应servlet的service的print参数中
- <%! Java代码 %>:内部的Java会被翻译到jsp所对应servlet的成员位置
三. JSP的运行原理
我们发现xxx.jsp在tomcat -> work -> Catalina -> localhost -> day28_2jsp -> org -> apache -> jsp 目录中被翻译成了 xxx_jsp.java 文件 ,随后又被编译成了对应的字节码文件,
并且这个类xxx_jsp继承了HttpJspBase,而HttpJspBase又继承了HttpServlet,所以
jsp本质就是一个Servlet
整个过程是:
在第一次访问jsp时,jsp页面被翻译成了java文件,然后编译运行
四. JSP指令
4.1 page
page指令是jsp创建后默认就有的指令,它一般用于对jsp页面进行配置
- language:设置可以嵌入在html页面中的语言类型,目前只能放Java
- contentType:设置页面响应时采用的编码格式
- pageEncoding:jsp页面的编码格式
- import:导包
- session:设置jsp中是否可以自动获取Session对象,默认是true
- errorPage:指定发生异常后自动跳转的页面
- isErrorPage:发生异常后是否自动获取exception对象,默认是false
4.2 include
4.3 taglib
五. 内置对象(九个)
概念:无需创建就可以直接在jsp页面中使用的成员变量
1、request:HttpServletRequest的对象
2、response:HttpServletResponse的对象
3、session:HttpSession的对象
4、application:ServletContext的对象
5、out:JspWriter的对象
6、config:ServletConfig的对象
7、page:表示当前页面的对象
8、exception:Throwable的对象,只有页面配置了 isErrorPage=“true”,jsp才会在翻译成Servlet时创建此对象
9、pageContext:PageContext的对象
a、获取其他八个内置对象
b、它也是一个域对象,默认的作用范围是当前页面,可以通过setAttribute()重载方法的第三个参数设置域对象的范围
A、PageContext.PAGE_SCOPE
B、PageContext.REQUEST_SCOPE
C、PageContext.SESSION_SCOPE
D、PageContext.APPLICATION_SCOPE