Java-Jsp的一些语法与指令

白衣少年
2022-11-10 / 0 评论 / 58 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2022年11月10日,已超过526天没有更新,若内容或图片失效,请留言反馈。

Jsp基础语法

Jsp表达式

<%-- jsp表达式
    作用:用来将程雪输出,写到客户端
    <%= 变量名/表达式%>
--%>
<%= new java.util.Date()%>

Jsp脚本片段

<%-- jsp脚本片段 --%>
<%
    int sum=0;
    for (int i = 0; i < 10; i++) {
        sum+=i;
    }
    out.println("<h1>Sum="+sum+"</h1>");
%>
<%-- 嵌入正常的标签 --%>
<%
    int x=10;
    out.print(x);
%>
<p>这是一个jsp文档</p>
<%
    int y=20;
    out.print(20);
%>
<%-- ------------------------------------ --%>
<%-- 在代码中嵌入html元素 --%>
<%
    for (int i = 0; i < 5; i++) {
%>
<h1>HelloWorld,<%= new java.util.Date()%></h1>
<%
    }
%>

脚本片段的再实现

<%-- 在代码中嵌入html元素 --%>
<%
    for (int i = 0; i < 5; i++) {
%>
<h1>HelloWorld,<%= new java.util.Date()%></h1>
<%
    }
%>

Jsp声明

<%!
static {
    System.out.println("Loading Servlet...");
}
private int globalVar=0;
public void jspInit(){
    System.out.println("进入了初始化方法");
}
%>

Jsp声明 :这些代码会被便衣到jsp生成的类d当中,其他的会被编译到_jspService方法内部Jsp的注释,不会再客户端显示,html的注释会显示

Jsp指令

<!-- 配置错误页面 -->
<error-page>
   <error-code>404</error-code>
   <location>/error/404.jsp</location>
</error-page>
<error-page>
   <error-code>500</error-code>
   <location>/error/500.jsp</location>
</error-page>
  <!-- 导入jar包 -->
<%@ page import="java.util.Date" %>
<!-- 指定错误页面 -->
<%@ page errorPage="error/500.jsp" %>
<!-- 显示的声明这是一个错误页面 -->
<%@page isErrorPage="true" %>
<!-- 页面编码格式 -->
<%@page pageEncoding="utf-8" %>
<%-- @include会将页面整合在一起 --%>
<!-- 定义的变量会相互影响 -->
    <%@include file="common/header.jsp"%>
    <h1>网页主体</h1>
    <%@include file="common/footer.jsp"%>
<hr>
<%--  jsp标签jsp:include 是将页面拼接在一起,本质还是分开的页面  --%>
<!-- 定义的变量互不影响 -->
    <jsp:include page="/common/header.jsp"/>
    <h1>网页主体</h1>
    <jsp:include page="/common/footer.jsp"/>

Jsp标签

使用之前需要导入jar包支持

    <!-- jstl表达式的依赖 -->
    <!-- https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl-api -->
    <dependency>
        <groupId>javax.servlet.jsp.jstl</groupId>
        <artifactId>jstl-api</artifactId>
        <version>1.2</version>
    </dependency>
    <!-- standard标签库 -->
    <!-- https://mvnrepository.com/artifact/taglibs/standard -->
    <dependency>
        <groupId>taglibs</groupId>
        <artifactId>standard</artifactId>
        <version>1.1.2</version>
    </dependency>

el表达式

表达式格式:${}

1.获取数据
2.执行运算
3.获取web开发常用对象

取出值:

<h3>
    ${param.get("name1")}
    ${param.get("name2")}
</h3>

jstl标签

jstl标签库的使用就为未来弥补html标签的不足,有自定的标签,标签的功能和java代码一样

  • 核心标签(要求掌握部分

    <c:out>    用于在JSP中显示数据,就像<%= ... >
    <c:set>    用于保存数据
    <c:remove>    用于删除数据
    <c:if>    与我们在一般程序中用的if一样
    <c:choose>    本身只当做<c:when>和<c:otherwise>的父标签
    <c:when>    <c:choose>的子标签,用来判断条件是否成立
    <c:otherwise>    <c:choose>的子标签,接在<c:when>标签后,当<c:when>标签判断为false时被执行
    <c:forEach>    基础迭代标签,接受多种集合类型
    <c:url>    使用可选的查询参数来创造一个URL
  • 引入标签

    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <!-- 
      c:core
      fmt:format
      sql:sql
      x:xml
      tomcat的仓库中也需要引入standard和jstl的jar包,不然服务器无法运行
     -->

调用方法
c:if

<%@ page contenttype="text/html;charset=utf-8" language="java" %>
<%--引入jstl核心标签库,我们才能使用核心标签--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>title</title>
</head>
<body>
 <h4>if测试</h4>
 <hr>
 <form action="jstlcore1.jsp" method="get">
   <%--
     el表达式获取表单中的数据:
     ${param.参数名}
   --%>
   <input type="text" name="username" value="${param.username}">
   <input type="submit" value="登录">
 </form>
 <%--判断如果是管理员就登陆成功--%>
 <c:if test="${param.username=='admin'}" scope="page" var="isadmin">
   <c:out value="<h3>登录成功<h3>"/>
 </c:if>
 <c:out value="${isadmin}"/>
</body>
</html>

c:choose

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
  <title>Title</title>
</head>
<body>
  <c:set var="score" value="50"/>
  <c:choose>
    <c:when test="${score>=60}">
      <c:out value="成绩合格"/>
    </c:when>
    <c:otherwise>
      <c:out value="需要补考"/>
    </c:otherwise>
  </c:choose>
</body>
</html>

c:forEach

<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.Arrays" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    ArrayList<String> array=new ArrayList<>();
    array.add("h1");
    array.add("h2");
    array.add("h3");
    array.add("h4");
    request.setAttribute("list",array);
%>
<%--
    hs 储存便遍历的数据
    items 被遍历的的对象
--%>
<c:forEach var="hs" items="${list}">
    <c:out value="${hs}"/><br>
</c:forEach>
<hr>
<c:forEach var="hs" items="${list}" varStatus="">  
</c:forEach>
</body>
</html>
3

打赏

评论 (0)

OwO
取消