【JSP&EL&JSTL】

JSP

  • 全称:java servlet page
  • 是一个java类,继承了servlet,可以看做是一个servlet
  • ?为什么使用JSP? html为静态内容,需要获取动态数据

三大指令 <%@ %>

<%@page %>

对jsp界面的设置

  • language —— 表名jsp页面可以写xxx代码
  • contextType —— 告诉浏览器是什么内容类型,如何打开,用什么编码方式
  • pageEncoding —— jsp内容编码
  • extends —— 用来指定java文件翻译后继承的父类,一般不用改(默认继承父类)
  • buffer —— 设置缓冲区
  • inport 导包
  • session —— 值可选true、false在该界面是否可以使用session对象
    具体区别:看翻译后的java文件,true有session对象的方法调用
  • errorPage ——如果有错回调到哪个界面
  • isErrorPage ——可选true负责显示错误信息 <%= exception.toString()%>

<%@include %>

可以包含另一个jsp界面

  • file=“xxxx.jsp”
    背后源代码把另一个jsp的页面内容拿来一起输出(静态包含

<%@taglib %>

  • prefix —— 标签库别名
  • uri —— 标签库路径

jsp动作标签

在body里 <jsp:>

include

  • page —— 跟指令标签中的file的区别:这里是动态包含,是把运行结果拿来。

forward

  • page —— 前往哪个页面。
    等同于请求转发request.getRequestDispatcher("xxx").fordward(request,response);

param

  • 在跳转或包含的时候带参数
  • 嵌套在跳转里面
  • 取的时候request.getParameter(" ");
  • 源码:页面?xxx = xxxx

内置对象(面试重点)

  • 不用创建可以直接在jsp中使用的对象

作用域对象

  • 对象可以存执,取值范围有限定 setAttribute getAttribute
  • 四个作用域区别:
pageContext【PageContext类型】
  • 作用域只在当前页面
  • 用这个对象可以拿到其他的八个对象(不咋用)
request【HttpServletRequest类型】
  • 只要服务器作响应,就没有值了
  • 请求转发,一次请求可以取值
session【HttpSession类型】
  • 仅限于一次会话
  • 关闭浏览器后取不到值
application【servletContext类型】
  • 整个工程都可以访问
  • 只有关闭服务器才不可用

exception【throwable类型】
  • 错误界面才有(iserrorPage=“true”)
page【this,当前类的引用对象】
config【servletconfig配置信息】

response【HttpServletResponse类型】
out【jspWriter类型】
  • out.write(“out输出的内容”);
  • response.getWriter().write(“response输出的内容”);
    区别 :jsp中网页的文字翻译成java都是用out输出的
    把out对象输出的内容放到response的缓冲区,先输出response里的内容,再输出缓冲区的内容。

EL表达式

  • 为了简化jsp代码
  • ${表达式 }
  • 没有快捷键提示

指定作用域

<%
   	pageContext.setAttribute("name", "zhangsan");
   	request.setAttribute("name", "request");
   	session.setAttribute("name", "session");
   	application.setAttribute("name", "applicaton");
   %>
   普通取
   <br>
   <%= pageContext.getAttribute("name")%>
   <%= request.getAttribute("name")%>
   <%= session.getAttribute("name")%>
   <%= application.getAttribute("name")%>
   el取
   <br>
   ${ pageScope.name }
   ${ requestScope.name }
   ${ sessionScope.name }
   ${ applicationScope.name }

不指定作用域

  • 默认按照pageContext、request、session、application顺序找

11个内置对象 面试重点

  • pageContext

作用域相关对象

  • pageScope
  • requestScope
  • sessionScope
  • applicationScope

头信息相关对象

  • header
  • headerValues

参数信息相关对象

  • param
  • paramValues

.

  • cookie

全局初始化参数

  • initParam

JSTL表达式

  • Java standard tag library标准标签库
  • 简化jsp的代码替换<%%>配合el表达式使用
  • 先导入支持jar包
    在这里插入图片描述
  • 引入标签库<%@taglib prefix=" " uri=%>记得引入1.1版本1.0不支持el表达式
  • http://java.sun.com/jsp/jstl/core核心库
  • prefix快捷键自动填入c,c是core缩写

常用标签

<c:set></c:set>

<c:set var="name" value="zhangsan" scope="xxx"></c:set> //默认存到page里

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

<c:if test="${age > 18}" var=“flag” scope=“域”>xxxxxxxxxx</c:if> 
//判断表达式里是否满足 满足输出xxxxxxxxxxx flag:表达式的结果

<c:forEach></c:forEach>

//从1开始,10结束,增幅为2
<c:forEach begin="1" end="10" var="i" step="2">
	${i }
</c:forEach>
<c:forEach var="user" items="${list}">
	${user.name }
</c:forEach>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值