《Java Web开发从入门到实战(IntelliJ IDEA版·微课视频版)》 课件全套 陈恒 第1-16章 Java Web开发环境的构建 - 名片管理系统的设计与实现Spring Boot+MyBatis-Plus_第1页
《Java Web开发从入门到实战(IntelliJ IDEA版·微课视频版)》 课件全套 陈恒 第1-16章 Java Web开发环境的构建 - 名片管理系统的设计与实现Spring Boot+MyBatis-Plus_第2页
《Java Web开发从入门到实战(IntelliJ IDEA版·微课视频版)》 课件全套 陈恒 第1-16章 Java Web开发环境的构建 - 名片管理系统的设计与实现Spring Boot+MyBatis-Plus_第3页
《Java Web开发从入门到实战(IntelliJ IDEA版·微课视频版)》 课件全套 陈恒 第1-16章 Java Web开发环境的构建 - 名片管理系统的设计与实现Spring Boot+MyBatis-Plus_第4页
《Java Web开发从入门到实战(IntelliJ IDEA版·微课视频版)》 课件全套 陈恒 第1-16章 Java Web开发环境的构建 - 名片管理系统的设计与实现Spring Boot+MyBatis-Plus_第5页
已阅读5页,还剩618页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章JavaWeb开发环境的构建学习目的与要求本章对开发工具与环境配置进行简要介绍。通过本章的学习,掌握使用IntelliJIDEA平台开发JavaWeb应用的基本步骤。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

目录《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

1.1构建开发环境1.2使用IntelliJIDEA开发Web应用1.1.1开发工具1.Java开发工具包(JDK)JSP引擎需要Java语言的核心库和相应编译器,在安装JSP引擎之前,需要安装Java标准版(Java

SE)提供的开发工具包JDK。登录/technetwork/java,根据操作系统的位数,下载相应的JDK,例如64位的系统使用64位的JDK。本书采用的JDK是jdk-18_windows-x64_bin.exe。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

1.1.1开发工具2.JSP引擎运行包含JSP页面的Web项目还需要一个支持JSP的Web服务软件,该软件也称作JSP引擎或JSP容器,通常将安装了JSP引擎的计算机称为一个支持JSP的Web服务器。目前,比较常用的JSP引擎包括Tomcat,JRun,Resin,WebSphere,WebLogic等,本书采用的是Tomcat

10.0。登录Apache

软件基金会的官方网站http://jakarta.A/tomcat,下载Tomcat10.0的免安装版(本书采用apache-tomcat-10.0.23-windows-x64.zip)。登录网站后,首先在Download里选择Tomcat

10.0,然后在Binary

Distributions的Core中选择zip即可。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

1.1.1开发工具3.IntelliJ

IDEA为了提高开发效率,通常需要安装IDE(集成开发环境)工具,在本书中使用的IDE工具是IntelliJ

IDEA。IntelliJ

IDEA是Java编程语言的集成开发环境,可用于开发JSP程序的IDE工具。登录/idea/,根据操作系统下载相应的IntelliJ

IDEA。本书采用的是WindowsUltimate版ideaIU-2022.2.1。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

1.1.2工具集成《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

如果你的电脑上,已经安装了IntelliJIDEA(本书使用的是ideaIU-2022.2.1),那么你可以使用IntelliJIDEA便捷地构建JavaWeb应用。虽然IntelliJIDEA自带OpenJDK,但建议在使用前事先安装并配置JDK和Web服务器。1.安装JDK《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

可以登录Oracle官方网站/technetwork/java,根据操作系统的位数,下载相应的JDK,例如64位的系统使用64位的JDK。本书采用的JDK是jdk-18_windows-x64_bin.exe。JDK18的安装程序默认将常用的开发工具(包括java.exe、javac.exe、javaw.exe以及jshell.exe)自动复制到C:\ProgramFiles\CommonFiles\Oracle\Java\javapath目录中,并将该目录自动添加到Path环境变量中。因此,如果仅需要使用这些常用的开发工具,不再需要配置环境变量。2.Tomcat的安装《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

目前,比较常用的Web服务器包括Tomcat,JRun,Resin,WebSphere,WebLogic等,本书采用的是Tomcat10.0。登录Apache

软件基金会的官方网站http://jakarta.A/tomcat,下载Tomcat10.0的免安装版(本书采用apache-tomcat-10.0.23-windows-x64.zip)。登录网站后,首先在Download里选择Tomcat10,然后在BinaryDistributions的Core中选择相应版本即可下载。将下载的apache-tomcat-10.0.23-windows-x64.zip解压到某个目录下即可完成安装。3.集成Tomcat《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

