• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
珍珠奶茶不加糖
博客园    首页    新随笔    联系   管理    订阅  订阅
JavaWeb之JSP

JSP基础

JSP基础

什么是JSP

  • JavaServerPage
  • Java服务页
  • 本质上JSP是一个Servlet,但在使用中,更像是HTML
  • 作用:
    • 可以在页面中添加Java代码
    • 所以,JSP更适合编写服务器端运行的界面

JSP基础

    • 在JSP页中,可以有两种方式对代码的注释
      • html注释
        • 通过浏览器查看源码可以看到
      • JSP注释
        • <%%>
        • 通过源码不可看到
    • JSP操作方式
      • 在HTML中插入Java代码(脚本元素)
      • 有三种方式操作JSP脚本
        • 声明
<%@ page import="static java.lang.System.out" %><%----%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  <h1>这是第一个JSP界面</h1>
  <%!
  Integer i = 9;
  public Integer testJsp(){
    Integer a = 3;
    return a+i;
  }
  public void see(){
    out.println(testJsp());
  }
  %>

 

        • 表达式
<%@ page import="static java.lang.System.out" %><%----%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  <h1>这是第一个JSP界面</h1>
  <%!
  Integer i = 9;
  public Integer testJsp(){
    Integer a = 3;
    return a+i;
  }
  %>
  <form>
      <input type="text" name="注意下面" value="注意下面">
    <input type="text" value="<%=i%>"><br>
    <input type="text" value="<%=testJsp()%>"><br>
  </form>>
  </body>
</html>

 

        • 代码段
<%
    for (int i = 0;i<100;i++){
      out.print("<button>按钮</button>");
    }
  %>

 

Properties操作

  • 在Java语言中提供了一个访问资源文件的工具类
  • 称为Properties,该类可以实现程序运行时刻加载外部文件数据的功能
  • 如果是在Web资源中加载properties文件,不能使用load(new FileInputStream("文件")),因为这种方式从Java项目目录下找properties文件
  • 应该使用下面的方式
    • 类实例:getClassLoad().getResourceAsStream("web资源下的properties文件")
    • 这种方式是在Web资源中加载properties文件而不是从Java目录下加载

JSP指令

  • 配制指令
    • 通过page指令,来设置JSP页面的属性
    • page指令格式
      • <%@  属性名称-=属性值%>
      • page指令共有十一个属性
        • info -- 当前页面的描述
        • language -- 当前页面使用语言
        • ContextType = "text/html;charset=UTF-8" -- 可以设置当前页面的类型与所使用的字符集
        • extends -- 父类
        • import -- 导入工具包
        • session--指定当前页面是否支持session对象
        • buffer -- 设置页面缓冲区大小,默认是8KB
        • autoFlush -- 设置页面缓冲区是否自动刷新,默认是true
        • isThreadSafe -- 是否是线程安全的,默认是线程不安全的
        • isErrorPage -- 设置当前页面是否为错误页,默认是true
        • isELIgnored -- 当前页面是否支持ELI表达式,默认true
        • errorPage -- 指定错误页
  • include指令
    • 此指令是用来包含其他页面的
  • taglib指令
    • 此指令是用来包含(导入)标签指令库

JSP内置对象

  • 内置对象也被称为隐藏对象
  • 内置对象就是不用定义,可以直接使用的对象
  • 内置对象
    • out
    • request
    • response
    • session
    • application
    • page
    • pageContext -- 页面上下文对象,生命周期是一个页面,主要是用来获取内置对象
    • exeception
    • config

JSP的作用域对象

  • 什么是作用域
    • JSP对象可以活动的区域,称为"作用域"
  • JSP的作用域对象
    • page -- 当前页
    • request -- 当前次的请求
      • getParameter()和set/getAttribute()区别
        • getParameter -- 如果数据来源于请求体
        • set/getAttribute -- 如果数据来源与非标单或请求体
    • session -- 当前次会话
    • application -- 当前应用
      • 需要注意的是,在使用有作用域对象存储数据时,一定要确定数据的有效范围,来决定使用哪一个作用域对象进行操作

