动态网站JSP技术

您所在的位置:网站首页 jsp的隐式注释语句是什么意思 动态网站JSP技术

动态网站JSP技术

2023-06-27 22:29| 来源: 网络整理| 查看: 265

文章目录 零、本节学习目标一、JSP概述(一)什么是JSP1、JSP的概念2、JSP的特征(二)编写第一个JSP1、创建Web项目2、修改Artifact名称,重新部署项目3、创建欢迎JSP页面4、启动服务器,查看结果 二、JSP基本语法(一)JSP页面的基本构成1、JSP页面构成2、案例演示 - 显示系统当前时间 (二)JSP脚本元素1、JSP Scriptlet(1)基本概念(2)语法格式(3)案例演示 2、声明标识(1)基本概念(2)语法格式(3)案例演示(4)注意事项 3、JSP表达式(1)基本概念(2)语法格式(3)案例演示(4)注意事项 (三)JSP注释1、带有JSP表达式的注释(1)单行注释(2)多行注释(3)提示文档注释(4)案例演示 2、隐藏注释(1)基本概念(2)语法格式(3)案例演示 3、动态注释(1)基本概念(2)语法格式(3)案例演示 三、JSP指令(一)page指令1、基本概念2、语法格式3、案例演示 (二)include指令1、基本概念2、语法格式3、案例演示4、常见问题 (三)taglib指令1、基本概念2、语法格式3、案例演示 四、JSP动作元素(一)包含文件元素1、基本概念2、语法格式3、包含原理4、案例演示 (二)请求转发元素1、基本概念2、语法格式3、案例演示 五、JSP隐式对象(一)JSP隐式对象概述(二)out对象1、out对象的作用 2、out对象与Servlet引擎提供的缓冲区之间的工作3、案例演示4、使用page指令设置out对象的缓冲区大小 (三)pageContext对象1、pageContext对象2、pageContext对象获取隐式对象的方法3、pageContext操作属性的相关方法4、pageContext对象的作用范围5、案例演示 (四)exception对象1、exception对象概述2、案例演示

零、本节学习目标

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

二、JSP基本语法 (一)JSP页面的基本构成

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

1、JSP页面构成

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

2、案例演示 - 显示系统当前时间 创建time_info.jsp页面 在这里插入图片描述 JSP页面 - 显示系统当前时间 系统当前时间: 页面构成说明图 在这里插入图片描述启动服务器,访问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)语法格式 (3)案例演示 创建demo01.jsp页面 在这里插入图片描述 JSP Scriptlets 启动服务器,访问http://localhost:8080/JSPDemo/demo01.jsp 在这里插入图片描述 2、声明标识 (1)基本概念

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

(2)语法格式 (3)案例演示 创建demo02.jsp页面 在这里插入图片描述 JSP声明标识 启动服务器,访问http://localhost:8080/JSPDemo/demo05.jsp 在这里插入图片描述在打开的页面中点击鼠标右键,在弹出菜单中选择“查看网页源代码“选项 在这里插入图片描述注意:在上图中,网页源代码只显示出了HTML注释,而没有显示JSP的注释信息。这是因为Tomcat编译JSP文件时,会将HTML注释当成普通文本发送到客户端,而JSP页面中格式为“”的内容则会被忽略,不会发送到客户端。 3、动态注释 (1)基本概念

由于HTML注释对JSP嵌入的代码不起作用,因此可以利用它们的组合构成动态的HTML注释文本。

(2)语法格式 (3)案例演示 创建demo06.jsp页面 在这里插入图片描述 Title 随机数: 启动服务器,访问http://localhost:8080/JSPDemo/demo06.jsp 在这里插入图片描述在打开的页面中点击鼠标右键,在弹出菜单中选择“查看网页源代码“选项 三、JSP指令 (一)page指令

目标:熟悉JSP 2.0中定义的page指令

1、基本概念

在JSP页面中,经常需要对页面的某些特性进行描述,例如,页面的编码方式,JSP页面采用的语言等,这些特性的描述可以通过page指令实现。

2、语法格式 page用于声明指令名称,属性用来指定JSP页面的某些特性。page指令还提供了一系列与JSP页面相关的属性。 3、案例演示 page指令的常见属性中除了import属性外,其他的属性都只能出现一次,否则会编译失败。创建错误之后跳转的页面error.jsp 在这里插入图片描述 错误页面 错误信息: 创建demo07.jsp页面 在这里插入图片描述 JSP页面 - 显示系统当前时间 系统当前时间:

查看页面指令 在这里插入图片描述

