JSP学习(一):声明脚本、表达式脚本和代码脚本

135 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第5天,点击查看活动详情

什么是JSP?(摘自百度百科)

JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTMLXML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。

JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。另外,可以创建JSP标签库,然后像使用标准HTML或XML标签一样使用它们。标签库能增强功能和服务器性能,而且不受跨平台问题的限制。JSP文件在运行时会被其编译器转换成更原始的Servlet代码。JSP编译器可以把JSP文件编译成用Java代码写的Servlet,然后再由Java编译器来编译成能快速执行的二进制机器码,也可以直接编译成二进制码。

虽然现在JSP用得不多了 ,但是很多学习JSP也就需要几天时间,而且很多项目仍然使用JSP,因此我也花几天时间学习一下JSP,要求自己能看懂代码就行。

1、声明脚本(基本不用)

    声明脚本用<%! %>包围,

    作用:可以给jsp翻译出来的java类定义属性和方法,甚至是静态代码块、内部类等。
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %>
<%--
  Created by IntelliJ IDEA.
  User: pc
  Date: 2021/7/26
  Time: 12:28
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
 
<%--    声明脚本(基本不用)--%>
<%--
        声明脚本的格式是: <%!   声明java代码    %>
        作用:可以给jsp翻译出来的java类定义属性和方法,甚至是静态代码块、内部类等
 
--%>
 
<%--    1、 声明类属性--%>
    <%!
        private Integer id;
        private String name;
        private static Map<String,Object> map;
    %>
 
<%--    2、声明静态代码块--%>
    <%!
        static {
            map = new HashMap<String, Object>();
            map.push("key1","value1");
            map.push("key2","value2");
            map.push("key3","value3");
        }
    %>
<%--    3、声明方法--%>
    <%!
        public int hello(){
            return 12;
        }
    %>
<%--    4、声明内部类--%>
 
</body>
</html>

2、表达式脚本(经常使用)

        表达式脚本用<%=    %>包围,可以输出整形、浮点型、字符串、对象

        需要注意的是,我们会习惯性地给对象后面加分号。但表达式脚本中是不能出现分号的。

实例:

<%--
  Created by IntelliJ IDEA.
  User: pc
  Date: 2021/7/26
  Time: 14:28
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%--
    表达式脚本(常用)
          格式: <%=   表达式  %>
    作用是在jsp页面上输出数据
 
    可以输出整形、浮点型、字符串、对象
 
    不能以分号结束
--%>
    <%=12%>
    <%=12.3%>
    <%="hello world"%>
 
 
</body>
</html>

3、代码脚本

        以<%      %>包围

实例:

<%--
  Created by IntelliJ IDEA.
  User: pc
  Date: 2021/7/26
  Time: 14:47
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
 
<%--    代码脚本:
                格式:
                <%
                    java代码
                %>
 
        只要是写在翻译后的java文件的_jspService方法里的代码,都可以写在代码脚本中
--%>
 
    <%
        int i = 12;
        if(i == 12){
            System.out.println("哈哈哈");
        } else{
            System.out.println("嘿嘿嘿");
        }
    %>
 
<%--还可以由多个代码脚本组合起来   也可以将代码脚本和表达式脚本组合使用(不能嵌套)--%>
    <%
        for (int j=0;j<10;j++){
    %>
        <%=j%>
    <%
            System.out.println(j);
        }
    %>
 
</body>
</html>