启动IntelliJIDEA,选择File/Settings菜单项,在弹出的对话框中选择Build,Execution,Deployment/ApplicationServers命令。在弹出的窗口中,选择+/TomcatServer菜单项,弹出如图1.6所示的TomcatServer界面,在此选择Tomcat目录。目录《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

1.1构建开发环境1.2使用IntelliJIDEA开发Web应用1.2.1JSP运行原理1.JSP文件一个JSP文件中可以有普通的HTML标记、JSP规定的标记以及Java程序。JSP文件的扩展名是.jsp,文件名字必须符合标识符规定,即名字可以由字母、下划线、美元符号和数字组成。2.JSP运行原理当Web服务器上的一个JSP页面第一次被客户端请求执行时,Web服务器上的JSP引擎首先将JSP文件转译成一个Java文件,并将Java文件编译成字节码文件,字节码文件在服务器端创建一个Servlet对象,然后执行该Servlet对象,同时发送一个HTML页面到客户端响应客户端的请求。当这个JSP页面再次被请求时,JSP引擎为每个客户端启动一个线程并直接执行对应的Servlet对象响应客户端的请求,这也是JSP响应速度比较快的原因之一。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

1.2.2一个简单的Web应用使用IntelliJIDEA开发一个Web应用需要如下三个步骤: 创建Web项目 添加Tomcat依赖 创建JSP文件 发布项目到Tomcat并运行《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

1.创建Web项目首先,使用IntelliJIDEA创建一个名为ch1的项目。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

1.创建Web项目其次,右击项目名称ch1,选择AddFrameWorkSupport菜单项,给项目ch1添加WebApplication。(如果找不到AddFrameWorkSupport,选中模块名双击Shift键->Actions选项中打开AddFrameWorkSupport)《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

2.添加Tomcat依赖ch1项目创建完成后,选择File->Project

Structure菜单项,打开Project

Structure界面。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

3.创建JSP文件(1)选中ch1项目的web节点,右击,在打开的快捷菜单中,选择“New”—>“JSP/JSPX”,打开“Create

JSP/JSPX

page”对话框,如图1.11所示。在该对话框的“Name”文本框中输入文件名myFirst.jsp,按下“Enter”回车键即可完成JSP文件的创建。(2)JSP创建完成后,在ch1项目的web节点下,自动添加一个名称为myFirst.jsp的JSP文件,同时,IntelliJ

IDEA会自动将JSP文件在右侧的编辑框中打开。(3)修改myFirst.jsp文件中的默认代码。(4)将编辑好的JSP页面保存(ctrl+s)(IntelliJIDEA会自动保存),至此完成一个简单的JSP程序创建。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

4.发布项目到Tomcat并运行在IntelliJIDEA中第一次运行Java

Web应用时,需要将应用发布到Tomcat,具体步骤如下。在IntelliJ

IDEA主界面中,单击如图1.12所示的白色向下三角符号,选择Edit

Configurations菜单项,打开如图1.13所示的服务器选择界面。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

4.发布项目到Tomcat并运行在图1.13中,选择Tomcat

Server的Local选项打开Deployment界面,如图1.14所示。按照图1.14的操作顺序,打开如图1.15所示的界面,并修改应用的上下文路径。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

4.发布项目到Tomcat并运行单击图1.15中的OK按钮,即可将项目ch1发布到Tomcat。发布成功后,回到如图1.16所示的IntelliJ

IDEA主界面。单击图1.16中的三角符号启动Tomcat,即可运行Web应用ch1,如图1.17所示。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

1.2.3实践环节——使用IntelliJIDEA开发Web应用1.创建一个名称为sencondTest的项目。2.在sencondTest项目中创建一个名称为yourFirst.jsp文件,在JSP页面中显示“不错!不错!自己能创建JSP文件了,并且可以发布运行了”。3.发布并运行sencondTest项目。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

本章小结本章主要介绍了Java

Web集成开发环境的构建,用到的工具有:JDK、Tomcat和IntelliJ

IDEA。它们的安装顺序由先到后依次是JDK、Tomcat、IntelliJ

IDEA。Tomcat

是一个支持JSP的Web服务软件,该软件也称作JSP引擎或JSP容器。JSP引擎是支持JSP程序的Web容器,负责运行JSP程序,并将有关结果发送给客户端。目前流行的JSP引擎有:Tomcat、Resin、JRun、WebSphere、WebLogic等等,本书使用的是Tomcat服务器。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

