• 初识JSP知识


    一、jsp概述
      JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。
      JSP实际上就是Servlet。

      jsp = html + java

      html:静态内容
      servlet:服务器端的小应用程序。适合编写java逻辑代码。
      jsp:适合编写输出动态内容,但不适合编写java逻辑。

    二、jsp的原理
      jsp页面通过服务器的翻译 ---〉变成java文件通过编译 ---〉变成class文件用来执行
        jsp文件是用来做显示模块,加上少量的逻辑运算代码。
        servlet文件就是用来进行做控制器 : 获取表单数据:调用业务逻辑:分发转向

    四、jsp的基本语法
      1、JSP模版元素
        网页的静态内容。如:html标签和文本。
      2、JSP的脚本
        2.1、小脚本 <% java代码 %>
        2.1、表达式 <%= 2+3 %> 等价于out.print(2+3);

        2.3、声明 <%! %> 表示在类中定义全局成员,和静态块。
      3、JSP注释
        JSP注释:<%-- 被注释的内容 --%> 特点:安全,省流量
        网页注释:<!-- 网页注释 --> 特点:不安全,费流量

    五、jsp的3个指令
      语法:<%@ %>

      1、page:
        作用:用于定义JSP页面的各种属性

        1.1、 import 和java代码中的import是一样的
          <%@ page import="java.util.Date,java.util.List"%>
        1.2、 session: 是否会自动创建session对象。默认值是true;
        1.3、 buffer: 设置输出流缓冲大小,默认为 8 kb。
        1.4、 errorPage: 如果页面中有错误,则跳转到指定的资源。
        1.5、 isErrorPage: 是否创建throwable对象。默认是false;
        1.6、 contextType: 等同于response.setContextType("text/html;charset=utf-8");
        1.7、 pageEncoding: 告诉JSP引擎要翻译的文件使用的编码。
        1.8、 isELIgnored: 是否屏蔽支持EL表达式。 默认是false
          <%@ page pageEncoding="gbk" %>

      2、include:
        静态包含:把其它资源包含到当前页面中。
          <%@ include file="/include/header.jsp" %>
        动态包含:
          <jsp:include page="/include/header.jsp"></jsp:include>

        两者的区别:翻译的时间段不同
          前者:在翻译时就把两个文件合并
          后者:不会合并文件,当代码执行到include时,才包含另一个文件的内容。

        原则:能用静的就不用动的。

      3、taglib
        作用:在JSP页面中导入JSTL标签库。替换jsp中的java代码片段。
          <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

    六、jsp的6个动作
      使用标签的形式来表示一段java代码。
        如: <jsp:include page="2.jsp"></jsp:include>
      <jsp:include > 动态包含
      <jsp:forward> 请求转发
      <jsp:param> 设置请求参数

      <jsp:useBean> 创建一个对象
      <jsp:setProperty> 给指定的对象属性赋值
      <jsp:getProperty> 取出指定对象的属性值

    七、jsp的9个内置对象: pageContext,request,session,application(ServletContext),

                response,exception,page,out,config.
      pageContext:
        1、 可以操作其他三个域对象(本身是代表页面的域对象)。
          findAttribute(String name); 自动从page request session application依次查找,找到了就取值,结束查找。
        2、它可以创建其它的8个隐式对象
          在普通类中可以通过PageContext获取其他JSP隐式对象。自定义标签时就使用。
        3、提供了的简易方法
          pageContext.forward("2.jsp");
          pageContext.include("2.jsp");

    八、四大域对象
      pageContext: 代表页面的域对象。
      request: 代表一次请求的域对象。
      session: 代表一次会话的域对象。
      ServletContext: 代表一个程序(应用)的域对象。

    九、EL表达式
      1、EL概述和基本语法
        EL表达式:expression language 表达式语言
        要简化jsp中java代码开发。
        它不是一种开发语言,是jsp中获取数据的一种规范
          如:${ }:调用 pagecontext 的 findAttribute方法。

      2、EL的具体功能
        a、获取数据
          EL表达式只能获取存在4个作用域中的数据
          ${u} 原理: pageContext.findAttribute("u");
          url?name=tom ${param.name}

          EL获取对于null这样的数据,在页面中表现为空字符串

          ${u.name} == u.getName()方法
            点(.) 运算符相当于调了getter方法,点后页面跟的是属性名。

          属性导航:${u.address.city}
          另外:[] 运算符作用与点运算符左右大。

        b、运算
          empty ${empty m} ${not empty m}
            判断null,空字符串和没有元素的集合(即使集合对象本身不为null)都返回true

          三元运算符
            ${empty m? 为空 :不为空}

    c、11个隐式对象
      EL隐式对象引用名称 类型 JSP内置对象名称 说明
      pageContext
      pageScope
      requestScope
      sessionScope
      applicationScope
      param
      paramValues
      header
      headerValues
      initParam
      cookie

    十、JSTL
      1、什么是JSTL
        JSTL(JavaServerPages Standard Tag Library)JSP标准标签库
      2、JSTL的作用
        使用JSTL实现JSP页面中逻辑处理。如判断、循环等。
      3、使用JSTL
        1)在JSP页面添加taglib指令
          <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
        2)使用JSTL标签
          <c:if test="${empty bookcart }"></c:if>
      4、常用标签介绍
        核心标签库:
          > 通用标签: set、 out、 remove
            <c:out value="${bc.value.bookName }"/>
          > 条件标签:if choose
            <c:if test="${empty bookcart }"></c:if>
          > 迭带标签:foreach
            <c:forEach items="${bookcart }" var="bc"></c:forEach>

  • 相关阅读:
    86. Partition List
    2. Add Two Numbers
    55. Jump Game
    70. Climbing Stairs
    53. Maximum Subarray
    64. Minimum Path Sum
    122. Best Time to Buy and Sell Stock II
    以场景为中心的产品设计方法
    那些产品经理犯过最大的错
    Axure教程:如何使用动态面板?动态面板功能详解
  • 原文地址:https://www.cnblogs.com/soficircle/p/6914415.html
Copyright © 2020-2023  润新知