Jsp页面

简介: Jsp页面

一、Jsp

JSP(Java Server Pages),是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签格式为 <% %>

JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP。

JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。

JSP标签有多种功能,比如访问数据库、记录用户选择信息、访问JavaBeans组件等,还可以在不同的网页中传递控制信息和共享信息。

二、 JSTL标签

2.1JSTL是什么?

概念

JSTL(JSP Standard Tag Library)是JSP标准标签,由apache实现。是sun公司制定的,类似于HTML标签的jsp标签技术。俗称C标签。

核心标签库

2.2为什么要用JSTL?

使用了EL表达式可以简化JSP页面代码,但是如果需要进行逻辑判断、循环遍历怎么办?

JSTL就来了。

2.3怎么用?

1.导入依赖jar:jstl.jar、standrad.jar,将两个JSTL的jar包放到WebContent->WEB-INF->lib下
2.在所需的JSP页面添加taglib指令,引入JSTL中core包依赖约束
taglib指令:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

2.4通用标签:set remove out

2.4.1 out标签

  • <c:out>标签:用于将结果输出。类似于JSP中的<%= %>表达式,或者是EL表达式${} expression }。
<%--取值--%>
<c:out value="${userName}"></c:out>
  • 内部属性介绍:
  • value:设置要输出到页面的数据,要使用EL表达式
  • default:设置一个默认值,当value所设置的EL表达式的值为null时,则将default所对应的值输出到页面
  • escapeXml:设置输出到页面中的内容是否转义,默认值为true,表示转义,即原样输出;若设置为false,表示不转义,输出到页面中的内容会被浏览器解析

2.5.2 set标签

  • <c:set>标签:用于把某一个对象存在指定的域范围内,或者将某一个对象存储到Map或者JavaBean对象中。
<%--设值--%>
<c:set var="userName" value="tanghaorong" scope="session"></c:set>
  • 内部属性介绍:
  • var:设置共享数据的属性名
  • value:设置共享数据的属性值
  • scope:设置共享数据的域对象的范围,若不指定域对象的范围,则默认在pageContext域对象中共享数据,scope=“page(默认)|request|session|application”

2.5.3 remove标签

  • <c:remove>标签:相较于<c:set>,作用是移除范围域中的变量。
<%--删除userName变量--%>
<c:remove var="userName"></c:remove>
  • 内部属性介绍:
  • var:要删除的域对象中共享数据的属性名
  • scope:要删除共享数据的域对象的范围,
  • scope=“page|request|session|application”,若不指定scope,则删除所有域对象中以var的值作为属性名的数据

2.5条件标签if

2.5.1 if标签

  • <c:if>标签:和程序中的if语句作用相同,用来实现条件控制,但是没else功能。
<c:if test="testCondition" [var="varName"] [scope="{page|request|session|application}"]>
       标签体内容
</c:if>
  • 其中参数说明:
  • test属性用于存放判断的条件,一般使用EL表达式来编写。
  • var属性用来存放判断的结果,类型为true或false。
  • scopes属性用来指定var属性存放的范围。

2.5.2 <c:choose>、<c:when>和<c:otherwise>标签

  • <c:choose>、<c:when>和<c:otherwise>标签:这三个标签通常一起使用,<c:choose>标签作为<c:when>和<c:otherwise>标签的父标签来使用。类似于程序中if-else,其中<c:when>表示if,<c:otherwise>表else。
<%
    //在session中设置值
    session.setAttribute("score",50);
%>
<c:choose>
    <c:when test="${score>60}">
        <span>恭喜!及格了</span>
    </c:when>
    <c:otherwise>
        <span>不好意思!不及格</span>
    </c:otherwise>
</c:choose>

2.6迭代标签:forEach forTokens

2.6.1 forEach标签

  • <c:forEach>:相当于 for 循环。java中有增强for循环和普通for循环,JSTL 中的 <c:forEach> 也有两种用法
  • 作用:根据循环条件遍历集合中的元素
  • 属性:
  • var设定变量名用于存储从集合中取出的元素(必须无默认值)
  • items指定要遍历的集合
  • begin、and用于指定遍历的起始位置和终止位置(有默认值)
  • step指定循环的步长(有默认值)
  • varStatus通过index、count、first、last几个状态值,描述begin和end子集中的元素的状态。
  • index 下标
  • count 技术
  • first 是否是第一个
  • last 是否是最后一个
<!--1、完整语法-->
<c:forEach items="要遍历的集合对象" var="变量" varStatus="状态" begin="开始" end="结束"  step="增量">
   循环体代码…
</forEach>
<!--第一种用法:forEach增强-->
<c:forEach items="要遍历的集合对象" var="变量" >
   循环体代码…
</forEach>
<!--
  第二种用法:类似于 Java 中的普通for循环
  从0循环到10,变量名是 `i` ,每次自增1