第2章JSP语法学习目的与要求本章主要介绍JSP脚本元素、JSP指令标记和JSP动作标记。通过本章的学习,理解JSP页面的组成部分,掌握JSP语法,能够使用JSP开发Web页面。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

目录《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

2.1JSP页面的基本构成2.2JSP脚本元素2.3JSP指令标记2.4JSP动作标记2.1.1一个JSP页面在HTML静态页面文件中加入和Java相关的动态元素,就构成了一个JSP页面。一个JSP页面通常由4种基本元素组成:1.普通的HTML标记。2.JSP注释。3.Java脚本元素,包括声明、Java程序片和Java表达式。4.JSP标记,如指令标记、动作标记和自定义标记等。【例2-1】根据example2_1.jsp代码中的注释,识别JSP页面的基本元素。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

2.1.2JSP页面注释JSP页面中常见的注释有以下两种:1.HTML注释格式:<!--HTML注释-->在标记符“<!--”和“-->”之间加入注释内容,就构成了HTML注释。JSP引擎对于HTML注释也要进行处理,即不将它看作是注释,如果其中有JSP代码,也将被JSP引擎处理。JSP引擎将处理之后的HTML注释交给客户端,通过浏览器查看JSP源文件时,能够看到HTML注释。2.JSP注释格式:<%--JSP注释--%>在标记符“<%--”和“--%>”之间加入注释内容,就构成了JSP注释。JSP引擎将JSP注释当作是真正的注释,在编译JSP页面时忽略这部分代码。因此,通过浏览器查看JSP源文件时,无法看到JSP注释。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

2.1.3实践环节——识别JSP页面元素<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtml><!--学习JSP页面的基本构成--><%! Stringcontent="JSP页面基本构成:";%><html><head><metacharset="UTF-8"><title>shijian2_1.jsp</title></head><body><%content=content+"HTML标记、JSP注释、JSP标记以及Java脚本元素";%><%=content%></body></html>《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

目录《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

2.1JSP页面的基本构成2.2JSP脚本元素2.3JSP指令标记2.4JSP动作标记2.2.1Java程序片在标记符“<%”和“%>”之间插入的Java代码被称作JSP页面的Java程序片。Java程序片格式如下:<%Java代码%>一个JSP页面可以有任意段Java程序片,这些程序片将被JSP引擎(本书中指Tomcat服务器)按顺序执行。在一个程序片中声明的变量称为JSP页面的局部变量,它们在JSP页面后继的所有程序片以及表达式内都有效。当多个客户请求一个JSP页面时,JSP引擎为每个客户启动一个线程,不同的线程会分别执行该JSP页面中的Java程序片,程序片中的局部变量会在不同的线程中被分配不同的内存空间。因此,一个客户对JSP页面局部变量操作的结果,不会影响到其他客户。Java程序片执行原理如图2.1所示。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

2.2.1Java程序片《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

JSP页面Java程序片局部变量客户1线程客户2线程客户3线程JSP引擎Java程序片局部变量Java程序片局部变量Java程序片局部变量内存图2.1Java程序片执行原理【例2-2】编写1个JSP页面example2_2.jsp,页面中存在一段Java程序片,该程序片内声明了一个整型的局部变量n,初始值为0。2.2.2成员变量与方法的声明<%!变量或方法定义%>在标记符“<%!”和“%>”之间声明的变量被称作JSP页面的成员变量,它们可以是Java

语言允许的任何数据类型,例如:<%!intn=0;Datedate;%>成员变量在整个JSP页面内都有效(与书写位置无关),因为JSP引擎将JSP页面转译成Java

文件时,将这些变量作为类的成员变量,这些变量的内存空间直到服务器关闭才释放。因此,多个用户共享JSP页面的成员变量。任何用户对JSP页面成员变量操作的结果,都会影响到其他用户。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

2.2.2成员变量与方法的声明在标记符“<%!”和“%>”之间声明的方法被称作JSP页面的成员方法,该方法在整个JSP页面内有效,但是该方法内定义的变量仅在该方法内有效。【例2-3】编写1个JSP页面example2_3.jsp,页面中声明一个成员变量n(初始值为0)和方法add(求两个整数的和)。另外,页面中还有一段Java程序片,在程序片中声明一个局部变量m,并且对成员变量n和局部变量m分别进行自加。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

2.2.3Java表达式在标记符“<%=”和“%>”之间可以插入一个表达式,这个表达式必须能求值。表达式的值由Web服务器负责计算,并将计算结果用字符串形式发送到客户端,作为HTML页面的内容显示。Java表达式中可以有算术表达式、逻辑表达式或条件表达式等。但使用Java表达式时,应该注意以下两点:1.不可在“<%=”和“%>”之间插入语句,即:输入的内容末尾不能以分号结束。2.“<%=”是一个完整的符号,“<%”和“=”之间不能有空格。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