上面红框中的代码使用了page指令的language、contentType、pageEncoding和import属性。需要注意的是,page指令对整个页面都有效,而与其书写的位置无关,但是习惯上把page指令写在JSP页面的最前面。

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

修改demo07.jsp页面,故意让Java代码犯错 在这里插入图片描述

启动服务期,访问http://localhost:8080/JSPDemo/demo07.jsp,显示系统默认错误页面 在这里插入图片描述

如果demo07.jsp指定错误页面error.jsp 在这里插入图片描述

启动服务期,访问http://localhost:8080/JSPDemo/demo07.jsp,显示用户指定的错误页面 在这里插入图片描述

改正demo07.jsp页面的错误 在这里插入图片描述

(二)include指令 目标:掌握JSP 2.0中定义的include指令 1、基本概念 在实际开发时,有时需要在JSP页面中包含另一个JSP页面,这时,可以通过include指令实现。 2、语法格式 include指令只有一个file属性,用于指定要包含文件的路径。需要注意的是,插入文件的路径一般不以“/”开头,而是使用相对路径。 3、案例演示 创建demo08.jsp页面 在这里插入图片描述 欢迎页面 欢迎访问JSP世界~

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

4、常见问题

(1)被引入的文件必须遵循JSP语法,其中的内容可以包含静态HTML、JSP脚本元素和JSP指令等普通JSP页面所具有的一切内容。 (2)除了指令元素之外,被引入的文件中的其他元素都被转换成相应的Java源代码,然后插入进当前JSP页面所翻译成的Servlet源文件中,插入位置与include指令在当前JSP页面中的位置保持一致。 (3)file属性的设置值必须使用相对路径,如果以“/”开头,表示相对于当前Web应用程序的根目录(注意不是站点根目录);否则,表示相对于当前文件。需要注意的是,这里的file属性指定的相对路径是相对于文件(file),而不是相对于页面(page)。 (4)在应用include指令进行文件包含时,为了使整个页面的层次结构不发生冲突,建议在被包含页面中将,等标签删除,因为在包含页面的文件中已经指定了这些标签。

被包含的time_info.jsp页面可以作如下修改 在这里插入图片描述启动服务器,访问http://localhost:8080/JSPDemo/demo08.jsp,一样可以显示出被包含页面的内容 在这里插入图片描述 (三)taglib指令 目标:熟悉JSP 2.0中定义的taglib指令 1、基本概念

在JSP文件中,可以通过taglib指令标识该页面中所使用的标签库,同时引用标签库,并指定标签的前缀。在页面中引用标签库后,就可以通过前缀来引用标签库中的标签。

2、语法格式 3、案例演示

在WEB-INF里创建lib目录,添加两个jar包

创建demo09.jsp页面

JSTL核心库演示

JSTL的引入可以让JSP代码中等代码消失掉,再结合EL表达式,会更加方便以及美观。

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

如果不使用JSTL核心标签库,采用JSP代码实现相同功能 在这里插入图片描述

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

四、JSP动作元素 (一)包含文件元素

目标:掌握JSP的包含文件元素

1、基本概念

在JSP页面中,动作元素用于向当前页面引入其他的文件,被引入的文件可以是动态文件,也可以是静态文件。

2、语法格式 3、包含原理

包含的原理是将被包含页面编译处理后的结果包含在当前页面中。例如,在页面1中使用元素包含了页面2,当浏览器第一次请求页面1时,Web容器首先会编译页面2,然后将编译处理后的返回结果包含在页面1中,之后编译页面1,最后将两个页面组合的结果回应给浏览器。

4、案例演示 创建demo10.jsp页面 在这里插入图片描述 被包含的页面 红豆生南国 春来发几枝 愿君多采撷 此物最相思 创建demo11.jsp页面,引入demo10.jsp页面。demo10.jsp作为被引入的文件,让它暂停5秒钟后再输出内容,这样,可以方便测试元素的flush属性。 (二)请求转发元素 目标:掌握JSP的请求转发元素jsp:forward 1、基本概念

动作元素可以将当前请求转发到其他Web资源(HTML页面、JSP页面和Servlet等),执行请求转发之后,当前页面将不再执行,而是执行该元素指定的目标页面。

2、语法格式

page属性用于指定请求转发到的资源的相对路径,该路径的目标文件必须是当前应用中的内部资源。

3、案例演示 创建demo12.jsp页面 演示请求转发元素 演示请求转发元素 启动服务器,访问http://localhost:8080/JSPDemo/demo12.jsp,发现浏览器不会显示demo12.jsp页面中的输出内容,等待5秒后才会显示welcome.jsp页面的内容。 五、JSP隐式对象 (一)JSP隐式对象概述

