jsp语法 指令 内置对象

<%   java代码    %>

<%=   打印输出  %>

<%! 成员方法或变量  %>

<%-- jsp注释 --%> 标签要用这个注释

<!-- html注释-->


三大指令

<%@include file=" "%>静态包含 被包含页面 不需要出现全局的html标签

<%@ page

language="java"翻译成java源文件 必写

import="java.util.*"多个包逗号分隔

pageEncoding="ugt-8" 把jsp变成java文件用什么编码  在eclipse中也要注意编码保存

contentType="text/html; charset=utf-8"响应编码格式 可以省略

errorPage="" 在当前页面指定错误页面   优先级高于全局

全局配置错误页面,在web.xml文件 jsp可以查看到错误原因

<error-page>

<error-code>500<error-code>

<location>/common/500.jsp</location>

<error-code>400<error-code>

<location>/common/400.html </location>

<error-page>

isErorrPage=“ true/false ”指定当前页面  是否  可以显示异常信息 为flase 则不能使用exception对象   错误信息显示代码<%= exception.getMessage()%>

session="true"开启session对象的使用

buffer jsp页面缓存大小

isElignore 是否忽略el表达式

%>

2.2 9大内置对象

内置对象名          类型

request   HttpServletRequest

response      HttpServletResponse

config        ServletConfig

application        ServletContext

session         HttpSession

exception        Throwable

page            Object(this)

out             JspWriter (有缓冲区  buffer=“8kb” 为0kb则是不缓存  可手动刷新缓存 out.flush()   可以查看缓存区大小和剩余大小  jsp页面结束之前自动缓存)

pageContext     PageContext 向4个域中存取数据 

pageContext.setAttribute("name");默认存、取page域

pageContext.setAttribute("name",域范围常量)

#获取数据

1)默认情况下,从page域获取

pageContext.getAttribute("name")

2)可以从四个域中获取数据

pageContext.getAttribute("name",域范围常量)

 

域范围常量:

PageContext.PAGE_SCOPE

PageContext.REQUEST_SCOPE

PageContext..SESSION_SCOPE

PageContext.APPLICATION_SCOPE

3)自动在四个域中搜索数据

pageContext.findAttribute("name");

顺序: page域 -> request域 -> session- > context域(application域)

3 Jsp中的四个域对象

四个域对象:

pageContext      page

request          request

session          session

application       context

 

1)域对象作用:

保存数据  和 获取数据 ,用于数据共享。

 

2)域对象方法:

setAttribute("name",Object) 保存数据

getAttribute("name")  获取数据

removeAttribute("name") 清除数据

 

3)域对象作用范围:

page域: 只能在当前jsp页面中使用(当前页面)

request域: 只能在同一个请求中使用(转发)

session域: 只能在同一个会话(session对象)中使用(私有的)

    context域: 只能在同一个web应用中使用。(全局的)

5 EL表达式

jsp的核心语法: jsp表达式 <%=%>和 jsp脚本<%  %>

EL表达式作用: 向浏览器输出域对象中的变量值或表达式计算的结果!!!


语法: ${变量或表达式}${list[0].name}该对象为javaBean ${map[0].name}

判断null 和空 ${name==null || name==""} 另一种写法${empty name }


6 jsp标签

1)内置标签(动作标签): 不需要在jsp页面导入标签

2jstl标签: 需要在jsp页面中导入标签

3)自定义标签 : 开发者自行定义,需要在jsp页面导入标签

转发标签: <jsp:forward page="/index.jsp"/>

参数标签:  <jsp:pararm value="tom" name="name"/> 传递参数 可以放在别的标签中

包含标签:  <jsp:include page=“/common/head.jsp”/> 包含标签

指令跟标签的区别
静态包含 无法传递参数 源码包含 相当于一个servlet
动态包含 可以传递参数 先翻译再合并 相当于从一个servlet请求到另一个servlet

6.4 JSTL标签

JSTL (全名:java  standard  tag  libarary   -  java标准标签库  )

核心标签库 (c标签库) 天天用

国际化标签(fmt标签库)

EL函数库(fn函数库)

xml标签库(x标签库)dao层的操作不应该在jsp页面中

sql标签库(sql标签库)

6.5 使用JSTL标签步骤

1) 导入jstl支持的jar包(标签背后隐藏的java代码)注意:使用javaee5.0的项目自动导入jstl支持jar

2)使用taglib指令导入标签库 <%@taglib uri="tld文件的uri名称" prefix="简写" %>

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

3)在jsp中使用标签

核心标签库的重点标签:

保存数据:

<c:set var="name" value="tom" scope="request"></c:set>   默认保存到page域 el表达式取出


获取数据: 

  <c:out value="${name}" default="当value为null会使用默认值" escapeXml="true 不转义value的值 比如value带有标签"></c:out>

单条件判断 查询api判断属性是否支持el表达式

            <c:if test="true">

条件成立输出内容

</c:if>

多条件判断

          <c:choose></c:choose>

       <c:when test=""></c:when>

          <c:otherwise></c:otherwise>

循环数据

begin="从那个元素开始" end="到那个元素结束" step="每次加几" items="要遍历的数据" var="每个元素的名称" varStatus="正在遍历的元素的状态对象"

          <c:forEach begin="0" end="2" step="1" items="${list}" var="stu" varStatus="varSta">

${stu.name}

</c:forEach>

         <c:forTokens items="" delims=""></c:forTokens>

重定向

          <c:redirect></c:redirect>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值