-->
<c:forEach begin="0" end="10" step="1" var="i">
    ${i}
</c:forEach>

2.6.2 forTokens标签

  • <c:forTokens>标签:该标签用于浏览字符串,并根据指定的字符将字符串截取。
  • 语法
<c:forTokens items=”strigOfTokens” delims=”delimiters” [var=”name”] [begin=”begin”] [end=”end”] [step=”len”] [varStatus=”statusName”] >
    主体内容
</c:forTokens>

其中参数说明:

  • items指定被迭代的字符串。
  • delims指定使用的分隔符。
  • var指定用来存放遍历到的成员。
  • begin指定遍历的开始位置(int型从取值0开始)。
  • end指定遍历结束的位置(int型,默认集合中最后一个元素)。
  • step遍历的步长(大于0的整型)。
  • varStatus存放遍历到的成员的状态信息。
<c:out value="根据一个分隔符截取:"/><hr>
<c:forTokens items="123-4567-8910" delims="-" var="tel">
    <c:out value="${tel}"></c:out><br/>
</c:forTokens>
<br/><br/><br/>
<c:out value="根据多个分隔符截取:"/><hr>
<c:forTokens var="str" items="太阳、星星、月亮;地球|火星" delims="、;|">
    <c:out value="${str}"></c:out><br/>
</c:forTokens>
<br/><br/><br/>
<c:out value="输出其它属性信息:"/><br><hr>
<c:forTokens items="1*2*3*4*5*6*7"
             delims="*"
             begin="1"
             end="3"
             var="n"
             varStatus="s">
    数字 <c:out value="${n}"/> 的四种属性:<br>
    所在位置,即索引:<c:out value="${s.index}"/><br>
    总共已迭代的次数:<c:out value="${s.count}"/><br>
    是否为第一个位置:<c:out value="${s.first}"/><br>
    是否为最后一个位置:<c:out value="${s.last}"/><br>
    <hr>
</c:forTokens>

三、Jsp自定义标签

3.1标签

标记语言是一种用于描述文档结构和内容的计算机语言。常见的标记语言包括HTML、XML、Markdown,以及TeX等。

标签是标记语言中的一种基本元素,它用于指示文档中某个特定的元素或信息,例如html中的 < p >标签。

3.2Jsp自定义标签

JSP自定义标签是用户在JSP中定义的一种标记,可以用于执行一些Java代码和动态页面生成。JSP自定义标签可以将相同的任务组合成独立的模块,从而增加了JSP页面的可重用性和可维护性。

3.3标记语言的特点

1.形式 :<开始标签 属性=“属性值”>标签体</结束标签>

2.分类 :

  • 空标签 br、hr…
  • ui标签 input、table…
  • 控制标签 if、foreach…
  • 数据标签 out
目录
相关文章
|
28天前
|
自然语言处理 Java 数据库连接
掌握JSP页面编程:动态生成Web内容
【4月更文挑战第3天】Java Server Pages (JSP) 是一种用于创建动态Web内容的Java技术,它结合HTML并允许在页面中嵌入Java代码。JSP支持代码片段、表达式语言(EL)和JSTL标签库,简化动态内容生成。当服务器接收到请求时,执行JSP中的Java代码并将结果嵌入HTML返回给客户端。示例展示了如何显示当前日期和时间。JSP可与Servlet、JavaBeans、数据库等结合,用于构建功能丰富的交互式Web应用。
掌握JSP页面编程:动态生成Web内容
|
2月前
银行营业网点管理系统——修改的页面(updateBreaches.jsp)
银行营业网点管理系统——修改的页面(updateBreaches.jsp)
16 2
|
2月前
新闻发布项目——注册页面(reg.jsp)
新闻发布项目——注册页面(reg.jsp)
14 1
|
2月前
|
Java 数据库连接 mybatis
springboot访问jsp页面变成直接下载?
springboot访问jsp页面变成直接下载?
43 0
|
2月前
|
前端开发 Java
java实现动态验证码源代码——jsp页面
java实现动态验证码源代码——jsp页面
13 0
|
2月前
|
JavaScript 前端开发 Java
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Jsp页面
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Jsp页面
9 0
|
3月前
|
存储 缓存 Java
JSP页面生命周期详解及优化建议
JSP页面生命周期详解及优化建议
|
2月前
|
前端开发 Java
java通过commons-fileupload实现多张图片的上传(jsp页面)
java通过commons-fileupload实现多张图片的上传(jsp页面)
16 2
|
5月前
|
Java 应用服务中间件 容器
JSP页面请求响应过程中的编码解码
JSP页面请求响应过程中的编码解码
60 0
|
6月前
|
Java
jsp页面中显示word/excel文档方法
jsp页面中显示word/excel文档方法

相关课程

更多