JSP九个内置对象及指令、动作标签
一、JSP九大内置对象
(一)JSP中无需创建就可以使用的9个对象
输入输出对象
1.response(HttpServletResponse):处理JSP生成的响应,然后将响应结果发送给客户端.是service方法的esponse参数。
2.out(JspWriter):表示输出流,将作为请求的响应发送给客户端.是PrintWriter的一个实例。
作用域对象
3.request(HttpServletRequest):表示客户端的请求,包含了所有的请求信息,是service方法的resquest参数。
4.session(HttpSession):表示用户的会话状况,用此机制可以轻易的识别每一个用户,能保存和 跟踪用户的会话状态.是HttpSession的一个实例。
5.pageContext(PageContext):作用于此页面,可以访问页面作用域中定义的所有隐式对象是PageContext的一个实例。
6.application(ServletContext):作用于整个应用程序.是ServletContext的一个实例。
Servlet对象
7.page:提供对网页上定义的所有对象的访问.是一个Object对象.是此Servlet的 一个引用。如Object page = this;
8.config(ServletConfig):存储Servlet的一些初始信息是ServletConfig的一个实例。
异常对象
9.exception(Throwable):此对象负责处理程序执行过程中引发的异常.
(二)pageContext
- 一个顶9个,
- servlet中有三大域,而JSP中有四大域,它是最后一个域对象。
- ServletContext:整个应用程序。
- session:整个会话(一个会话中只有一个用户)。
- request:一个请求链。
- pageContext:一个jsp页面,这个域是当前jsp页面和当前jsp页面中使用的标签之间共享数据。
- 域对象。
- 代理其他域:pageContext.setAttribute("xxx","XXX",PageContext.SESSION_SCOPE);
- 全域查找:pageContext.findAttribute(“xxx”);从小到大,依赖查找。为了避免重名现象,命名时可采用如request_xxx;
- 获取其他8个内置对象:
- JspWriter getOut(): 获取out内置对象;
- ServletConfig getServletConfig():获取config内置对象
- Object getPage():获取page内置对象
- ServletRequest getRequest():获取request内置对象
- ServletResponse getResponse():获取response内置对象
- HttpSession getSession():获取session内置对象
- ServletContext getServletContext():获取application内置对象
- Exception getException():获取exception内置对象
二、JSP三大指令
一个jsp页面中,可以有0~N个指令的定义。
1、page:最复杂:<%@page language="java" info="xxx"......%>
- pageEncoding和contentType:
- pageEncoding:它指定当前jsp页面的编码,只要不说谎,就不会有乱码。在服务器要把jsp编译成.java时需要使用pageEncoding;
- contentType:它表示添加一个响应头:Content-Type;等同于response.setContentType("text/html;charset=utf-8");
- 如果两个属性只提供一个,那么另一个默认值为设置那一个。
- 如果两个属性都没有设置,那么默认为iso
- import:导包,可以出现多次
- errorPage和isErrorPage
- errorPage:当前页面如果抛出异常,那么要转发到哪一个页面,由errorPage来指定。
- isErrorPage:它指定当前页面是否为处理错误的页面,但该属性为true时,这个页面会设置状态码为500,而且这个页面可以使用9大内置对象中的exception。
在web.xml文件配置通用的错误页面
1 <error-page>
2 <error-code>404</error-code>
3 <location>/error/404.jsp</location>
4 </error-page>
5 <error-page>
6 <error-code>500</error-code>
7 <location>/error/500.jsp</location>
8 </error-page>
9 <error-page>
10 <exception-type>java.lang.RuntimeException</exception-type>
11 <location>/index.jsp</location>
12 </error-page>
- autoFlush和buffer
- autoFlush:指定jsp的输出流缓冲区满时,是否自动刷新!默认为true,如果为false,那么在缓冲区满时抛出异常!
- buffer:指定缓冲区大小,默认为8kb,通常不需要修改。
- isELIgnored:是否忽略el表达式,默认值为false,不忽略,即支持。
- 基本属性:
- language:指定当前jsp编译后的语言类型,默认为java。
- info:信息。
- isThreadSafe:当前的jsp是否支持并发访问。
- session:当前页面是否支持session,如果为false,那么当前页面就没有session这个内置对象。
- extends:让jsp生成的servlet去继承该属性指定的类。
2、include:静态包含
- 与RequestDispatcher的include()方法的功能相似。
- <%@include%>它是在jsp编译成java文件时完成的,他们共同生成一个Java(就是一个servlet)文件,然后再生成一个class。
- RequestDispatcher的include()的include()是一个方法,包含和被包含的是两个servlet,即两个.class。他们只是把响应的内容在运行时合并了。
- 作用:把页面分解了,使包含的方式中组合在一起,这样一个页面中不变的部分,就是一个独立jsp,而我们只需要处理变化的页面。

