JSP初学

JSP 初识

下面是学习视频↓

Servlet

真的不想写jsp 啊 真的服了,都2023年了 还有人在写jsp吗

大概内容就这些 。

JSP 是Java Server Page SUN 公司提供的动态网页编程技术,是Java Web服务端的动态资源。而HTML是静态页面,不能动态响应。

其实JSP 就是一个Servlet 当我们第一次访问JSP 的时候,Jsp 引擎都会把Jsp翻译成一个Servlet。

scriptlet

<% %> java脚本段 定义局部变量 编写语句
<%! %>  声明可以定义全局 成员变量 方法类
<%= %>:表达式,数据一个变量或具体内容

指令标签

使用包含操作,可以将一些重复的代码包含进来继续就用,从正常的页面组成来看,有时候分为几个分区,有些分区是不需要改变的,改变的就是其中一个具体内容区域。现在有两种方法可以实现上述功能。

静态包含 动态包含

<%@ include file = "要包含的文件路径" %> <!-- 相对路径 -->

解耦 我们将某些页面给抽离出来,到时候组合就行了 实际上静态包含,是将几个jsp 合并成一个。所以说变量不能重复。

动态包含  在代码的编译阶段,包含和被包含是两个部分,只有在运行的时候才会动态的包含进来

<jsp:include page = ?></jsp:include>

可以有重名变量

jsp 的四大域对象

四个属性范围

page request sessopn  application

page  只要跳转 数据就没了 

request 服务端跳转还是有效的  客户端跳转就无效

session 无论是客户端还是服务端跳转都有效 在一个浏览器里面就行

application 服务器没关就行

设置变量

请求转发

// 将数据列表存储在request对象中
        request.setAttribute("list", list);
        // 转发到jsp页面
        request.getRequestDispatcher("jobGrade.jsp").forward(request, response);

EL 表达式

EL 表达式 是为了让JSP 写起来更加简单啊 比如说 ${} 就是他的格式

一般是操作域对象的数据,而不是局部对象 域对象就是前面说的四个,pageContext request session application  范围从小到大

当你需要指定某个范围的时候 可以这样写  pageScope requestScope sessionScope applicationScope 。下面举个例子。

<% 
   pageContext.setAttribute("uname,"missay"); //page 设置
   request.setAttribute("uname,"missay");
   session.setAttribute("uname,"missay");
   application.setAttribute("uname,"missay");

% >

然后 我们可以 通过${uname} 来获取

默认获取顺序是从小到大范围来取的

el表达式获取对象值为空,默认是空字符串

empty 和 el 运算

empty 是判断所取的元素是否为空 

el 是等值运算,判断是否相等

JSTL

是jsp的标准标签库,是一个定制类标签库的集合,用于解决一些常见的问题,迭代数据,条件测试啥的。

核心标签库: 

http://java.sun.com/jsp/jstl/core

包含了Wen应用的常见工作:比如说循环 表达式赋值,基本输入输出

格式化标签库:

http://java.sun.com/jsp/jstl/fmt

用来格式化显示数据的工作:不同区域的日期格式化

如果要使用JSTL类库,必须以下格式调用taglib

<%taglib url="对应调用的库" "prefix=""%>

比如说

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

如果你是用maven  记得导入依赖, 否则自己去下载对应的jar包放在lib库下面这里就不多说了。

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version> <!-- 或者使用适合你的版本 -->
</dependency>
JSTL if 标签

语法格式

<c:if test="<条件表达式>" var<自定义变量>" scope="<string>">

</c:if>

if标签

test条件
var用于存储条件结果的变量
scopevar属性的作用域

。这个c 就是 你自己设置的prefix  

choose when otherwise

choose when 有点类似那个Switch 标签

<%
    request.setAttribute("score",80)

%>
<c:choose>
  <c:when test = "${score < 60}" >
        <P> 你知道我要说什么
   </c:when>
   
    ...


    <c:when test ="${score = 100}">
      <h1>  无敌了</h1>
    </c:when>

     // 此外 other 类似 那种 default  当没有匹配的时候 就会选择

按照c语言 标准  default 一般放在最后   这里的otherwise 也是如此 choose 标签可以没有otherwise标签 但是一定要有一个when 标签

foreach标签

用来迭代数据的  渲染表格啥的

<c :forEach begin ="" end = "" step="" var="">
</c:forEach> 
//begin end step 都可以没有啊 
//就相当于 for (auto word : words) c++ 的语法

foreach 还有一个varStatus 属性 

下面有几个 属性 index count first last 

分别表示 index : 当前这次迭代从0开始的索引 就是 当前到哪个索引了

count 就是 计数, 表示记到第几个数了 

first 就是 表示是否是第一次 

last 表示 是否是最后一次

大致先写这么多

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值