Java-1110

https://github.com/Lannister-never-pay/JavaWebLearning/tree/main/java1108

因为懒,还是用的1108的module

JSP

  1. 指令

    1. 作用:用于配置JSP页面,导入资源文件

    2. 格式:<%@ 指令名称 属性名1=属性值1 属性名2=属性值2 %> 多个键值对用空格隔开

    3. 分类:

      1. page :配置JSP页面

        1. contype:等同于response.setContype()
          1. 设置响应体的mime类型已经字符集
          2. 设置jsp当前页面的编码,高级开发工具可以自动读取contentType里面的编码,低级开发工具用pageEncoding
        2. language:目前只有java
        3. import:导入包,一个包一行比较好
        4. errorPage:报错后所需要跳转的错误页面
        5. isErrorPage:标识符,是否是错误页面
          1. True: 可以使用内置对象exception
          2. false:默认值,不可以使用内置对象
      2. include (基本用不到):页面包含的,导入页面的资源。(页面重复的内容可以直接引入页面)

        1. <%@include file="top.jsp"%>
          
      3. Tagline:导入资源(导包)

  2. 注释(有两种)

    1. html注释:<!-- --> 只能注释html代码段
    2. jsp注释: <%-- --%>
  3. 内置对象:jsp页面中不需要创建就可以直接用的对象,9个

    1. 对象名称真实类型作用
      pageContext:(域对象)PageContext当前页面共享数据,还可以获取其他八个对象
      request:(域对象)HttpServletRequest一次请求访问的多个资源(转发)
      session:(域对象)HttpSession一次会话的多个请求间
      application:(域对象)ServletContext所有用户间共享数据
      response:HttpServletResponse响应对象
      page:Object当前页面(servlet)的对象
      out:JspWriter输出对象,数据输出到页面上
      config:ServletConfigServlet的配置对象
      exception:Throwable异常对象

MVC开发模式

  1. jsp演变历史
    1. 早期只有servlet,只能使用response输出标签数据,非常麻烦
    2. 后来有了jsp,简化了servlet的开发,导致人们大量使用,很难维护,可读性非常差
  2. MVC:降低了耦合度
    1. M:model,模型 JavaBean
      1. 完成具体的业务操作,如数据查询,封装对象
    2. V:view,视图 Servlet
      1. 展示数据
    3. C:Controller,控制器 JSP
      1. 获取用户的输出(请求参数)
      2. 调用模型
      3. 将数据交给视图层展示
    4. 优缺点:
      1. 优点:
        1. 耦合性低,方便维护,利于分工协作
        2. 重用性高,可以同时展示给多个视图层
      2. 缺点:
        1. 使得项目架构变得复杂,对开发要求较高。

请添加图片描述

EL表达式

  1. 概念:Expression Language 表达式语言

  2. 作用:替换和简化jsp页面中java代码的编写

  3. 语法:${表达式}

  4. 注意:jsp默认支持el表达式

    1. 如何忽略表达式,原样展示:
      1. 在指令标签里面:isELIgnored = true
      2. 或者前面加个反斜杠 \
  5. 使用情景:

    1. 运算:

      1. 运算符:
        1. 算术运算符 : + - * /(div) %(mod)
        2. 比较运算符:>、 <、 >=、 <=、 !=
        3. 逻辑运算符:&&(and) ||(or) !(not)
        4. 空运算符:empty
          1. 用于判断字符串、集合、数组对象是否为null并且长度是否为0
          2. ${empty list} 如果想让这个表达式返回值为true则:list要么为null要么长度为0
    2. 获取值:

      1. el表达式只能从域对象(4个)中获取值

      2. 语法:

        1. ${域名称.键名称}:从指定域中获取指定键的值

          1. 域名称:有哪些?
            1. pageScope: --> pageContext
            2. requestScope: --> request
            3. sessionScope: --> session
            4. applicationScope: --> application(ServletContext)
          2. 举例:在reuqest域存储了name=章北海
          3. 获取:${requestScope.name}
          4. 注:如果是空字符串也不会输出none
        2. ${键名}:依次从最小的域中查找是否存在该键值对应的值,直到找到为止。

          1. page < request < session < application
        3. 获取对象、List集合、Map集合的值

          1. 直接打印的话,默认是打印该对象的toString方法,如果没有就输出其引用地址

          2. 对象:通过的是对象的属性来获取,属性就是get和set方法后面的部分小写的部分,不一定是成员变量名.

          3. List集合:${域名称.键名[索引]}

            1. 内部优化:如果数组越界,只会给出空字符串
          4. Map集合: ${域名.键名.key名称} 或者 ${域名.键名[“key名称”]}

    3. 空运算符empty

      1. ${empty list}:如果想让这个表达式返回值为true则:list要么为null要么长度为0
      2. ${not empty str}:表示判断字符串、集合、数组对象是否不为null 并且 长度 > 0
    4. 隐式对象:

      1. el表达式中不要创建直接拿来用的对象,有11个
      2. pageContext:
        1. 获取jsp其他八个内置对象

JSTL标签

  1. 概念:JavaServer pages Tag Library JSP标准标签库
    1. 是有Apache组织提供的开源的免费的jsp标签 <标签>
  2. 作用:用于简化和替换jsp页面上的java代码
  3. 使用步骤:
    1. 导入jar包:
    2. 引入标签库:taglib指令:

看了半天,跟着敲了半天感觉太枯燥了,jsp相关的东西实在是没啥用,爷不学了

三层架构

软件设计架构:

  1. 界面层(表示层):用户看到的界面。用户可以通过界面上的组件和服务器进行交互。
  2. 业务逻辑层:处理业务逻辑的。
  3. 数据访问层(持久化层):操作数据存储文件

请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值