千家信息网

JSP学习 三大指令、九个内置对象、JavaBean、EL表达式

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,JSP学习 三大指令、九个内置对象、JavaBean、EL表达式1.page-->最复杂:<%@page language="java" info="xxx"...%>pageEncoding和con
千家信息网最后更新 2026年11月01日JSP学习 三大指令、九个内置对象、JavaBean、EL表达式

JSP学习 三大指令、九个内置对象、JavaBean、EL表达式

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!
    error-page:可在web.xml中设置jsp页面错误时的跳转页面。

    404
    error/404.jsp


    500
    error/500.jsp


    java.lang.RuntimeException
    error/error.jsp

    autoFlush和buffer
    autoFlush:指定jsp的输出流缓冲区满时,是否自动刷新!默认为true,如果为false,那么在缓冲区满是抛出异常!
    buffer:指定缓冲区大小,默认为8kb,通常不需要修改!
    isELIgnored:是否忽略el表达式,默认值为false,不忽略,即支持!
    以下属性基本没用
    language:指定当前jsp编译后的语言类型,默认值为java。
    info:信息!
    isThreadSafa:当前jsp是否支持并发访问!
    session:当前页面是否支持session,如果为false,那么当前页面就没有session这个内置对象!
    extends:让jsp生成的servlet去继承该属性指定的类!

2.include-->静态包含
与RequestDispatcher的inchlude()方法的功能相似!
<%@include%> 它是在jsp编译成java文件时完成的,他们共同生成一个java文件,然后再生成一个.class!
RequestDispatcher的include()是一个方法,包含和被包含的是两个servlet,即两个.class!他们只算把响应的内容在运行时合并了、
作用:把页面分解了,使用包含的方式组合在一起,这样一个页面中不变的部分,就是一个独立的jsp,而我们只需要处理变化的页面。
3.taglib-->导入标签库
*两个属性

prefix:指定标签库在本页面中的前缀!由我们自己来起名称。
uri:指定标签库的位置!
<%@taglib prefix="s" uri="/struts-tags"%> 如

=====================================================================
九个内置对象
out-->jsp的输出流,用来向客户端响应
page-->当前jsp对象! 它的引用类型是Object,即真身中有如下代码:Object page =this;
config-->它对应真身中的ServletConfig对象!
pageContext-->一个顶九个
request-->HttpServletRequest
response-->HttpServletResponse
exception-->Throwable
session-->HttpSession
appliction-->ServletContext
1.pageContext
Servlet中有三大域,而jsp中有四大域,它就是最后一个域对象!

ServletContext:整个应用程序
Session:整个会话(一个会话中只有一个用户)
Request:一个请求链
pageContext:一个jsp页面!这个域是在当前jsp页面和当前jsp页面中使用的标签之间共享数据!
域对象
代理其它域:pageContext.setAttribute("xxx","XXX",PageContext.SESSION_SCOPE);
全域查找:pageContext.findAttribute("xxx");从小到大,依赖查找!

============================================================

JSP动作标签
这些jsp的动作标签,与html提供的标签有本质的区别。
动作标签由tomcat服务器来解释执行!它与java代码一样,都是在服务器端执行的!
html标签由浏览器来执行!
:转发!它与RequestDispatcher的forward方法是一样的,一个在servlet中使用,一个在jsp中使用!
:包含,它与Requestdispatcher的include方法是一样的。
*:它用来作为forward和include的子标签!用来给转发或包含的jsp页面传递参数。

============================================================

JavaBean

javaBean的规范:
1.必须要一个默认的构造器
2.提供get/set方法,如果只有get方法,那么这个属性是制只读属性!
3.属性:有get、set方法的成员,还可以没有成员,只有get/set方法。属性名称由get/set方法来决定!而不是成员名称!
4.方法名称满足一定的规范,那么它就是属性!boolean类型属性,它的读方法可以是is开头,也可以是get开头!

内省:
内省类-->Bean信息-->属性描述符-->属性的get/set对应的Method!-->可以反射了。

commons-beanUtils,它是依赖内省完成!
*导包:

