zoukankan      html  css  js  c++  java
  • Jsp生命周期、Jsp的使用、JSP隐式对象、EL表达式、JSTL

    jsp


    JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束
    JSP 网页几乎可以被当成一个普通的 Servlet 

    JSP 生命周期

    编译阶段:servlet容器编译servlet源文件,生成servlet类,并编译该类
    初始化阶段:加载与JSP对应的servlet类,创建其实例,并调用它的初始化方法
    执行阶段:调用与JSP对应的servlet实例的服务方法
    销毁阶段:调用与JSP对应的servlet实例的销毁方法,然后销毁servlet实例

    语法格式:<% 代码片段 %> <%= 表达式 %>

    <% 代码片段 %>,或编写与其等价的XML语句:<jsp:scriptlet>代码片段</jsp:scriptlet>
    任何文本、HTML标签、JSP元素必须写在脚本程序的外面。

    中文编码问题

    如果我们要在页面正常显示中文,我们需要在 JSP 文件头部添加以下代码
    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

    JSP声明

    <%! declaration; [ declaration; ]+ ... %>
    例如:
    <%! int i = 0; %> 
    <%! int a, b, c; %> 
    <%! Circle a = new Circle(2.0); %> 
    或者编写与其等价的XML语句:
    <jsp:declaration>
       代码片段
    </jsp:declaration>

    JSP表达式

    <%= 表达式 %>
    表达式先被转化成String,然后插入到表达式出现的地方
    表达式元素中可以包含任何符合Java语言规范的表达式,但是不能使用分号来结束表达式

    JSP注释

    <%-- 注释 --%>    JSP注释,注释内容不会被发送至浏览器甚至不会被编译
    //        单行注释
    /*
    *        多行注释
    */
    <!-- 注释 -->    HTML注释,通过浏览器查看网页源代码时可以看见注释内容

    JSP指令

    <%@ page ... %>    定义页面的依赖属性,比如脚本语言、error页面、缓存需求、导入包等等
    <%@ include ... %>    包含其他文件
    <%@ taglib ... %>    引入标签库的定义,可以是自定义标签

    JSP隐式对象

    request        HttpServletRequest类的实例
    response    HttpServletResponse类的实例
    out        PrintWriter类的实例,用于把结果输出至网页上
    session        HttpSession类的实例
    application    ServletContext类的实例,与应用上下文有关
    config        ServletConfig类的实例
    pageContext    PageContext类的实例,提供对JSP页面所有对象以及命名空间的访问
    page        类似于Java类中的this关键字
    Exception    Exception类的对象,代表发生错误的JSP页面中对应的异常对象

    JSP 字面量

    JSP语言定义了以下几个字面量:
    布尔值(boolean):true 和 false;
    整型(int):    与 Java 中的一样;
    浮点型(float):    与 Java 中的一样;
    字符串(string):以单引号或双引号开始和结束;
    Null:    null。


    EL表达式

    EL表达式可以从pageContext,request,session,application四个作用域中取到值
    如果4个作用域都有name属性,EL会按照从高到低的优先级顺序获取:
    pageContext>request>session>application

    输出name的值:${name},值后后面一定注意不要有空格,例如:“${name} ”不等于“${name}”

    一般获取Bean层Hero类的hero对象name属性,需要hero.getName
    用EL表达式写法:$(hero.name)

    获取url传递过来的参数:http://127.0.0.1/jstl.jsp?name=abc
    用EL表达式写法:${param.name}

    条件判断
    eq相等 ne、neq不相等,
    gt大于, lt小于
    gt大于, lt小于
    gte、ge大于等于 
    lte、le 小于等于 
    not非 mod求模 
    is [not] div by是否能被某数整除 
    is [not] even是否为偶数 
    is [not] odd是否为奇
    例子:
    ${killNumber ge 10? "超神":"还没超神" }杀人数是否大于等于10


    JSTL 

    JSP Standard Tag Library 标准标签库 
    需要两个jar包,分别是jstl.jar 和standard.jar

    作用域可以是pageContext, request, session, application

    在jsp页面中使用JSTL需要在通过指令进行设置
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

    输出值
    <c:out value="${name}" />  相当于 <%=request.getAttribute("name")%>

    forEach循环:
    方式一:
    <c:forEach var="i" begin="1" end="10" step="1">  
        <c:out value="${i}" /> 
    </c:forEach>
    step每次自增数值,相对于java的for(int i=1;i<=10;i++){}

    方式二:
    <c:forEach items="${heros}" var="hero" varStatus="st"  >
        <tr>
            <td><c:out value="${st.count}" /></td>
            <td><c:out value="${hero}" /></td>
        </tr>
    </c:forEach>

  • 相关阅读:
    ssh登录
    wireless tools的使用
    Ubuntu中的minicom
    ubuntu 下交叉编译环境的搭建
    两个队列实现一个栈
    二叉树节点的插入
    二叉树的非递归遍历
    acwing 66. 两个链表的第一个公共结点
    acwing 60. 礼物的最大价值
    acwing 55. 连续子数组的最大和
  • 原文地址:https://www.cnblogs.com/snzd9958/p/10098981.html
Copyright © 2011-2022 走看看