A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分。

在JSP 2.0规范中共定义了三个指令:

page指令

Include指令

taglib指令



语法:

<%@指令名称 属性1=“属性值1” 属性2=“属性值2”。。。%>

或者:

<%@指令名称 属性1=“属性值1”%>

<%@指令名称 属性2=“属性值2”%>



如:<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>



<%@ page language="java" %>

<%@ page import="java.util.*" %>




1、page:

作用:用于定义JSP页面的各种属性

属性:

1.1、import和java代码中的import是一样的

<%@ page import="java.util.Date,java.util.List"%>

或者:

<%@ page import="java.util.Date"%>

<%@ page import="java.util.List"%>

JSP会自动导入以下的包:

import java.lang.*;

import javax.servlet.*;

import javax.servlet.http.*;

import javax.servlet.jsp.*;

1.2、session:是否会自动创建session对象。默认值是true;

1.3、buffer: JSP中有javax.servlet.jsp.JspWriter输出字符流。设置。输出数据的缓存大小,默认是8kb.

1.4 errorPage: 如果页面中有错误,则跳转到指定的资源。

errorPage="/uri"如果写“/”则代表当前应用的目录下,绝对路径。

如果不写“/”则代表相对路径。

    1.5、isErrorPage:是否创建throwable对象。默认是false;

1.6、contextType:等同于response.setContextType("text/html;charset=utf-8");

1.7、pageEncoding:告诉JSP引擎要翻译的文件使用的编码。

1.8、isELIgnored:是否支持EL表达式。 默认是false



<%@ page  pageEncoding="gbk" %>
2、include:

静态包含:把其它资源包含到当前页面中。

<%@ include file="/include/header.jsp" %>

动态包含:

<jsp:include page="/include/header.jsp"></jsp:include>



两者的区别:翻译的时间段不同

前者:在翻译时就把两个文件合并

后者:不会合并文件,当代码执行到include时,才包含另一个文件的内容。



原则:能用静的就不用动的。
3、taglib

作用:在JSP页面中导入JSTL标签库。替换jsp中的java代码片段。

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>




jsp的6个动作

使用标签的形式来表示一段java代码。

如: <jsp:include page="2.jsp"></jsp:include>

<jsp:include > 动态包含

<jsp:forward>请求转发

<jsp:param>设置请求参数



<jsp:useBean>创建一个对象

<jsp:setProperty>给指定的对象属性赋值

<jsp:getProperty>取出指定对象的属性值






jsp的9个内置对象

指在JSP的<%=%>和<% %>中可以直接使用的对象

对象名
       

类型
       

说明

request
       

javax.servlet.http.HttpServletRequest
       



response
       

javax.servlet.http.HttpServletResponse
       



session
       

javax.servlet.http.HttpSession
       

由session="true"开关

application
       

javax.servlet.ServletContext
       



exception
       

java.lang.Throwable
       

由isErrorPage="false"开关

page
       

java.lang.Object当前对象this
       

当前servlet实例

config
       

javax.servlet.ServletConfig
       



out
       

javax.servlet.jsp.JspWriter
       

字符输出流,相当于printWriter对象

pageContext
       

javax.servlet.jsp.PageContext
       





pageContext(重要)

1、本身也是一个域对象:它可以操作其它三个域对象(request session application)的数据

void setAttribute(String name,Object o);

Object getAttribute(String name);

void removeAttribute(String name);

操作其它域对象的方法

void setAttribute(String name,Object o,int Scope);

Object getAttribute(String name,int Scope);

void removeAttribute(String name,int Scope);

scpoe的值:

PageContext.PAGE_SCOPE

PageContext.REQUEST_SCOPE

PageContext.SESSION_SCOPE

PageContext.APPLICATION_SCOPE



findAttribute(String name); 自动从page request session application依次查找,找到了就取值,结束查找。





2、它可以创建其它的8个隐式对象

在普通类中可以通过PageContext获取其他JSP隐式对象。自定义标签时就使用。



3、提供了的简易方法

pageContext.forward("2.jsp");

    pageContext.include("2.jsp");

  

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马