commons-beanUtils.jar
commons-logging.jar

BeanUtils.getProperty(Object bean,String propertyName)
BeanUtils.setProperty(Object bean,String PropertyName,String propertyValue)
BeanUtils.populate(Map map,Object bean)


jsp中与javaBean相关的标签!
创建或查询bean

*

============================================================

EL表达式

1.EL是jsp页面中内置的表达式语言!
jsp2.0开始,不让再使用java脚本,而是使用el表达式和动态标签替代java脚本!
EL替代的是<%= ...%>,也就算说,EL只能做输出!

2.EL表达式来读取四大域
${xxx},全域查找名为xxx的属性,如果不存在,输出空字符串,而不是null。
${pageScope.xxx} ${requestScope.xxx} ${sessionScope.xxx} ${applicationScope.xxxx},指定域获取属性!

3.EL可以输出的东西都在11个内置对象中!
我们已经学习了四个
param:对应参数,它是一个Map,其中key参数名,value是参数值,适用于单值的参数。
paramValues:对应参数,它是一个Map,其中key参数名,value是多个参数值,适用于多值的参数。
header:对应请求头,它是一个Map,其中key标识头名称,value是单个头值,适用于单值请求头。
headerValues:对应请求头,它是一个Map,其中key标识头名称,value是多个头值,适用于多值请求头。
initParam:获取web.xml文件中 节点下的参数
cookie:Map类型,其中key是cookie的name,value是cookie对象。
如:${cookie.JSESSTONID.value} 即可获取cookie中存储的JSESSTONID
pageContext:它是PageContext类型! ${pageContext.request.contextPath} 输出当前项目名称
如:href="${pageContext.request.contextPath}/xx/aa/b.jsp"

============================================================

EL函数库(由JSTL提供的)
导入标签库 <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
具体库方法:https://docs.oracle.com/cd/E17802_01/products/products/jsp/jstl/1.1/docs/tlddocs/fn/tld-summary.html

  • boolean contains(string, substring)
  • boolean containsIgnoreCase(string, substring)
  • boolean startsWith(string, prefix)
  • boolean endsWith(string, suffix)
  • String[] split(string, separator)
  • String substring(string, begin, end)
  • String substringBefore(string, substring)
  • String substringAfter(string, substring)
  • String replace(string, before, after)
  • String toLowerCase(string)
  • String toUpperCase(string)
  • String trim(string)
  • int indexOf(string, suffix)
  • int length(String or Collection)
  • String join(String[], separator)
  • String escapeXml(string)
    *调用方法:${fn:length}

============================================================

自定义函数库
写一个java类,勒种可以定义0~n个方法,单必须是static方法,必须有返回值的。
在WEB-INF目录下创建一个tld文件
在jsp页面中导入标签库 <%@ taglib prefix="it" uri="/WEB-INF/tlds/itcast.tld" %>
在jsp页面中使用自定义的函数库: ${it:fun()}

页面 属性 方法 标签 对象 参数 表达式 输出 两个 名称 类型 文件 函数 动作 只有 就是 成员 是在 服务器 标识 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 精品咖啡豆 天津市摩尔互联网科技 河南云网互联网络科技有限公司 中关村互联网 科技集团 科技制造互联网公司 北京互联网科技有限公司 银优互联网科技有限公司 上海致骋互联网科技 伴你行互联网科技有限公司 左右互联网络科技 汉立互联网科技有限公司联系电话 厦门千工互联网科技有限公司 速维有品互联网信息科技(苏州)有限公司 河南住房之家互联网科技 佛山市拉法互联网科技有限公司 互联网科技手抄报图片 亚光科技低轨卫星互联网 长沙易易互联网科技有限公司 现代科技的标志之一的互联网 前海云享互联网科技 互联网高科技 互联网科技工作委员会副主任毛军 科技创新互联网企业 互联网科技上市公司 深圳互联网科技怎么样 开启互联网科技时代小说 广州优美互联网科技 亳州好赞互联网科技有限公司 群盈汇互联网科技有限公司 深圳互联网科技的发展
0