一.什么是JSP(JavaServletPage)
1.JSP是一种运行在服务器端的脚本语言,是用来开发动态网页的,本质就是一个servlet.
基本原理:当JSP页面被第一次访问时,服务器会把JSP文件编译成Java文件(就是一个servlet类),然后把.Java文件编译成.class文件,调用该对象的service()方法,第二次请求同一JSP文件时,直接调用service()方法.
二.JSP的作用
- 作为请求发起页面,例如显示表单,超链接.
- 作为请求结束页面,例如显示数据.
三.JSP的三种脚本
- <% … %>:java代码片段(常用),用于定义0~N条java语句;
- <%= … %>:java表达式,用于输出(常用),用于输出一条表达式(或变量)的结果.
- <%! … %>:声明,用来创建类的成员变量和成员方法(基本不用)
四.JSP的九大内置对象
内置对象 类型
out JSPWriter
request HttpServletRequest
response HttpServletResponse
session HttpSession
exception Throwable
page Servlet(this)当前JSP页面,但是使用this代替
config ServletConfig
application ServletContext
pageContext PageContext
1.request对象
是一个域对象,可以获取从servlet转发过来的数据,存活于整个请求链中
2.response对象
将数据响应回浏览器
3.page对象
代表当前的JSP页面,使用this代替
page指令:contentType:声明响应流的字符集;pageEncoding:声明当前页面的字符集;import:用来引入Java中的jar包
4.session对象
HttpSession是Javaweb的内容由服务器创建并保存服务器中,当用户第一次发起请求的时候,服务器会创建session对象会话结束时session就会被销毁,存活在会话期间.
5.out对象
输出对象,相当于PrintWriter
6.pageContext对象
页面域对象,可以操作其它域中的数据(application,session,request域对象),只在当前页面中有效
在session域中存储数据:
参数1:key;参数2:value;参数3: 代表域的整型常量pageContext.setAttribute(“name”,“tom”,PageContext.SESSION_SCOPE);
获取session域中的数据:
pageContext.getAttribute(“name”,PageContext.SESSION_SCOPE);
便捷方式查找key对应的值:
pageContext.findAttribute(“name”);这种方式是从其它三个域对象中根据作用域的从小到大进行查找,找不到返回null.
获取其它的内置对象:
pageContext.getSession();
7.application对象
相当于全局管理者域对象
8.exception对象
异常对象,只有当isEerrorPage为true时才可以使用
9.config对象
JSP 配置对象
五:JSP的动作标签
1.include指令(静态包含)
include是静态包含指令,可以把别的JSP文件引入到当前的JSP文件中,会把当前的JSP文件和引入的文件生成一个.Java文件和一个.class文件
<%@ include file = "内部路径"%>
2.请求转发
<jsp:forward page="内部路径"></jsp:forward>
3.动态包含
动态包含不会把引入的文件放入到自己的文件中,只是引用,引入的文件也会被加载出.Java和.class文件如果要复用JSP页面尽量使用动态包含
<jsp:include page="内部路径"></jsp:include>
4.封装JavaBean
<!--id: 实例化的对象名; class:操作Javabean的全限定类名 实例化的对象放入了页面域中 -->
<jsp:useBean id="p1" class="com.lanou3g.view.Person"></jsp:useBean>
<!-- 赋值 name: 操作的Javabean-->
<jsp:setProperty property="name" name="p1"/>
<jsp:setProperty property="gender" name="p1"/>
<jsp:setProperty property="age" name="p1"/>
<!-- 取值 -->
<jsp:getProperty property="name" name="p1"/>
<jsp:getProperty property="gender" name="p1"/>
<jsp:getProperty property="age" name="p1"/>
六EL表达式
jsp内置对象 EL表达式内置对象
page pageScope
request requestScope
session sessionScope
application applicationScope
1.作用:获取域中数据 ;执行运算;获取常见的web对象;调用java的方法
2.使用方式:
方式1: 获取session域中的值,指定域
${sessionSCope.key};
方式2:获取session域中的值,在JSP四大域中查找,找不到返回空字符串
${key};