- 含义:从用户角度看就是一个网页,从程序员角度看待其实就是一个java类,它继承了servlet,所以可以直接说jsp就是servlet。
- 为什么有jsp?html大多数情况下显示静态内容,即一成不变的,但是有时候需要在页面上显示一些动态数据,如查询所有的学生信息,根据姓名去查询具体某个学生。这些动作都需要去查询数据库,然后在网页上显示,html时不支持写java代码,jsp里面可以写Java代码。
- 怎么用jsp?<%@ 指令名字%>
- jsp三大指令
1)page指令
<%@ page language="java" contentType="text/html;charset=utf-8" pageEcoding="utf-8" extends="" session="true"%>
—anguage表明jsp页面中可以写java代码。
—contentType表明这个文件时什么类型,告诉浏览器文件是什么类型,以及使用什么编码。text/html表示是html页面。
—pageEncoding表明jsp内容编码。
—extends用于指定jsp翻译成java文件后,继承的父类是谁,一般不用改动。
—import导入包时使用,不用手写。
—session的值只能为true或false,用于控制在这个jsp页面里面是否能够直接使用session对象。如果该值时true,那么在代码里面会有getSession()的调用,如果时false,那么不能调用。
—erroage指的是错误的页面,值需要给出错误的页面路径。那么实际上是跑到isErropage=“true”的页面中。
—isErropage=“true”表明该页面是呈现错误的页面。
2)include指令
<%@ include file=“other.jsp” %>
—将另一个jsp的内容包含进来,这样会将另外一个页面的所有内容拿过来一起输出,所有的标签元素都包含进来。
3)taglib指令
<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
—uri是标签库路径,prefix是标签的别名
5. jsp动作标签
—— <jsp:include page="other.jsp"></jsp:include>
包含指定的页面,这里是动态包含。也就是不把包含的页面所有元素标签全部拿过来输出,而是把它的运行结果拿过来。
——<jsp:forward page=" other.jsp "></jsp:forward>
前往哪一个页面,等同于请求转发
Req.getRequestDispatcher(“other.jsp”).forward(request,response)%>
——<jsp:param name="address" value="beijing" />
传入参数
- jsp九大内置对象
—就是我们可以直接在jsp页面中使用这些对象,不用创建。
-pageContext
-request
-session
-application
以上四个为作用域对象:作用域表示这些对象可以存值,他们的取值范围有限定。都有seAttribute和getAttribute方法。
1)使用作用域来存储/取出数据
2)四个作用域的区别
—pageContext作用域仅限于当前的页面。【PageContext】
—request作用域仅限于一次请求,只要服务器对象请求做出了响应。这个域中存在的值就没有了。【HttpRequest】
—session作用域限于一次会话(多次请求与响应)当中。【HttpSession】
—Application作用域在整个工程中,服务器关闭后就不能访问了。【ServletContext】
-Response 【HttpServletResponse】
-out 【JspWriter】
-page 【Object】就是这个jsp翻译成的java类的实例对象
-exception 【Throwable】
-config 【ServletConfig】