【学习笔记】JSP基础语法和指令

JSP基础语法和指令

写jsp代码之前,需要导入四个包

  • Servlet 依赖

  • JSP 依赖

  • JSP表达式依赖

  • standard标签库

 

基础语法

jsp表达式

语法:

<%= xxxxxxx%>

xxxxxxx 为java代码(变量或表达式),将java代码的结果输出到页面

例子:

<%--jsp表达式--%>
<%= new java.util.Date().toLocaleString()%>
<%= new String("hello,world")%>
<%=10+10%>

<%=%> 中的代码,在jsp转换的Servlet中,被转换成了out.print(xxxx)

out.print( new java.util.Date().toLocaleString());
out.print( new String("hello,world"));

 

jsp脚本片段

在jsp脚本片段中,可以写多行java代码

语法:

<%
   int a = 10;
    int b = 20;
%>

例子:

<%--jsp脚本片段--%>
<%
    int sum = 0;
    for (int i = 0; i < 100; i++) {
        sum+=i;
    }
    out.print(sum);
%>

将变量sum通过 out.print() 方法输出到前端,还可以使用 jsp表达式的方式。

<%%>中的代码,在转换成Servlet后,被原封不动的放在_jspService() 方法中

除此之外,我们还可以将html 代码嵌入到java代码中

<%--  在java代码中嵌入html--%>
<%
    for (int i = 0; i < 5; i++) {
%>
<h2>这是html</h2>
<%
    }
%>

这样就实现了遍历html标签

 

jsp声明

我们上述写的代码都是在jsp转换的Servlet类的_jspService() 方法中,除此之外,我们想要在该方法外面写代码,该如何实现呢?

语法:

<%!
    xxxxxx
%>

例子:

<%--  jsp声明--%>
<%!
    static{
        //静态代码块
        System.out.println("静态代码块");
    }
    //变量
    private int a = 100;
    //方法
    public void test(){
        System.out.println("方法");
    }
%>

在jsp转化的servlet中,<%! %> 中的内容,被放在了类里面,而不是_jspService() 方法中

image-20221020105658543

 

jsp指令

page

语法:

<%@ page ....%>

例子:

<%--定制错误页面--%>
<%@ page errorPage="error/500.jsp" %>

也就是如果该jsp发生错误,就会跳转到500.jsp

如果想要判断该错误究竟是什么错误,500或404,可以在web.xml中配置

<error-page>
    <error-code>500</error-code>
    <location>/error/500.jsp</location>
</error-page>
<error-page>
    <error-code>404</error-code>
    <location>/error/404.jsp</location>
</error-page>

page 中还有其他不常用的指令:

  • isErrorPage=”true“ 声明这是错误页面

  • pageEncoding=”utf-8“ 设置编码

 

include

语法:

<%@ include ....%>

例子:

主要用户提取页面中的公有的部分

  1. 新建公共的页面

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <h1>这里是头部</h1>
    ​
    --------------------------------
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <h1>这里是尾部</h1>
  2. 使用 include 指令引入这两个jsp

    <body>
    <%@ include file="common/header.jsp"%>
    <h2>网页主体部分</h2>
    <%@ include file="/common/footer.jsp"%>
    </body>

    这里需要注意的是:当你第二次用include 去引用 jsp页面时,在路径前面要加上 "/",表示当前项目

 

除了这样引入公共的页面之外,还可以使用jsp标签,来引用

<jsp:include page="/common/header.jsp"/>
<h2>网页主体部分</h2>
<jsp:include page="/common/footer.jsp"/>

路径前面的 "/" 可加可不加

 

两者的区别:

  • @include指令是把 所有引入的jsp页面与原先的页面的代码都合起来

    image-20221020120248491

  • jsp:include 标签是引入了jsp文件,将jsp页面拼接

    image-20221020120444434

    image-20221020120512287

 

我们一般使用jsp:include 的方式,因为第一种方式,如果在header.jsp 和 jsp1.jsp中都定义了一个名字相同的变量,是不会报错的,如果去访问就会报500

而第二种方式,直接就会报错,不能定义名字相同的变量。

 

posted @ 2022-10-20 12:08  GrowthRoad  阅读(48)  评论(0编辑  收藏  举报