动态网站开发06:JSP技术

本文详细介绍了JSP的概念、特点,包括其跨平台性、业务代码分离、组件重用和预编译等。通过实例演示了如何创建第一个JSP页面,以及JSP的基本语法,如页面构成、脚本元素(Scriptlets、声明标识和表达式)、注释类型。此外,还讲解了JSP指令(page、include和taglib)和动作元素的使用,以及JSP隐式对象的应用,如out对象和pageContext对象。
摘要由CSDN通过智能技术生成

文章目录

零、本节学习目标

了解JSP的概念和特点
熟悉JSP的运行原理
掌握JSP的基本语法
熟悉JSP指令的使用
掌握JSP动作元素的使用
掌握JSP隐式对象的使用

一、JSP概述

(一)什么是JSP

目标:了解JSP的概念与特征,能够知道JSP用于做什么

1、JSP的概念

JSP全名是Java Server Pages,即Java服务器页面。它是Servlet更高级别的扩展。在JSP文件中,HTML代码与Java代码共同存在,其中,HTML代码用来实现网页中静态内容的显示,Java代码用来实现网页中动态内容的显示。最终,JSP文件会通过Web服务器的Web容器编译成一个Servlet,用来处理各种请求。

2、JSP的特征

(1)跨平台
由于JSP是基于Java语言的,使用JSP开发的Web应用是跨平台的,可以应用于不同的系统中,如Windows、Linux等。当从一个平台移植到另一个平台时,JSP和JavaBean的代码并不需要重新编译,这是因为Java的字节码是与平台无关的,这也符合了Java语言“一次编译,到处运行”的特点。
(2)业务代码相分离
在使用JSP技术开发Web应用时,可以将界面的开发与应用程序的开发分离开。开发人员使用HTML设计界面,使用JSP标签和脚本动态生成页面上的内容。在服务器端,JSP容器负责解析JSP标签和脚本程序,生成所请求的内容,并将执行结果以HTML页面的形式返回给浏览器。
(3)组件重用
JSP中可以使用JavaBean编写业务组件,也就是使用一个JavaBean封装业务处理代码或者作为一个数据存储模型,在JSP页面中,甚至在整个项目中,都可以重复使用这个JavaBean,同时,JavaBean也可以应用到其他Java应用程序中。
(4)预编译
预编译就是在用户第一次通过浏览器访问JSP页面时,服务器将对JSP页面代码进行编译,并且仅执行一次编译。编译好的代码将被保存,在用户下一次访问时,会直接执行编译好的代码。这样不仅节约了服务器的CPU资源,还大大提升了客户端的访问速度。

(二)编写第一个JSP

目标:掌握JSP文件的编写。

1、创建Web项目
  • 创建Java Enterprise,添加Web Application
    在这里插入图片描述
2、修改Artifact名称,重新部署项目
  • 在项目结构窗口里修改Artifact名称
    在这里插入图片描述
  • 在服务期配置窗口里,重新部署项目

在这里插入图片描述

  • 切换到【Server】选项卡,设置默认浏览器
    在这里插入图片描述
3、创建欢迎JSP页面
  • 在web目录里创建welcome.jsp
    在这里插入图片描述
  • 注意:由welcome.jsp页面可知,新创建的JSP文件与传统的HTML文件几乎没有什么区别,唯一的区别是默认创建时,页面代码最上方多了一条page指令,并且该文件的后缀名是jsp,而不是html
  • 修改welcome.jsp
    在这里插入图片描述
4、启动服务器,查看结果
  • 启动服务器,访问http://localhost:8080/JSPDemo/welcome.jsp
    在这里插入图片描述

  • 注意:welcome.jsp<body>标签中添加的内容已被显示出来,这说明HTML元素可以被JSP容器解析。实际上,JSP只是在原有的HTML文件中加入了一些具有Java特点的代码,这些称为JSP的语法元素。
    课堂练习:修改首页,显示如下图所示
    在这里插入图片描述

二、JSP基本语法

(一)JSP页面的基本构成

目标:熟悉JSP的页面的基本构成

1、JSP页面构成

虽然已经创建过JSP文件,但是并未对JSP文件的页面构成进行详细介绍。一个JSP页面可以包括指令标识、HTML代码、JavaScript代码、嵌入的Java代码、注释和JSP动作标识等内容。

2、案例演示 - 显示系统当前时间

  • 创建time_info.jsp页面
    在这里插入图片描述
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="java.util.Date" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
    <head>
        <title>JSP页面 - 显示系统当前时间</title>
    </head>
    <body>
        <%
            Date date = new Date();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String currentTime = sdf.format(date);
        %>
        <h3 style="text-align: center">系统当前时间:<%= currentTime%></h3>
    </body>