2.2.4实践环节——在JSP页面输出英文字母表编写1个JSP页面,在JSP页面中使用Java程序片输出26个小写的英文字母表。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

2.2.5实践环节——网站访问量的统计利用成员变量被所有客户共享这一性质,实现一个简单的计数器,页面效果如图2.3所示。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

2.2.6实践环节——打印表格在浏览器中输出大小为15*10表格,页面效果如图2.4所示。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

目录《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

2.1JSP页面的基本构成2.2JSP脚本元素2.3JSP指令标记2.4JSP动作标记2.3.1page指令page指令标记用来定义整个JSP页面的一些属性和这些属性的值。可以用一个page指令指定多个属性的值,也可以使用多个page指令分别为每个属性指定值。page指令的格式如下:<%@page

属性1="属性1的值"属性2="属性2的值"…%>或者<%@page

属性1="属性1的值"%><%@page

属性2="属性2的值"%><%@page

属性3="属性3的值"%>….<%@page

属性n="属性n的值"%>page指令的主要属性有contentType、import、language和pageEncoding等。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

2.3.1page指令JSP页面使用page指令标记只能为contentType属性指定一个值,用来确定响应的MIME类型(MIME类型就是设定某种文件用对应的一种应用程序来打开的方式类型)。当用户请求一个JSP页面时,服务器会告诉浏览器使用contentType属性指定的MIME类型来解释执行所接收到的服务器为之响应信息。例如,浏览器使用word应用程序打开用户请求时,可以将contentType属性值设置为:<%@page

contentType="application/msword;charset=UTF-8"%>常见的MIME类型有:text/html(HTML解析器,所谓的网页形式)、text/plain(普通文本)、application/pdf(PDF文档)、application/msword(word应用程序)、image/jpeg(JPEG图形)、image/png(PNG图像)、image/gif(GIF图形)以及application/vnd.ms-powerpoint(powerpoint应用程序)。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

2.3.1page指令2.属性importJSP页面使用page指令标记可为import属性指定多个值,import属性的作用是为JSP页面引入包中的类,以便在JSP页面的程序片、变量及方法声明或表达式中使用包中的类。3.属性languagelanguage属性用来指定JSP页面使用的脚本语言,目前该属性的值只能取"java"。4.属性pageEncodingcontentType中的charset是指服务器发送给客户浏览器时所见到的网页内容的编码;pageEncoding是指JSP文件自身存储时所用的编码。在JSP规范中,如果pageEncoding属性存在,那么JSP页面的字符编码方式就由pageEncoding决定,否则就由contentType属性中的charset决定,如果charset也不存在,JSP页面的字符编码方式就采用默认的ISO-8859-1。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

2.3.2include指令include指令标记的作用就是将JSP文件、HTML网页文件或其他文本文件静态嵌入到当前的JSP网页中,该指令的语法格式如下:<%@includefile="文件的URL"%>所谓静态嵌入就是“先包含后处理”,在编译阶段完成对文件的嵌入。即:先将当前JSP页面与要嵌入的文件合并成一个新的JSP页面,然后再由JSP引擎将新页面转化为Java文件处理并运行。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

2.3.2include指令【例2-4】编写两个JSP页面example2_4.jsp和example2_4_1.jsp,在example2_4.jsp页面中使用include指令标记静态嵌入example2_4_1.jsp页面,访问example2_4.jsp页面,运行效果如图2.6所示。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

example2_4.jspexample2_4_1.jspexample2_4.jspexample2_4_1.jspexample2_4_jsp.java图2.6静态嵌入的原理2.3.3实践环节——制作导航栏编写3个JSP页面index.jsp、main.jsp和head.jsp,在index.jsp和main.jsp页面中分别使用include指令静态嵌入head.jsp(导航栏)。导航栏head.jsp的运行效果如图2.7所示。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

目录《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

2.1JSP页面的基本构成2.2JSP脚本元素2.3JSP指令标记2.4JSP动作标记2.4JSP动作标记常用的JSP动作标记有include、forward、param、useBean、GetProperty和setProperty。useBean、GetProperty和setProperty将在本书的第4章介绍。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

2.4.1include动作标记动作标记include的作用是将JSP文件、HTML网页文件或其他文本文件动态嵌入到当前的JSP网页中,该指令的语法有以下两种格式:<jsp:includepage="文件的URL"/>或<jsp:includepage="文件的URL">

子标记<jsp:include/>当动作标记include不需要子标记时,使用上述第一种形式。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

