1.jsp指令概述
指令格式<%@ 指令名 %>指令一般都放在页面最上面。
jsp有三大指令:page taglib include page用的最多
1 page指令
page是最常用的指令,也是属性最多的指令。page没有必选属性,都是可选的。在jsp页面中,任何指令都可以重复出现。
<%@ page taglib%>
<%@ page pageEncoding%>
<%@page import%>
pageEncoding和ContentType:pageEncoding是指当前jsp页面的编码,这个编码是给服务器看的。这两个属性是相依相存的,设置了一个另一个也会采用一样的编码。
page指令的import属性:导包,可以导多个,用逗号分隔。import是可以唯一出现的重复属性。
page属性的errorPage和isErrorpage属性:指定错误页,通过errorPage属性可以设置当前页面出错的话,跳转到指定错误页。
不仅仅只有设置page才可以跳转错误页,通过设置web.xml属性也可以实现错误页处理。
在web.xml加入
<error-page>
<exception-type>产生某种错误</exception-type>
<location>/errror.jsp</location>//跳入指定的错误页面
</error-page>
通过这种方式控制台上也可以看到错误信息,而page则控制台看不到错误信息。
2 .include指令
include表示静态包含指令。即把多个页面合在一起显示。只需要指定一个属性,file路径
<%@ include file="path"%>
3taglib指令:标签指令,用于第三方标签库导包。
<%@ taglib prefix="c" uri="path" %>
**
jsp九大内置对象
**
在jsp页面无需创建就可以使用的九大内置对象,分别是:
- out(jspWriter):等同于response.getWriter();用于输出给客户端数据(尽量少用)
- config(ServletConfig):对应真身的SerlvletConfig
- request:即HttpServletRequest类的对象
- response:即HttpServletResponse类的对象
- application:即ServletContext的对象
- session:即HttpServletSession的对象
- exception:异常对象,只有在错误页面才可以使用
- page:代表当前jsp页面,类似于this
- pageContext:代表当前上下文对象
以上对象用的最多的是request,response,application,session,pageContext
用的少的有out,exception,page,config
1.pageContext对象
在javaweb中一共有四个域对象,其中servlet可以使用的是request,session,application三个对象,jsp使用的是request,response,application,pageContext对象。
pageContext对象主要功能:
- 域对象功能
- 代理其他域对象
- 代理其他内置对象
域对象功能:pageContext也是域对象,代表当前页面,范围最小。
void setAttribute();
Object getAttribute();
void removeAttribute();
obiect find Attribute();//查找,page优先级最高,然后是request,session,application
用于设置域对象的名称和值
一个pageContext对象可以顶所有其他内置对象,因为可以使用他获取其他所有内置对象。
-
JspWriter getOut():获取out对象
-
ServletConfig getServletConfig():获取config对象
-
Object getPage():获取page对象
-
ServlletRequest getRequest():获取request对象
-
ServletResponse getResponse():获取response对象
-
HttpSession getSession():获取session对象
-
ServletContext getSerlvetContext():获取servletcontext对象
-
Exception getException():获取exception对象
jsp动作标签
用来简化Java脚本的。jsp动作标签是javaweb内置的标签,是已经定义好了的。可以直接拿来使用。jsp一共提供了二十多个内置标签,但很多都不用。下面三个非常容易见到,格式:<jsp:标签名> -
<jsp:include>
请求包含,与page指令的include功能一样,但page指令是静态包含,先包含在处理jsp数据。而jsp:include是动态包含,先处理好jsp页面,再包含进来。 -
<jsp:forward>
请求转发!与servlet中的request.getrequestDispatcher功能一样,都属于服务端跳转,用的非常多。 -
<jsp:param>
这个标签主要是子标签,用再include和forward中,用于给被调用页设置参数