3、taglib:导入标签库
- 两个属性
- prefix:指定标签库在本页面中的前缀,由我们自己来起名称。
- uri:指定标签库的位置。
- <%@taglib prefix="pre" uri="/struts-tags"%>前缀的用法<s:text>
三、JSP动作标签
这些jsp的动作标签,与html提供的标签有本质的区别。
- 动作标签是由Tomcat(服务器)来解释执行,它与Java代码一样,都在服务器端执行的
- html由浏览器来执行。
- <jsp:forward>:转发,它与RequestDispatcher的forward方法是一个样的,一个是在Servlet中使用,一个是在jsp中使用。
- <jsp:include>:包含,它与RequestDispatcher的include方法是一个样的,一个是在Servlet中使用,一个是在jsp中使用。

- <jsp:param>:它用作为forward和include的子标签,用来给转发或包含的页面传递参数。
1 <body>
2 <h1>a.jsp</h1>
3 <%-- 动态转发 --%>
4 <jsp:forward page="b.jsp">
5 <jsp:param value="zhangsan" name="username"/>
6 <jsp:param value="zhangsan" name="password"/>
7 </jsp:forward>
8 </body>
1 <h1>b.jsp</h1>
2 <%
3 String username = request.getParameter("username");
4 String password = request.getParameter("password");
5 out.print(username+":"+password);
6 %>
JSP九个内置对象及指令、动作标签的更多相关文章
- 详解JSP九个内置对象
[JSP]☆★之详解九个内置对象 在web开发中,为方便开发者,JSP定义了一些由JSP容器实现和管理的内置对象,这些对象可以直接被开发者使用,而不需要再对其进行实例化!本文详解,JSP2 ...
- jsp九个内置对象、四个域对象及Servlet的三大域对象
一,什么是内置对象? 在jsp开发中会频繁使用到一些对象,如ServletContext HttpSession PageContext等.如果每次我们在jsp页面中需要使用这些对象都要自己亲自动手创 ...
- jsp jsp九个内置对象
每个JSP页面在第一次被访问的时候,WEB容器都会把请求交给JSP引擎(即一个JAVA)程序.JSP引擎先将JSP翻译成一个_jspServlet实质也是一次servlet,然后按照 Servl ...
- JSP九个内置对象
JSP内置对象有: 1.request对象 客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应.它是HttpServletRequest类的实例. 2.r ...
- JSP学习 三大指令、九个内置对象、JavaBean、EL表达式
1.page-->最复杂:<%@page language="java" info="xxx"...%> * pageEncoding和con ...
- java web学习总结(二十五) -------------------JSP中的九个内置对象
一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...
- JavaWeb---总结(十七)JSP中的九个内置对象
一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...
- JavaWeb学习总结(十七)——JSP中的九个内置对象
一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...
- javaWeb学习总结(8)- JSP中的九个内置对象(4)
一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...
随机推荐
- Python内置函数查询表——总结篇
Python3.5版本中的68个内置函数,按顺序逐个进行了自认为详细的解析,现在是时候进行个总结了.为了方便记忆,将这些内置函数进行了如下分类: 数学运算(7个) 类型转换(24个) ...
- 总结day24 ---- socket ,struct 的学习
前情提要 一:套接字 socket() 1:三次握手 1:客户端像服务端链接, (第一次握手) 2:服务端收到请求,告诉客户端服务端收到了内容 (第二次握手1) 3:服务端像客户端连接, ...
- bzoj4842: [Neerc2016]Delight for a Cat
bzoj4842 这是一道网络流的题(大家都看出来了吧) 首先我们简化一下题目,选出最关键的部分(就是知道什么和要求什么,还有条件) 我们在这里把睡觉设为0,至少有t0时间在睡觉,把打隔膜设为1,至少 ...
- 第一个PSP0级
1.计划: 需求描述: 按照图片要求设计添加新课程界面.(0.5分) 在后台数据库中建立相应的表结构存储课程信息.(0.5分) 实现新课程添加的功能. 要求判断任课教师为王建民.刘立嘉.刘丹.王辉.杨 ...
- 2016级算法期末上机-E.中等·ModricWang's Fight with DDLs II
1125 ModricWang's Fight with DDLs II 思路 圆内被划分部分数的计算方式如下: 圆内部的每一个交点都使得总份数增加了一:除此之外,每一根直线段最后抵达圆周时,总份数也 ...
- Java操作数据库实现"增删改查"
本文主要讲解JDBC操作数据库 主要实现对MySql数据库的"增删改查" 综合概述: JDBC的常用类和接口 一 DriverManager类 DriverManage类 ...
- 利用scrapy-client发布爬虫的远程服务器
一.环境准备 远程服务器必须装有scapyd,我们使用的机器必须有scrapy-client(我这里是windows),并确保这两者正常安装并启动. 二.客户端准备上传 首先进入到爬虫项目的根文件夹: ...
- JavaSwing程序设计(目录)
一.JavaSwing 概述 JavaSwing 图形界面概述 二.JavaSwing 基本组件 JLabel(标签) JButton(按钮) JTextField(文本框) JPasswordFie ...
- 【es6】字符串扩展
8.模板字符串 模板字符串(template string)是增强版的字符串,用反引号(`)标识.它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量. ${}中可以放 1. ...
- master线程的主循环,后台循环,刷新循环,暂停循环
InnoDB存储引擎的主要工作都是在一个单独的后台线程master thread中完成的.master thread的线程优先级别最高.其内部由几个循环(loop)组成:主循环(loop).后台循环( ...