2.4.1include动作标记所谓动态嵌入就是“先处理后包含”,在运行阶段完成对文件的嵌入。即:在将JSP页面转译成Java文件时,并不合并两个页面;而是在Java文件的字解码文件被加载并执行时,才去处理include动作标记中引入的文件。与静态嵌入方式相比,动态嵌入的执行速度稍慢,但是灵活性较高。【例2-5】编写两个JSP页面example2_5.jsp和example2_5_1.jsp,在example2_5.jsp页面中使用include标记动态嵌入example2_5_1.jsp页面。运行example2_5.jsp页面。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

2.4.2forward动作标记动作标记forward的作用是:从该标记出现处停止当前JSP页面的继续执行,从而转向执行forward动作标记中page属性值指定的JSP页面。该标记有两种格式:<jsp:forwardpage="文件的URL"/>或<jsp:forwardpage="文件的URL">

子标记</jsp:forward>当动作标记forward不需要子标记时,使用上述第一种形式。【例2-6】编写3个JSP页面example2_6.jsp、oddNumber.jsp和evenNumbers.jsp。在example2_6.jsp页面中随机获取0~10之间的整数,该数为偶数时转向页面evenNumbers.jsp,否则转向页面oddNumber.jsp。首先访问example2_6.jsp页面。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

2.4.3param动作标记动作标记param不能独立使用,但可以作为include、forward动作标记的子标记来使用,该标记以“名字-值”对的形式为对应页面传递参数。该标记的格式为:<jsp:父标记page="接收参数页面的URL">

<jsp:paramname="参数名"value="参数值"/></jsp:父标记>接收参数的页面可以使用内置对象request调用getParameter("参数名")方法获取动作标记param传递过来的参数值,内置对象将在本书第3章介绍。【例2-7】编写两个页面example2_7.jsp和computer.jsp,在页面example2_7.jsp中使用include动作标记动态包含文件computer.jsp,并向它传递一个矩形的长和宽;computer.jsp收到参数后,计算矩形的面积,并显示结果。运行example2_7.jsp页面。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

2.4.4实践环节——include和param动作标记的应用编写3个JSP页面:input.jsp、first.jsp和second.jsp,将3个JSP文件保存在同一个Web服务目录中,input.jsp使用include动作标记加载first.jsp和second.jsp页面。first.jsp页面可以画出一个表格,second.jsp页面可以计算出两个正整数的最大公约数。当first.jsp被加载时获取input.jsp页面中include动作标记的param子标记提供的表格的行数和列数,当second.jsp被加载时获取input.jsp页面中include动作标记的param子标记提供的两个正整数的值。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

2.4.5实践环节——登录验证编写3个JSP页面:login.jsp、validate.jsp和success.jsp,login.jsp输入用户名与密码信息,提交给validate.jsp进行用户验证,如果验证为合法用户(用户名:tom,密码:jenny)则转到(forward动作标记)success.jsp页面,否则转到login.jsp页面重新登录。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

本章小结本章主要介绍了JSP页面的组成、JSP脚本元素和JSP标记。一个JSP页面通常由普通的HTML标记、JSP注释、Java脚本元素以及JSP标记组成。JSP脚本元素包括Java程序片、JSP页面成员变量与方法的声明、Java表达式。JSP标记包括指令标记和动作标记。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

第3章JSP内置对象学习目的与要求本章主要介绍request、response、out、session、application、pageContext、page、config和exception等内置对象。通过本章的学习,理解JSP内置对象的含义,掌握JSP内置对象的使用方法。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

学习目的与要求《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

3.1request对象3.2response对象3.3out对象3.4session对象3.5application对象3.6pageContext对象3.7page对象3.8config对象3.9exception对象3.10JSP的4种作用域3.1request对象request对象的类型为jakarta.servlet.http.HttpServletRequest。当客户端请求一个JSP页面时,JSP页面所在的服务器将客户端发出的所有请求信息封装在内置对象request中,因此使用该对象就可以获取客户端提交的信息。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

3.1.1常用方法《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

号方

法功

明1ObjectgetAttribute(Stringname)

返回指定属性的属性值2EnumerationgetAtrributeNames()

返回所有可用属性名的枚举3StringgetCharacterEncoding()

返回字符编码方式4intgetContentLength()

返回请求体的字节数5StringgetContentType()

返回请求体的MIME类型6ServletInputStreamgetInputStream()返回请求体中一行的二进制流7StringgetParameter(Stringname)返回name指定参数的参数值8EnumerationgetParameterNames()

返回可用参数名的枚举9String[]getParameterValues(Stringname)

