软工实习(四)jsp基础

本文详细介绍了JSP的基础知识,包括它如何作为servlet工作,以及如何通过servlet进行页面渲染的缺点。接着,文章探讨了JSP语法,如脚本、声明和表达式,以及各种指令的作用,如page、include和taglib。EL表达式的使用和运算符也被提及。此外,文章重点介绍了JSTL标签的优势,并指导如何导入和使用它们,以及在实际应用中遇到的问题和解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引入

jsp本质上是一个servlet,在运行过程中,会将jsp相关的内容转换成servlet代码(response.getWriter.write(xxx);),可以连接浏览器接受数据并作出响应,可以代替HTML做出页面的渲染。但是在编写的时候是按照HTML风格进行编写的。既可以包含HTML代码,也可以包含java代码。

只用servlet进行页面渲染

首先我们明确一下具体关系
在这里插入图片描述
浏览器向servlet发送请求,servlet通过jdbc向数据库发送请求并得到数据库响应的数据,这些数据存储在一个对象中,servlet解析这个对象的内容,再对浏览器进行响应

使用servlet可以做出html的效果,像这样
在这里插入图片描述
这样非常费力不讨好
在这里插入图片描述
而html又无法遍历列表,于是就有了jsp

jsp语法
  • jsp脚本
  1. jsp脚本格式:<% java代码 %>
    我们可以在当前<% %>中定义局部变量或者调用方法,但不能定义方法,也不能声明成员变量

  2. jsp声明格式:<%! java代码 %>
    我们可以在<%! %>中声明方法,属性,成员变量,但是不能调用方法

    成员变量和局部变量的区别:成员变量写在类中,局部变量写在方法中,第二种格式我理解的是起了一个类的作用,而第一种格式就是在调用这个类的方法和成员变量

  3. jsp脚本表达式:<%= java代码 %>
    用于将已经声明的变量或者表达式输出到网页上面

  4. jsp注释:<%-- 注释 --%>

  • jsp指令
    <%@ 指令名称 属性1=“属性值1” 属性2=“属性值2” … %>
    在这里插入图片描述
    作用:
    可以大大减少代码量,只需要设置简单的指令,就可以将java代码进行翻译的指令会翻译成大段大段的java代码来执行
  1. page指令
    作用:限制jsp的格式
    (1)pageEncoding:指令页面编码格式,相当于response.setCharacterEncoding(“utf-8”);
    (2)contentType:客户端浏览器根据该属性判断文档类型,相当于response.setContentType(“text/html;charset=utf-8”);
    (3)language:指明解释该JSP文件时采用的语言,默认为java
    (4)import:导包
    在这里插入图片描述

  2. include指令
    作用:引入页面,有一些需要重复使用的代码,例如导航栏,就可以单独抽成一个文件,然后使每个文件都include这个文件
    <%@ include file=“需要引入文件的地址” %>

  3. taglib指令
    作用:专门负责引入标签库,类比于java引入jar包
    格式:<%@ taglib prefix="" uri="" %>
    prefix : 定义引入标签的前缀
    uri : 引用哪个标签库,可以理解为java中的import

EL表达式

作用:通过${key }获取域对象中的数据

  • 不同类型获取数据
    (1)String
    在这里插入图片描述在这里插入图片描述
    (2)list

在这里插入图片描述
在这里插入图片描述

(3)javaBean
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 一些运算符
    (1)算术运算符:+ - * /或者div %或者mod
    (2)关系运算符:== 或者 eq , != 或者 ne , < 或者 lt , > 或者 gt ,<= 或者 le ,>= 或者 ge
    (3)逻辑运算符:&& 或者 and ,|| 或者 or ,! 或者 not
    (4)判空:empty
JSTL标签

作用:简化jsp代码

  • 使用jstl标签
    (1)导入jar包
    在这里插入图片描述
    (2)JSP页面使用taglib指令导入对应的标签库,针对该JSP页面就可以使用JSTL标签,相当于导入jar包
    ①<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
    ②prefix : 定义引入标签的前缀
    ③uri : 应用哪个标签库,相当于java中的import
    在这里插入图片描述
    (3)常用标签(这里的c就是taglib指令里prefox的c)
    ①<c:if>
    在这里插入图片描述在这里插入图片描述
    如果test=""中的条件成立,则执行标签中内容

②<c:forEach>
在这里插入图片描述在这里插入图片描述
这里的var有点像局部变量那种意思,这个例子中第一次遍历p指的是p对象,第二次遍历p指的是p2

遇到的问题

在导入jstl时出错
在这里插入图片描述

解决办法:将standard.jar解压,把里面的.tld文件放入WEB-INF目录下
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值