jsp于servlet的使用

文章目录

  • 介绍
  • 底层原理
  • 语法
  • 标签
    • page主标签
    • include
  • 内置对象
    • 四大作用域对象
      • application的应用场景
      • request
      • session
      • 注意
  • 动作元素
  • EL表达式
  • sevlet交互
    • 重定向
    • 请求转发
  • 获取servletContext
  • JSTL
    • if
    • forEach
    • choose
  • 通配符
  • 线程安全问题
  • 模型
    • MVC
    • 三层架构
    • 结合

介绍

jsp的底层代码也是servlet, 专注于页面的技术

底层原理

jsp于servlet的使用_第1张图片
拓展 转化的文件在work目录里面,tomcat停了他们会被销毁,当访问了,才会生成这些文件,IDEA在启动时控制台会说保存在哪里。

语法

jsp于servlet的使用_第2张图片
<%!%> 会移动到前面,是成员变量

标签

page主标签

在这里插入图片描述
页面发生错误,会向那个页面跳转。

include

在这里插入图片描述
引入静态页面html+css,相当于 引入模块。先融合jsp文件,再转换成一个java文件。

内置对象

可以直接使用,就是再底层代码中创建的对象
jsp于servlet的使用_第3张图片

jsp于servlet的使用_第4张图片

四大作用域对象

作用:存取数据
jsp于servlet的使用_第5张图片
一个页面对应一个PageContext ,作用于就是当前页。都用设置、获取、删除。
一次请求(访问一次)中都是用的同一个request
一次会话中都是用的同一个session,
建立一个会话,请求和响应可以多次。一个会话可以包括含请求
servletContext 在整个应用只有一个。

application的应用场景

  1. 全局配置信息: 您可以将应用程序的全局配置信息,如数据库连接信息、第三方 API 密钥等,存储在 application 对象中。
  2. 计数器和统计信息: 您可以使用 application 对象来存储全局的计数器、访问次数、在线用户数等统计信息。
  3. 全局缓存: 在需要共享数据的情况下,您可以使用 application 对象作为一个全局缓存,存储一些需要频繁访问的数据,以减少数据库或其他资源的访问次数。
  4. 应用程序级别的数据: 如果您需要在整个应用程序范围内共享一些数据,如全局常量、数据列表等。
  5. 数据初始化: 您可以在应用程序启动时使用 application 对象来初始化一些全局数据
  6. 共享对象实例: 您可以将某些对象实例化并存储在 application 对象中

request

  1. 传递数据
  2. 上传文件处理
  3. 处理国际化和本地化

session

  1. 购物车: 在电子商务应用中,您可以使用 session 对象来存储用户的购物车信息
  2. 用户设置和偏好: 您可以使用 session 对象来存储用户的偏好设置、主题选择等个性化信息
  3. 缓存用户数据: 对于一些频繁访问的数据,您可以将它们存储在 session 对象中
  4. 用户日志和操作记录: 您可以使用 session 对象记录用户的操作历史
  5. 单点登录(SSO): 在多个相关应用之间共享用户会话信息

注意

不能跨域取值
例如:
在request,session,ServletContext在哪里设置的值,只能在那获取。
但是 :在pageContext中可以用findAttribute(“name”)在页面上跨域取值

动作元素

include 动态引入,引入动态页面jsp 先转换->调用方法引入
在这里插入图片描述
底层转换
在这里插入图片描述

EL表达式

需要导el-api包
简化 页面去作用域取值的过程取不到就不显示。
直接${key}取值,支持基本计算,加,减,乘,除等
可以用css修改
默认是从最小的作用域开始取值:
pageContext->request->session->application
在这里插入图片描述
指定某一个域
在这里插入图片描述
另一种:key有其他奇怪的值。
在这里插入图片描述
这样取的
在这里插入图片描述

sevlet交互

WEB-INF里面的页面,只能通过下面的请求转发来获取

重定向

两次请求、地址栏会发生变化
jsp于servlet的使用_第6张图片

请求转发

多次请求,地址栏不会发生变化,是服务器内部操作

jsp于servlet的使用_第7张图片

获取servletContext

在这里插入图片描述

JSTL

JSTL英文全称是“JSP Standard Tag Library”,即JSP标准标签库之意
首先导包,这是核心库,还有其他库
jsp于servlet的使用_第8张图片

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

if

在这里插入图片描述

forEach

jsp于servlet的使用_第9张图片
varStatus 属性用于获取循环状态信息,如:varStatus.index 可以获取当前迭代的索引等
在这里插入图片描述

choose

jsp于servlet的使用_第10张图片

通配符

匹配一层

/** 多层匹配
jsp于servlet的使用_第11张图片
后缀,区分不同的请求

线程安全问题

可以将成员变量换成局部变量
因为每个请求,调用service都是各自的变量,都有不同的地址。

模型

MVC

jsp于servlet的使用_第12张图片

三层架构

web jsp servlet html
service
dao

结合

view controller service dao

你可能感兴趣的:(java,开发语言,servlet,jsp)