返回包含参数name的所有值的数组10StringgetProtochol()

返回请求用的协议类型及版本号11StringgetServerName()

返回接受请求的服务器主机名12intgetServerPort()返回服务器接受此请求所用的端口号13StringgetRemoteAddr()

返回发送此请求的客户端IP地址14StringgetRemoteHost()

返回发送此请求的客户端主机名15voidsetAttribute(Stringkey,Objectobj)

设置属性的属性值16StringgetRealPath(Stringpath)

返回一虚拟路径的真实路径3.1.1常用方法

StringgetParameter(Stringname)该方法以字符串的形式返回客户端传来的某个参数的值,该参数名由name指定。【例3-1】调用方法getParameter(String

name)获取表单信息

String[]getParameterValues(Stringname)该方法以字符串数组的形式返回客户端向服务器端传递的指定参数名的所有值。【例3-2】调用方法getParameterValues

(Stringname)获取表单信息《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

3.1.2request对象存取数据request对象可以通过void

setAttribute(String

key,Objectobj)方法将参数obj指定的对象保存到request对象中,key为所保存的对象指定一个关键字。若保存的两个对象关键字相同,则先保存的对象被清除。request对象可以通过Object

getAttribute(String

key)方法获取请求域(如:forward转发)中的关键字为key的对象(属性值)。在实际工程中,request对象经常用于存储、传递本次请求的处理结果。【例3-3】编写两个JSP页面example3_3.jsp和example3_3_1.jsp,在example3_3.jsp页面中输入一个整数提交给example3_3_1.jsp页面求平方。当输入值非整数时,在example3_3_1.jsp页面中使用request对象的setAttribute(String

key,Objectobj)方法将错误消息存储到request对象中,同时使用forward标记转发到example3_3_1.jsp页面并显示错误消息。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

3.1.3中文乱码问题如果在例3-1的example3_1.jsp页面的文本框中输入中文姓名,那么getValue.jsp页面获得的姓名可能是乱码。如果出现中文乱码,可以使用request对象的setCharacterEncoding(String

code)设置统一字符编码,其中参数code以字符串形式传入要设置的编码格式,但这种方法仅对于提交方式是post的表单(表单默认的提交方式是get)有效。例如:使用该方法解决例3-1中的getValue.jsp页面出现的中文乱码问题,需要完成两件事:首先,将example3_1.jsp中的表单提交方式改为“post”,具体代码如下:

<formaction="getValue.jsp"method="post">

其次,在getValue.jsp中获取表单信息之前设置统一编码,具体代码如下:

request.setCharacterEncoding("UTF-8");《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

3.1.4实践环节——获取客户端的基本信息编写1个JSP页面practice3_1.jsp,在该页面中使用request的方法获取客户端的IP地址、客户机名称、服务器名称以及服务器端口号。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

学习目的与要求《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

3.1request对象3.2response对象3.3out对象3.4session对象3.5application对象3.6pageContext对象3.7page对象3.8config对象3.9exception对象3.10JSP的4种作用域3.2response对象当客户端请求服务器的一个页面时,会提交一个HTTP请求,服务器收到请求后,返回HTTP响应。request对象对请求信息进行封装,与request对象对应的对象是response对象。response对象的类型为jakarta.servlet.http.HttpServletResponse,对客户端的请求做出动态响应。动态响应通常有:动态改变contentType属性值、设置响应表头和response重定向。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

3.2.1动态改变contentType属性值JSP页面用page指令标记设置了页面的contentType属性值,response对象按照此属性值的方式对客户端做出响应。在page指令中只能为contentType属性指定一个值。如果想动态改变contentType属性值,换一种方式来响应客户端,可以让response对象调用setContentType(String

s)方法来重新设置contentType的属性值。【例3-4】编写1个JSP页面example3_4.jsp,客户端通过单击页面上的不同按钮,可以改变页面响应的MIME类型。当单击“word”按钮时,JSP页面动态改变contentType的属性值为application/msword,在内置的浏览器中,启用本地的word软件来显示当前页面内容;当单击“excel”按钮时,JSP页面动态改变contentType的属性值为application/vnd.ms-excel,浏览器启用本地的excel软件来显示当前页面内容。页面效果如图3.1(a)~3.1(c)所示。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

