zoukankan      html  css  js  c++  java
  • Java实战之04JavaWeb-04JSP、EL表达式、JSTL标签库

    一、jsp部分

    只要是与页面显示相关的都是重点

    1.jsp的脚本

    <%java代码%>:被翻译到service方法内部,局部变量,局部的功能

    <%=表达式或变量%>:翻译成service方法中out.write(表达式或变量)

    <%!java代码%>:被翻译成servlet的全局的内容,方法,全局变量

    2.jsp的运行原理

    jsp在运行时翻译成servlet

    index.jsp------>work/index_jsp.java----->work/index_jsp.class

    3.jsp的注释

    html注释:<!--注释-->  可见范围:html源码可见

    java注释:注释写到脚本  //   /**/   /***/   可见范围:翻译后的servlet

    jsp注释:<%--注释--%>  可见范围:jsp源码范围可见

    4.jsp的指令

    jsp的指令:page指令 taglib指令 include指令

    jsp指令的一般格式:<%@ 指令名称 属性=“属性值” 属性=“属性值”%>

    (1)page指令

    配置整个jsp的信息

    属性:

    language:jsp中的脚本可以嵌入的语言代码  只能嵌入java 默认嵌java

    import:在jsp中导入包

    pageEncoding:本身jsp的编码  内部已经包含contentType

    contentType:翻译成response.setContentType("text/html; charset=GBK");

    errorPage:jsp出错后的跳转的地址

    isErrorPage:true代表本身是一个错误处理的页面

    isELIgnored:jsp是否可以解析el表达式 默认是false 可以解析

    session:是否自动创建session

    buffer:out缓冲区的大小 可以设置为0kb

    (2)taglib指令

    引入标签库

    <%@ taglib uri=”” prefix=””%>

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

    (3)include指令

    包含页面用----静态包含

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

    5.jsp的九大隐式对象(面试笔试常问)

    什么是隐式对象?

    在jsp脚本中直接使用的对象

    request

    response

    pageContext

    session

    application

    config

    out

    page

    exception

    其中

    out对象:JspWriter

    out.write()---->页面写内容

    pageContext对象:页面的上下文对象

    1)pageContext是一域对象

    可见范围:当前jsp页面

    setAttribute(name,value)

    getAttribute(name)

    removeAttribute(name)

    setAttribute(name,value,scope)

    getAttribute(name,scope)

    removeAttribute(name,scope)

    其中scope是指定的域范围

    pageContext.setAttribute("name", "zhangsan", PageContext.SESSION_SCOPE);

    findAttribute(name);

    底层实现:从四个域中寻找属性 从小到大的顺序 找到属性后 后面的域不在寻找了

    page域---->request域----->session域----->application域

    ${requestScope.name}

    ${name}-----底层findAttribute()

    2)pageContext可以获得其他八大隐式对象

    6.jsp的标签(jsp的动作)

    <jsp:include>----面试经常问

    包含页面----动态包含

    静态包含与动态包含的区别?

    静态包含:先将被包含的jsp与包含的jsp进行源码级别的合并,然后在翻译成一个servlet

    动态包含:将两个jsp分别翻译,在运行阶段在将结果合并

    <jsp:forward>

    <jsp:param>

    <jsp:useBean>

    <jsp:setProperty>

    <jsp:getProperty>

    二、EL表达式

    E L(Expression Language) 目的:为了使JSP写起来更加简单

    1.El可以获取域中的数据

    ${pageScope.name}

    ${requestScope.name}

    ${sessionScope.name}

    ${applicationScope.name}

    ${name}

    2.El可以进行运算

    ${1+1}

    ${name==’zhangsan’?true:false}

    ${list[2].name=='aaa3'?"等于":"不等于" }

    关键字empty

    ${empty 域中的对象/变量}----->true/false

    3.EL的内置对象  11个(了解)

    pageScope   requestScope   sessionScope    applicationScope

    pageContext

    ${pageContext.request.contextPath }

    4.El调用函数(方法)

    使用步骤:

    1)引入el函数库
    <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>

    2)在jsp页面上使用el函数

    语法:${fn:函数(参数)}  返回值就是处理后的结果

    ${fn:toUpperCase("ahdkjalskhd")}

    ---->AHDKJA....

    三、jstl标签库

    JSTL(JSP Standard Tag Library,JSP标准标签库),替代jsp脚本中的逻辑代码

    1.JSTL标签的组成

    标签库功能描述

    标签库的URI

    建议前缀

    核心标签库

    http://java.sun.com/jsp/jstl/core

    c

    XML标签库

    http://java.sun.com/jsp/jstl/xml

    x

    国际化/格式化标签库

    http://java.sun.com/jsp/jstl/fmt

    fmt

    数据库标签库

    http://java.sun.com/jsp/jstl/sql

    sql

    EL函数

    http://java.sun.com/jsp/jstl/functions

    fn

    2.jstl的核心库

    开发步骤:

    1)页面引入jstl核心库<%@ taglib%>

    2)在页面使用jstl核心库标签

    jstl标签:

    <c:forEach>

    两种使用方式:

    a) items+var+varstatus

    b) begin+end+var

    <c:if>

    test属性:内部是一个boolean的判断

    <c:set>

    直接向域中设置数据

    var:域中的数据的name

    value:域中的数据的value

    scope:哪个域

  • 相关阅读:
    环境部署(八):jenkins配置邮件通知
    环境部署(七):linux下Jenkins+Git+JDK持续集成
    环境部署(六):Git关联github
    Git基础使用教程
    环境部署(五):Linux下安装Gradle
    环境部署(四):Linux下查看JDK安装路径
    从百小度看人工智能
    手游开发Android平台周边工具介绍
    移动开发工具推荐
    关于方法论的闲扯
  • 原文地址:https://www.cnblogs.com/minihouseCoder/p/5625033.html
Copyright © 2011-2022 走看看