zoukankan      html  css  js  c++  java
  • 【JAVAWEB学习笔记】18_el&jstl&javaee的开发模式

    一、EL技术

    1.EL 表达式概述

    EL(Express Lanuage)表达式可以嵌入在jsp页面内部,减少jsp脚本的编写,EL 出现的目的是要替代jsp页面中脚本的编写。

    2.EL从域中取出数据(EL最重要的作用)

    jsp脚本:<%=request.getAttribute(name)%>

    EL表达式替代上面的脚本:${requestScope.name}

    EL最主要的作用是获得四大域中的数据,格式${EL表达式}

    EL获得pageContext域中的值:${pageScope.key};

    EL获得request域中的值:${requestScope.key};

    EL获得session域中的值:${sessionScope.key};

    EL获得application域中的值:${applicationScope.key};

    EL从四个域中获得某个值${key};

    ---同样是依次从pageContext域,request域,session域,application域中 获取属性,在某个域中获取后将不在向后寻找

    1)获得普通字符串

    2)获得User对象的值

    3)获得List<User>的值

    3.EL的内置对象11个

    pageScope,requestScope,sessionScope,applicationScope

     ---- 获取JSP中域中的数据

    param,paramValues   - 接收参数.

    相当于request.getParameter()  rrquest.getParameterValues()

    header,headerValues  - 获取请求头信息

    相当于request.getHeader(name)

    initParam                   - 获取全局初始化参数

    相当于this.getServletContext().getInitParameter(name)

    cookie                      - WEB开发中cookie

    相当于request.getCookies()---cookie.getName()---cookie.getValue()

    pageContext             - WEB开发中的pageContext.

    pageContext获得其他八大对象

    ${pageContext.request.contextPath}

    相当于

    <%=pageContext.getRequest().getContextPath%>  这句代码不能实现

    获得WEB应用的名称

    4.EL执行表达式

    例如:

    ${1+1}

    ${empty user}

    ${user==null?true:false}

    二、JSTL技术

    1.JSTL概述

    JSTL(JSP Standard Tag Library),JSP标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能。jstl出现的目的同el一样也是要代替jsp页面中的脚本代码。JSTL标准标准标签库有5个子库,但随着发展,目前常使用的是他的核心库

    标签库

    标签库的URI

    前缀

    ★Core

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

    c

    I18N

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

    fmt

    SQL

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

    sql

    XML

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

    x

    Functions

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

    fn

    2.JSTL下载与导入

    JSTL下载:

    从Apache的网站下载JSTL的JAR包。进入          “http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/”网址下载      JSTL的安装包。jakarta-taglibs-standard-1.1.2.zip,然后将下载好的JSTL安装包   进行解压,此时,在lib目录下可以看到两个JAR文件,分别为jstl.jar和standard.jar。  其中,jstl.jar文件包含JSTL规范中定义的接口和相关类,standard.jar文件包含用于    实现JSTL的.class文件以及JSTL中5个标签库描述符文件(TLD)

    将两个jar包导入我们工程的lib中

    使用jsp的taglib指令导入核心标签库

    3.JSTL核心库的常用标签

    1)<c:if test=””>标签

    其中test是返回boolean的条件

    2)<c:forEach>标签

    使用方式有两种组合形式:

    示例:

    1)遍历List<String>的值

    2)遍历List<User>的值

    3)遍历Map<String,String>的值

    4)遍历Map<String,User>的值

    5)遍历Map<User,Map<String,User>>的值

    entry.key-----User

    entry.value------List<String,User>

    <h1>取出strList的数据</h1>

    <c:forEach items="${strList }" var="str">

      ${str }<br/>

    </c:forEach>

     

    <h1>取出userList的数据</h1>

    <c:forEach items="${userList}" var="user">

      user的name:${user.name }------user的password:${user.password }<br/>

    </c:forEach>

     

    <h1>取出strMap的数据</h1>

    <c:forEach items="${strMap }" var="entry">

      ${entry.key }====${entry.value }<br/>

    </c:forEach>

     

    <h1>取出userMap的数据</h1>

    <c:forEach items="${userMap }" var="entry">

      ${entry.key }:${entry.value.name }--${entry.value.password }<br/>

    </c:forEach>

    三、javaEE的开发模式

    1.什么是模式

    模式在开发过程中总结出的“套路”,总结出的一套约定俗成的设计模式

    2.javaEE经历的模式

    model1模式:

    技术组成:jsp+javaBean

    model1的弊端:随着业务复杂性 导致jsp页面比较混乱

    model2模式

    技术组成:jsp+servlet+javaBean

    model2的优点:开发中 使用各个技术擅长的方面

    servlet:擅长处理java业务代码

    jsp:擅长页面的现实

    MVC:---- web开发的设计模式

    M:Model---模型 javaBean:封装数据

    V:View-----视图 jsp:单纯进行页面的显示

    C:Controller----控制器 Servelt:获取数据--对数据进行封装--传递数据--     指派显示的jsp页面

    3.javaEE的三层架构

    服务器开发时 分为三层

    web层:与客户端交互

    service层:复杂业务处理

    dao层:与数据库进行交互

    开发实践时 三层架构通过包结构体现

    MVC与三层架构有什么关系?

    总结:

    EL表达式

    从域中取出数据 ${域中存储的数据的name}

    ${pageContext.request.contextPath}

    JSTL标签(核心库)

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

    <c:if test=””>

    <c:forEach items=”数组或集合” var=”数组或集合中的每一个元素”>

    javaEE三层架构+MVC

    web层:收集页面数据,封装数据,传递数据,指定响应jsp页面

    service层:逻辑业务代码的编写

    dao层:数据库的访问代码的编写

    附图:

    javaEE三层架构

    显示商品列表

  • 相关阅读:
    Android开发历程_8(Tween Animation的2种属性设置方法)
    Kinect+OpenNI学习笔记之1(开发环境的建立)
    Android开发历程_12(Handler的使用)
    Qt学习之路_11(简易多文档编辑器)
    特征点检测学习_1(sift算法)
    Android开发历程_9(Frame Animation的使用)
    Qt学习之路_13(简易俄罗斯方块)
    总结系列_12(XML使用总结,续...)
    Android开发历程_11(AnimationListener的使用方法)
    Android开发历程_18(XML文件解析)
  • 原文地址:https://www.cnblogs.com/xieyupeng/p/6873967.html
Copyright © 2011-2022 走看看