3.2.2设置响应表头response对象可以通过方法setHeader(String

name,String

value)设置指定名字的HTTP文件头值,以此来操作HTTP文件头。如果希望某页面每3秒钟刷新一次,那么在该页面中添加如下代码:response.setHeader("refresh","3");有时候希望从当前页面几秒钟后自动跳转到另一个页面。比如:打开one.jsp页面3秒钟后,自动跳转到another.jsp页面(one.jsp与another.jsp在同一个Web服务目录下)。这该如何实现呢?只需要为one.jsp设置一个响应头即可,也就是在one.jsp页面中添加如下代码:response.setHeader("refresh","3;url=another.jsp");【例3-5】编写1个JSP页面example3_5.jsp,在该页面中使用response对象设置一个响应头“refresh”,其值是“3”。那么用户收到这个头之后,该页面会每3秒钟刷新一次。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

3.2.3response重定向需要将客户端引导至另一个页面时,可以使用reponse对象的sendRedirect(String

url)方法实现客户端的重定向。例如客户端输入的表单信息不完整或有误时,应该再次被重定向到输入页面。【例3-6】编写两个JSP页面login.jsp和validate.jsp,如果在页面login.jsp中输入正确的密码“nihao2023”,单击按钮后提交给页面validate.jsp,如果输入不正确,重新定向到login.jsp页面。先运行login.jsp页面,页面效果如图3.2(a)~3.2(b)所示。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

3.2.4实践环节——登录验证编写3个JSP页面login_1.jsp、server.jsp和loginSuccess.jsp。在页面login_1.jsp中输入用户名和密码,单击“提交”按钮将输入的信息提交给页面server.jsp。在server.jsp页面中进行登录验证:如果输入正确(用户名“zhangsan”,密码“123”),提示“成功登录,3秒钟后进入loginSuccess.jsp页面”,如果输入不正确,重新定向到login_1.jsp页面。先运行login_1.jsp页面,页面运行效果如图3.3(a)~3.3(c)所示。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

学习目的与要求《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

3.1request对象3.2response对象3.3out对象3.4session对象3.5application对象3.6pageContext对象3.7page对象3.8config对象3.9exception对象3.10JSP的4种作用域3.3out对象out对象的类型为jakarta.servlet.jsp.JspWriter,是一个输出流,用来向客户端浏览器输出数据。【例3-7】编写1个页面example3_7.jsp,在该页面中使用out对象输出信息。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

号方

法功

明1voidclear()

清除缓冲区的内容2voidclearBuffer()清除缓冲区的当前内容3voidflush()

清空流4intgetBufferSize()

返回缓冲区字节数,如不设缓冲区则返回05intgetRemaining()

返回缓冲区剩余大小6booleanisAutoFlush()返回缓冲区满时,是自动清空还是抛出异常7voidclose()关闭输出流8voidprint()

输出各种数据类型9voidnewLine()

输出一个换行符学习目的与要求《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

3.1request对象3.2response对象3.3out对象3.4session对象3.5application对象3.6pageContext对象3.7page对象3.8config对象3.9exception对象3.10JSP的4种作用域3.4session对象浏览器与Web服务器之间使用Http协议进行通信。Http是一种无状态协议,客户端向服务器发出请求(request),服务器返回响应(response),连接就被关闭了,在服务器端不保留连接的相关信息。所以服务器必须采取某种手段来记录每个客户端的连接信息。Web服务器可以使用内置对象session来存放有关连接的信息,session对象的类型为jakarta.servlet.http.HttpSession。session对象指的是客户端与服务器端的一次会话,从客户端连到服务器端的一个Web应用程序开始,直到客户端与服务器端断开为止。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

3.4.1session对象的IDWeb服务器会给每一个用户自动创建一个session对象,为每个session对象分配一个唯一标识的String类型的session

ID,这个ID用于区分其他用户。这样每个用户都对应着一个session对象,不同用户的session对象互不相同。session对象调用getId()方法就可以获取当前session对象的ID。【例3-8】编写3个JSP页面example3_8_1.jsp、example3_8_2.jsp和example3_8_3.jsp,其中,example3_8_2.jsp存放在目录tom中,example3_8_3.jsp存放在目录cat中。用户首先访问example3_8_1.jsp页面,从该页面链接到example3_8_2.jsp页面,然后再从example3_8_2.jsp页面链接到example3_8_3.jsp。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

3.4.2session对象存取数据使用session对象可以保存用户在访问某个Web服务期间的有关数据。有关处理数据的方法如下:

public

void

setAttribute(Stringkey,Objectobj)将参数obj指定的对象保存到session对象中,key为所保存的对象指定一个关键字。若保存的两个对象关键字相同,则先保存的对象被清除。

publicObjectgetAttibute(Stringkey)获取session中关键字是key的对象。

publicvoidremoveAttribute(Stringkey)从session中删除关键字key所对应的对象。