目标:初步了解JSP隐式对象

在JSP页面中,有一些对象需要频繁使用,如果每次都重新创建这些对象则会非常麻烦。为了简化Web应用程序的开发,JSP2.0规范中提供了9个隐式(内置)对象,它们是JSP默认创建的,可以直接在JSP页面中使用。

(二)out对象 目标:掌握在JSP页面中使用out对象向客户端发送文本内容 1、out对象的作用

在JSP页面中,经常需要向客户端发送文本内容,向客户端发送文本内容可以使用out对象实现。out对象是javax.servlet.jsp.JspWriter类的实例对象,它的作用与ServletResponse.getWriter()方法返回的PrintWriter对象非常相似,都是用来向客户端发送文本形式的实体内容。不同的是,out对象的类型为JspWriter,它相当于带缓存功能的PrintWriter。

2、out对象与Servlet引擎提供的缓冲区之间的工作

在JSP页面中,通过out隐式对象写入数据相当于将数据插入到JspWriter对象的缓冲区中,只有调用了ServletResponse.getWriter()方法,缓冲区中的数据才能真正写入到Servlet引擎所提供的缓冲区中。

3、案例演示 创建demo13.jsp页面 演示out对象的用法 启动服务器,访问http://localhost:8080/JSPDemo/demo13.jsp 在这里插入图片描述 4、使用page指令设置out对象的缓冲区大小 有时候,开发人员希望out对象可以直接将数据写入Servlet引擎提供的缓冲区中,这时,可以通过page指令中操作缓冲区的buffer属性来实现。修改demo13.jsp代码,设置out对象的缓冲区 在这里插入图片描述启动服务器,访问http://localhost:8080/JSPDemo/demo13.jsp 在这里插入图片描述 (三)pageContext对象 目标:掌握在JSP页面中使用pageContext对象获取JSP的其他8个隐式对象 1、pageContext对象

在JSP页面中,使用pageContext对象可以获取JSP的其他8个隐式对象。pageContext对象是javax.servlet.jsp.PageContext类的实例对象,它代表当前JSP页面的运行环境,并提供了一系列用于获取其他隐式对象的方法。

2、pageContext对象获取隐式对象的方法 方法名功能描述JspWriter getOut()用于获取out隐式对象Object getPage()用于获取page隐式对象ServletRequest getRequest()用于获取request隐式对象ServletResponse getResponse()用于获取response隐式对象HttpSession getSession()用于获取session隐式对象Exception getException()用于获取exception隐式对象ServletConfig getServletConfig()用于获取config隐式对象ServletContext getServletContext()用于获取application隐式对象 3、pageContext操作属性的相关方法 方法名功能描述void setAttribute(String name, Object value, int scope)用于设置pageContext对象的属性Object getAttribute(String name, int scope)用于获取pageContext对象的属性void removeAttribute(String name, int scope)用于删除指定范围内名称为name的属性void removeAttribute(String name)用于删除所有范围内名称为name的属性Object findAttribute(String name)用于从4个域对象中查找名称为name的属性 4、pageContext对象的作用范围 pageContext操作属性的相关方法中参数name指定的是属性名称,参数scope指定的是属性的作用范围。 常量作用范围pageContext.PAGE_SCOPE表示页面范围pageContext.REQUEST_SCOPE表示请求范围pageContext.SESSION_SCOPE表示会话范围pageContext.APPLICATION_SCOPE表示Web应用程序范围 需要注意的是,当调用findAttribute()方法查找名称为name的属性时,会按照page、request、session和application的顺序依次进行查找,如果找到,则返回属性的名称,否则返回null。 5、案例演示 创建demo14.jsp页面 演示pageContext对象 启动服务器,访问http://localhost:8080/JSPDemo/demo14.jsp 在这里插入图片描述 (四)exception对象 目标:掌握在JSP页面中使用exception对象处理异常信息 1、exception对象概述 在JSP页面中,经常需要处理一些异常信息,处理异常信息可以通过exception对象实现。exception对象是java.lang.Exception类的实例对象,它用于封装JSP中抛出的异常信息。需要注意的是,exception对象只有在错误处理页面才可以使用,即page指令中指定了属性的页面。 2、案例演示 查看前面创建的error.jsp页面 在这里插入图片描述创建demo15.jsp页面 演示页面异常÷ 启动服务器,访问http://localhost:8080/JSPDemo/demo15.jsp 在这里插入图片描述


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3