EL表达式

  • 什么是EL表达式
    • EL:expression   language
    • 作用:在JSP中通过一个简单的表达式来操作各个作用域对象的数据
  • EL表达式的格式
    • $(表达式)
    • 语义
      • 从当前page作用域开始查询对象,如果没有找到数据,再依次到request、session、application作用域中进行查找,如果都找不到,返回NULL
    • 在使用EL表达式时的两种方式
      • ${访问的的属性名称}
        • 需要逐级查找。从各个作用域中进行查找指定属性,如果没找到,返回NULL
        • 如果同一属性出现在不同作用域,那么,取最小作用域中的属性
      • ${作用域对象.属性名称}
        • 不需要逐级查找,直接定位到指定的作用域对象中查找,如果没找到,则返回NULL
    • 访问属性成员操作符
      •   .  
        • 对象.属性
      • []
        • 对象[属性]
        • 如果属性名称含有特殊符号,可以使用[]进行访问
      • 集合/数组
        • [对象.get(索引)]
        • [对象[索引]]
        • 在使用.操作符时,有时候无法正常识别属性名称,需要改用[属性名称]进行调用。在使用EL操作复杂数据结构时,可以尝试Java的方式进行调用
    • EL表达式语法
      • 算数运算符
      • 逻辑运算符
      • 条件运算符
      • 其他运算符
        • 三目运算符
        • empty
        • ...等
  • EL表达式中的对象
    • pageContext
    • pageScope
    • requestScope
    • sessionScope
    • applicationScope
    • param
    • paramValues
    • header
    • headerValues
    • cookie
    • initparam

JSTL

  • 什么是JSTL(我喜欢叫他。。。。就是偷懒【手动滑稽】)
    • JSTL是标准的标记库
      • Java   server   page   standard   tag   library
      • 简单来说:就是在JSP页面提供一个类似于HTML的标签,但是功能更强大,Tomcat处理标签时,可以转换为Java代码,这样在JSP页面可以不需要写Java代码
  • JSTL标记库的结构
    • 核心标签库
      • C(http://java.sun.com/jsp/jstl/core)库
    • 格式化标签库
      • fmt库
    • sql标签库
      • sql库
      • 操作SQL
    • XML标签库
      • xml库
      • 操作xml
    • 函数标签库
      • fn库
      • 提供了一些功能函数,直接调用即可
  • 如何使用JSTL
    • 在JS中使用JSTL库是需要<%@taglib%>导入的
      • 两个必须操作的属性
        • prefix
          • 当前库的前缀
          • 访问库标签时,需要使用前缀调用
        • url
          • 库地址
          • 根据地质找到库,然后可以使用这个库中的标签
      • <%@taglib   prefix="c"   url="http://java.sun.com/jsp/jstl/core" %>
    • JSTL常用的标记
      • 核心标签库
        • <'c:out'>
          • 此标签是用于输出,向页面输出数据
          • 格式:<'c:out value="" default=""escapeXml=""'>
          • value:向页面输出数据
          • default:如果value属性中没有数据,name默认输出此属性中的数据
          • escapeXml:是某解析显示数据中的标签,默认是false
        • <'c:set'>
          • 此标签主要是用来定义变量和对象
            • 类似使用<%定义变量和对象%>
            • 格式:<'c:set var=""scopr=""target=""property=""'>
            • var:变量名称或者对象的名称
            • value:变量值
            • scope:变量或对象的作用域
            • target:目标对象
            • property:目标对象下的属性
        • c:if
          • 称为单分支
          • 类似于Java中的if语句
          • 格式:<'c:if test=""var=""scope=""'>
          • test:判断表法师,最终属性要一个boolean值
          • var:为test最终的结果定义一个变量
          • scope:将var变量存放到哪个作用域下
        • 这里没写完
        • <'c:choose'>
          • 称为多分支
          • 结合<'c:when'>,<'c:otherwise'>使用
          • 格式<'c:choose'><'c:when test="<'boolean'>"'><'/c:choose'>
        • 这里也没写完
        • c:coreach
          • 循环本身
            • 类似于Java中的for循环
          • 迭代集合
      • 格式化标签库
        • 对各种数据进行格式化
          • fmt -- 格式化时间
      • 函数标签库
        • 与Java中的String类提供的方法类似
        • 在JSTL标签库中,只有函数标签库不能单独使用,必须在EL表达式中使用

Servlet与JSP通讯

  • Servlet作用
    • Servlet称为"控制器"
    • 主要作用是用来处理用户的请求与响应
  • JSP作用
    • JSP称为"视图"
    • 主要的作用是将后端处理的数据显示到页面中
如有问题,请发送邮件至buxiaqingcheng@163.com或者buxiaqingcheng@dingtalk.com
posted on 2020-09-25 16:41  珍珠奶茶不加糖  阅读(204)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3