publicEnumerationgetAttributeNames()产生一个枚举对象,该枚举对象可使用方法nextElemets()遍历session中各个对象所对应的关键字。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

3.4.2session对象存取数据【例3-9】使用session对象模拟在线考试系统。编写3个JSP页面example3_9_1.jsp、example3_9_2.jsp和example3_9_3.jsp,在example3_9_1.jsp页面中考试,在example3_9_2.jsp页面中显示答题结果,在example3_9_3.jsp页面中计算并公布考试成绩。首先运行example3_9_1.jsp页面,效果如图3.5(a)~3.5(c)所示。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

3.4.3session对象的生存期限一个用户在某个Web服务中session对象的生存期限依赖于以下几个因素: 用户是否关闭浏览器。

session对象是否调用invalidate()方法。

session对象是否达到设置的最长“发呆”时间。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

号方

法功

明1longgetCreationTime()

返回session创建时间2longgetLastAccessedTime()返回此session里客户端最近一次请求时间3intgetMaxInactiveInterval()

返回两次请求间隔时间(单位是秒)4voidinvalidate()

使session失效5booleanisNew()判断客户端是否已经加入服务器创建的session6voidsetMaxInactiveInterval()设置两次请求间隔时间(单位是秒)3.4.3session对象的生存期限【例3-10】编写1个JSP页面example3_10.jsp。如果用户是第一次访问该页面,会显示欢迎信息,并输出session对象允许的最长发呆时间、创建时间,以及session对象的ID。在example3_10.jsp页面中,session对象使用setMaxInactiveInterval(int

maxValue)方法设置最长的“发呆”状态时间为10秒。用户如果两次刷新间隔时间超过10秒,用户先前的session被取消,用户将获得一个新的session对象。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

3.4.4实践环节——购物车用户到便民超市采购商品,购物前需要先登录会员卡号,购物时先将选购的商品放入购物车,最后到柜台清点商品。请借助于session对象模拟购物车,并存储客户的会员卡号和购买的商品名称。会员卡号输入后可以修改,购物车中的商品可以查看。编写程序模拟上述过程。loginID.jsp实现会员卡号输入,shop.jsp实现商品导购,food.jsp实现商品购物,count.jsp实现清点商品。本节实践环节的4个JSP页面都保存在目录practice4中,先运行loginID.jsp页面。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

学习目的与要求《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

3.1request对象3.2response对象3.3out对象3.4session对象3.5application对象3.6pageContext对象3.7page对象3.8config对象3.9exception对象3.10JSP的4种作用域3.5.1什么是application不同用户的session对象互不相同,但有时候用户之间可能需要共享一个对象,Web服务器启动后,就产生了这样一个唯一的内置对象application。application对象实现了jakarta.servlet.ServletContext接口。任何用户在访问同一个Web服务的各个页面时,共享一个application对象,直到服务器关闭,这个application对象才被取消。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

3.5.2application对象存取数据application同session对象一样也可以进行数据存取,处理数据的方法如下:

publicvoidsetAttribute(Stringkey,Objectobj)将参数obj指定的对象保存到application对象中,key为所保存的对象指定一个关键字。若保存的两个对象关键字相同,则先保存的对象被清楚。

publicObjectgetAttribute(Stringkey)获取application中关键字是key的对象。

publicvoidremoveAttribute(Stringkey)从application中删除关键字key所对应的对象。

publicEnumerationgetAttributeNames()产生一个枚举对象,该枚举对象可使用方法nextElemets()遍历application中各个对象所对应的关键字。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

3.5.2application对象存取数据【例3-11】用application对象模拟“成语接龙”,用户通过example3_11_1.jsp向example3_11_2.jsp页面提交四字成语,example3_11_2.jsp页面获取成语内容后,用同步方法将该成语内容和以前的成语内容进行连接,然后将这些四字成语内容添加到application对象中。页面运行效果如图3.8(a)~3.8(b)所示。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

3.5.3实践环节——网站访客计数器使用application对象实现网站访客计数器的功能。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

学习目的与要求《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

3.1request对象3.2response对象3.3out对象3.4session对象3.5application对象3.6pageContext对象3.7page对象3.8config对象3.9exception对象3.10JSP的4种作用域3.6pageContext对象pageContext对象即页面上下文对象,表示当前页面运行环境,用于获取当前JSP页面的相关信息,它的作用范围为当前JSP页面。pageContext对象的类型为jakarta.servlet.jsp.PageContext。pageContext对象可以访问当前JSP页面的所有内置对象,如表3.4所示。另外,pageContext对象提供了存取属性方法,如表3.5所示。《JavaWeb

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论