zoukankan      html  css  js  c++  java
  • jsp(3,6,9) EL表达式及JSTL

    1. jsp

    1.1jsp是什么

    全称: Java Server Pages,java服务器页面。和Servlet一样,是sun公司定义的一种动态网页开发技术。
        特点:基于html模版,可以在html模版嵌入java代码和jsp中的标签。
    备注:html静态页面。
         CSS:修饰美化html页面。
         JavaScript:动态修改html页面和css样式。
         Servlet:运行在服务器上的java程序。适合编写java代码,写网页困难
         jsp:适合编写动态内容,不适合写java代码,主要用于显示页面

    1.2 为什么要用jsp

        2.1 jsp性能好,可以在html页面中动态嵌入元素
        2.2  服务器调用的是已经编译好的JSP文件
        2.3 JSP基于Java Servlet Api,有很多强大企业的支持。
        2.4 JSP可以与处理业务逻辑的Servlet一起使用,该模式被Java Servlet模版引擎所支持。

    1.3 JSP的优势

       3.1 与纯 Servlet 相比:JSP可以很方便的编写或者修改HTML网页而不用去面对大量的println语句
        3.2 与JavaScript相比:虽然JavaScript可以在客户端动态生成HTML,但是很难与服务器交互,因此不能提供复杂的服务,比如访问数据库和图像处理等等。
        3.3 与静态HTML相比:静态HTML不包含动态信息

    1.4jsp的语法

    1.4.1 jsp的语法格式

    1.4.2 jsp注释

    1.4.3 代码演示

    1.5  jsp指令

    告诉jsp引擎如何jsp文件中的内容

    语法:<%@指令名称1="属性值" 属性名称2="属性值2"%>

    示例:<%@page language="java" contentType="text/html";

    charset=UTF-8" pageEncoding="UTF-8"%>

    1.5.1 page指令

    import和java 代码的含义一样

    <%@ pageimport="java.util.Date.java.Util.List"%>

    或者:

    <% pageimport="java.util.Date"%>

    <%pageimport="java.util.List"%>

    session:是否会自动创建session对象,默认值为true;

    buffer:jsp中有Java.servlet.jsp.JspWriter输出字符流。设置输出数据的缓存大小。默认8kb.

    errorPage:如果页面有错误,跳转到指定的资源 errorPage="/uri"如果写"/"则代表当前目录下,

    绝对路径。如果不写"/"则代表相对路径。

    isErrorPage:是否创建throwable对象。默认是false

    contentType:等同于response.setContentType("text-html",chartset=utf-8)服务器发送客户端的内容编码

    pageEncoding:js文件本身的代码。

    isELIgnored: 是否支持EL表达式。 默认是false,支持表达式, 是true,不支持表达式,${1+1};false输出结果2   true按照原样输出 

    1.5.2 include指令

    include指令

         静态包含:把其他资源包含到当前页面中<%@ include file="header.jsp%>

         动态包含:<jsp:include page="header.jsp"></jsp:include>

      两者的区别:翻译的时间段不同(可在tomcat工作目录下查看)

         静态包含:在翻译时就把两个文件进行合并

          动态包含:不会合并文件,当代码执行到include时,才会包含另一个文件的内容

    1.5.3 taglib指令

    作用:在jsp页面中导入JSTL标签库。替换jsp中的Java代码

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

    1.6 jsp的6个动作

    jsp:include 动态包含

    jsp:forward请求转发

    jsp:param 请求设置参数

    jsp:useBean创建一个对象

    jsp:setProperty给指定的对象属性赋值

    jsp:getProperty取出指定的对象属值

    1.7 内置对象

            对象名         类型     说明
    request javax.servlet.http.HttpServletRequest  
    response javax.servlet.http.httpServletResponse  
    session javax.servlet.http.httpSession 由session=“true"开关
    application javax.servlet.ServletContext  
    exception java.lang.Throwable 由isErrorPage="false"开关
    page java.lang.Object当前对象是this 当前servlet实例
    config java.servlet.ServletConfig  
    pagecontext javax.servlet.jsp.jspWriter  
    out javax.servlet.jsp.PageContext javax.servlet.jsp.jspWriter

    代码演示:

    1.8 pageContext对象

    1.8.1 域对象

    可以操作其他三个域对象(request,session,application)

    1.8.2 它可以创建其它的8个隐式对象

    在普通类中可以通过PageContext获取其它JSP隐形对象,具体如下:

               getException方法返回exception隐形对象

               getPage方法返回page隐形对象

               getRequest方法返回的是request隐式对象

               getServletConfig方法返回的是config隐式对象

               getResponse方法返回的是response隐式对象

               getServletContext方法返回application隐式对象

               getSession方法返回session隐式对象

               getOut方法返回out隐式对象

    1.8.3 提供简易方法

              pageContext.forward("2.jsp");

              pageContext.include("2.jsp");

    2. EL表达式

    2.1 EL概述和基本的语法

        EL表达式:expression language表达式语言

         目的:简化jsp中java代码的开发

         它不是一种开发语言而是jsp中获取数据的一种规范

         格式如:${EL表达式}等价于findAttribute(name)

    2.2 EL的具体功能

        获取实体类中的属性值

        

    2.3 使用list和map

    2.4使用EL表达式的empty关键

    3. JSTL

    3.1 什么是JSTL

    JSL:全称javaServletPage standard  TagLibrary,jsp标准标签库

    3.2jstl的作用

    实现jsp页面中的逻辑处理。

    3.3 使用jstl

    必须在jsp页面添加tablib指令库

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

    3.4常用标签的使用

    3.4.1 通用标签 set ,out, remove

    3.4.2 条件标签if,choose

    <c:if> &gt

    <c:choose>&gt

    3.4.3迭代标签foreach

    for 基础遍历

    foreach遍历

    扩展:


     改变编码格式

    点击window---选择preferences

     

  • 相关阅读:
    临时记事本
    D版??班得瑞英文天籁CD13集(下载!!!)
    一个程序员的早上
    使用C#实现Morse码的输出
    面向对象编程的乐趣(TextBox.Text="")
    如何从MS Word的表格中提取指定单元格的数据
    使用Turbo C创建自己的软件包(即创建接口)
    使用C#读取Word表格数据
    一种光栅绘制直线的方法
    关于数据库设计的一个思索这样做是不好的
  • 原文地址:https://www.cnblogs.com/wanghuaying/p/9568306.html
Copyright © 2011-2022 走看看