JavaWeb——JSP基础语法和指令的详细使用

84 阅读2分钟

「这是我参与2022首次更文挑战的第5天,活动详情查看:2022首次更文挑战

JSP作为java技术的一种应用,他有一些自己扩充的语法,并且Java所有的语法他都支持。

1. JSP注释

<%--我是注释--%>

JSP的注释不会在客户端显示

2. JSP表达式

<%--JSP表达式:  <%= 变量或者表达式%>
作用:用来将程序的结果输出到客户端
--%>
<%= new java.util.Date()%> <%--Sun Feb 21 10:36:58 CST 2021--%>

3. JSP脚本程序

  • 脚本程序可以包含任意量的Java语句、变量、方法或表达式,只要它们在脚本语言中是有效的。

  • 任何文本、HTML标签、JSP元素必须写在脚本程序的外面。

<%--jsp脚本程序
格式 <% 代码片段 %>    
--%>
<%
  int sum = 0;
    for (int i = 0; i <50 ; i++) {
        sum+=i;
    }
    out.println("<h1>Sum="+sum+"<h1>");
%>

4. JSP脚本片段的再实现

jsp脚本代码嵌入html标签

<%--jsp脚本片段的再实现 ,jsp脚本代码嵌入html标签--%>

<%
    for (int i = 0; i < 5; i++) {
%>
    <h2>hello world ${i}> </h2>
<%
    }
%>

5. JSP声明

一个声明语句可以声明一个或多个变量、方法,供后面的Java代码使用。在JSP文件中,必须先声明这些变量和方法然后才能使用它们。

<%--
JSP声明的语法格式:
<%! declaration; [ declaration; ]+ ... %>
--%>

<%!
    static{
        System.out.println("Loading Servlet");
    }
    <%--声明变量--%>
    private int globaVar = 0;
    <%--声明方法--%>
    public void cheng(){
        System.out.println("进入了该方法");

    }
%>

JSP声明后的代码不像上面的一样在jspservice()方法内,而是直接在类下面,因此不能与客户端发生响应,但作用域更高

在这里插入图片描述

6. JSP指令

JSP指令用来设置与整个JSP页面相关的属性。

6.1 JSP指令语法格式

<%@ directive attribute="value" %>

这里有三种指令标签:

指令描述
<%@ page ... %>定义页面的依赖属性,比如脚本语言、error页面、缓存需求等等
<%@ include ... %>包含其他文件
<%@ taglib ... %>引入标签库的定义,可以是自定义标签

6.2 JSP指令实现

6.2.1 导包指令

<%@ page import="java.util.*" %>

6.2.2定制错误页面

404错误页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<img src="../img/404.jpg"  sizes="">
</body>
</html>

500错误页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<img src="../img/500.png" alt="500">
</body>
</html>

在web.xml配置文件里设置

  <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>

在jsp页面内引入

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<%@ page errorPage="error/500.jsp" %>
<html>
<head>
    <title>Title</title>
</head>
<%--定制错误页面--%>
<body>
<%
  int x = 1/0;<%--服务器内部错误--%>
%>
</body>
</html>

6.2.3 显示声明为错误页面

<%@page isErrorPage="true" %>   <%--显示声明为错误jsp页面--%>

6.2.4 包含其他页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%--方式一:用JSP指令--%>
<%@ include file="common/header.jsp"%>
<h2>网页主体</h2>
<%@ include file="common/footer.jsp"%>

<%--方式二:用JSP标签--%>
<jsp:include page="/common/header.jsp"></jsp:include>
<h2>网页主体</h2>
<jsp:include page="/common/footer.jsp"></jsp:include>
</body>
</html>

根据页面源码分析两个包含方式的区别: 在这里插入图片描述

  • @ include:将两个页面合二为一到本页面
  • jsp:include:将两个页面拼接到本页面,本质还是三个页面