</html>

  • 页面构成说明图
    在这里插入图片描述
  • 启动服务器,访问http://localhost:8080/JSPDemo/time_info.jsp
    在这里插入图片描述

(二)JSP脚本元素

目标:掌握JSP脚本元素的三种类型:JSP Scriptlets、声明标识和JSP表达式
JSP脚本元素是指嵌套在“<%”和“%>”之中的一条或多条Java程序代码。通过JSP脚本元素可以将Java代码嵌入HTML页面中,所有可执行的Java代码,都可以通过JSP脚本执行。

1、JSP Scriptlet

(1)基本概念

JSP Scriptlets 是一段代码片段。所谓代码片段,就是在JSP页面中嵌入的Java代码或脚本代码。代码片段将在页面请求的处理期间被执行,通过Java代码可以定义变量或流程控制语句等;而脚本代码可以应用JSP的内置对象在页面输出内容、处理请求和访问session会话等。

(2)语法格式
<% java 代码(变量、方法、表达式等)%>

(3)案例演示
  • 创建demo01.jsp页面
    在这里插入图片描述
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
    <head>
        <title>JSP Scriptlets</title>
    </head>
    <body>
        <%
            int a = 100, b = 150; // 定义两个整型变量
            int sum = a + b; // 计算两个整数之和
            out.print(a + " + " + b + " = " + sum); // 输出求和结果
        %>
    </body>
</html>

  • 启动服务器,访问http://localhost:8080/JSPDemo/demo01.jsp
    在这里插入图片描述

2、声明标识

(1)基本概念

在JSP Scriptlets中可以进行属性的定义,也可以输出内容,但是它不可以进行方法的定义。如果想在脚本元素中定义方法,可以使用声明标识。声明标识用于在JSP页面中定义全局变量或方法,它以“<%!”开始,以“%>”结束。通过声明标识定义的变量和方法可以被整个JSP页面访问,所以通常使用该标识定义整个JSP页面需要引用的变量或方法。
在JSP声明语句中定义的都是成员方法、成员变量、静态方法、静态变量、静态代码块等。在JSP声明语句中声明的方法在整个JSP页面内有效,但是在方法内定义的变量只在该方法内有效。当声明的方法被调用时,会为方法内定义的变量分配内存,而调用结束后立刻会释放所占的内存。
注意:在一个JSP页面中可以有多个JSP声明标识,单个声明中的Java语句可以是不完整的,但是多个声明组合后的结果必须是完整的Java语句。

(2)语法格式
<%! 
	定义变量或方法等
%>

(3)案例演示
  • 创建demo02.jsp页面
    在这里插入图片描述
<html>
    <head>
        <title>JSP声明标识</title>
    </head>
    <body>
        <%!
            // 定义阶乘函数
            public long factorial(int n) {
                long jc = 1;
                for (int i = 1; i <= n; i++) {
                    jc = jc * i;
                }
                return jc;
            }
        %>
        <%
            // 输出10的阶乘值
            out.println("10! = " + factorial(10));
        %>
    </body>
</html>
  • 启动服务器,访问http://localhost:8080/JSPDemo/demo02.jsp
    在这里插入图片描述
(4)注意事项

“<%!”和“%>”里面定义的属性是成员属性,相当于类的属性,方法相当于是全局的方法,也相当于是类里面的方法,但是在“<%!”和“%>”里面是不可以进行输出的,只能在里面进行方法的定义和属性的定义。
“<%!”和“%>”是用来定义属性和方法的,“<%”和“%>”主要是用来输出内容的,因此如果涉及到了成员变量的操作,那么就应该使用“<%!”和“%>”,而如果是涉及到了输出内容的时候,就使用“<%”和“%>”。
通过声明标识创建的变量和方法在当前JSP页面中有效,它的生命周期是从创建开始到服务器结束;代码片段创建的变量或方法,也是在当前JSP页面有效,但它的生命周期是页面关闭后就会被销毁。

3、JSP表达式

(1)基本概念

JSP表达式(expression)用于向页面输出信息,它以“<%=”开始,以“%>”结束。

(2)语法格式
<%= expression %>
  • 上述语法格式中,参数expression可以是任何Java语言的完整表达式,该表达式的最终运算结果将被转换成一个字符串。
(3)案例演示
  • 创建demo03.jsp页面
    在这里插入图片描述
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
    <head>
        <title>JSP表达式</title>
    
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值