《java web开发实践教程》第3章 框架基础-Servlet与JSP技术回顾
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3章 框架基础-Servlet与JSP技术回顾
主要内容
在MyEclipse中创建Web工程 在MyEclipse中编写Servlet 在MyEclipse中编写JSP Servlet常用API EL表达式语言 JSP常用的指令和动 JSTL标准标签库
本章目标
掌握Web应用的文档结构
掌握Servlet的编写和访问
掌握JSP的编写和访问
掌握Servlet常用API
掌握EL表达式语言的使用 掌握JSP常用的指令和动作 掌握JSTL的使用
3.1 创建Web应用
所有JSP和Servlet程序都需要放置在一个合
法有效的Web应用中才能被正确地运行和访 问。 Web应用的目录结构需要满足一定的要求。
3.2.5开发Servlet基本流程
(3)配置Servlet
Servlet编写完之后,作为Web应用的组成部分,需
要在配置文件web.xml中进行配置。具体配置代码 和3.2.4节列出的web.xml文件中的配置代码相同。
3.2.5开发Servlet基本流程
(4)部署Servlet
Servlet编写完成之后,需要部署到服务器才能访问,
3.1.3 Web应用配置或部署
Web服务器必须能够找到应用的根目录才可
以运行这个Web应用,也就是通常所说的需 要把应用发布到服务器上。 有两种方式可以完成发布:
第一种方式需要把应用放在特定的目录下,在
Tomcat中可以把应用放在Tomcat目录下的 webapps下面。 另一种方式是通过配置文件完成,在配置文件中 进行配置,在Tomcat中需要把配置文件放在特定 的目录下。
3.2 Servlet基础
本节主要介绍Servlet的基本概念、原理和开
发步骤。
3.2.1 什么是Servlet
Servlet是用Java语言编写的运行在服务器端
的小应用程序,能够接收Web客户端的请求, 并能对Web客户端进行响应,通常是通过 HTTP(HyperText Transfer Protocol)协议 进行工作的。 可以认为Servlet是服务器端的Applet。只是 Applet运行在客户端,而Servlet运行在服务 器端。
<servlet-name>用于声明Servlet的名字,是web.xml中内部使用
的名字。 <servlet-class>标签:用于声明Servlet所对应的类名。
<servlet-mapping>标签用于进行Servlet映射。其中的子
标签又包括:
<servlet-name>标签:表示Servlet的名字,需要和上面<servlet>
3.1.1 Web应用文档结构
例如,使用images目录存放图片资源,使用
common目录存放共享资源等。 另外,在Web应用中有一个重要的子目录W EB-INF,用于存放服务器的配置文件以及在服 务器端运行的类文件和一些标签文件等,该 目录中的文件是不能通过浏览器访问的。
3.1.1 Web应用文档结构
<Context path="/myweb" docBase="D:\MyEclipse 6.0\workspace\myweb\WebRoot" reloadable="true"/>
配置文件中:path表示Web应用的根路径;docBase表示
Web应用的存放位置;reloadable表示可以在运行时加载 classes与lib文件夹下的类和包。 存放位置: %TOMCAT_HOME%\conf\Catalina\localhost目录下 。
3.1.2创建一个Web工程
利用MyEclipse创建一个Web工程的步骤 如下:
(1)右击鼠标选择NewProject。 (2)工程类型选择MyEclipseJ2EE ProjectsWeb Project。
3.1.2创建一个Web工程
(3) 在Project Name处填写工程名,通常会将工程名默认为 Web应用名。单击Finish按钮,Web工程成功创建完毕。
标签的<servlet-name>子标签中声明的名字保持一致。 <url-pattern>标签:用于配置Servlet的访问地址。
3.2.4 MyEclipse中开发Servlet
(6)测试Servlet的运行:
可以通过以下3种方式进行: 通过在浏览器中直接输入地址访问: http://127.0.0.1:8080/myweb/test/MyServlet 通过超链的形式访问: <a href ="http://127.0.0.1:8080/test/ MyServlet ">第一 个Servlet</a> 通过表单提交的方式访问: <form method=get action="http://127.0.0.1:8080/test/ MyServlet ">
3.1.2创建一个Web工程
利用MyEclipse创建的Web工程:
Web工程中的WebRoot目录即为Web应用的根目
录。所有和Web页面相关的资源都存放在 WebRoot下。 Web工程中的src目录用于存放Java源文件。 Web工程的Context root URL属性即为该Web应 用的上下文路径。
编译好的文件需要放在Web应用的WEBINF\classes下面。 利用MyEclipse创建的Servlet,成功编译后其.class 文件已自动放置到WEB-INF\classes目录下。
发Servlet的过程中某些操作已经由MyEclipse 自动完成,极大的方便了程序员开发程序。 但当脱离集成开发工具时,对开发一个 Servlet的基本流程也应有所了解。
3.2.5开发Servlet基本流程
开发一个Servlet程序基本包括以下几步:
(1)编写Servlet
引入用到的包,需要的导入的包有:javax.servlet.*,
3.2.4 MyEclipse中开发Servlet
启动Tomcat服务器,使用第一种方式,即在浏览器
地址栏中直接输入地址访问: http://localhost:8080/myweb/test/MyServlet 运行效果如下:
3.2.5开发Servlet基本流程
由于MyEcilpse自身具有的强大功能,上面开
服务器启动的时候加载。
3.2.4 MyEclipse中开发Servlet
利用MyEclipse,可以在Web工程中非常方便
地创建Servlet程序,并且可以根据需要为程 序员自动生成其中的大部分方法。程序员只 需在此基础上进行修改就可以快速开发出自 己的程序。
3.2.4 MyEclipse中开发Servlet
3.2.5开发Servlet基本流程
(2)编译Servlet
在MyEcilpse中,.java文件会在保存后自动编译。
若未安装MyEcilpse,则需要程序员手工编译
Servlet。
需要事先把位于%TOMCAT_HOME%\common\lib下的
servlet-api.jar压缩包添加到环境变量中。 使用JDK中的javac命令编译 。
3.1.2创建一个Web工程
利用集成开发工具可以很方便快速的创建
Web应用。 在MyEclipse中,提供了“Web Project”这种 工程类型,生成Web工程后,其中会自动创 建一个有效的Web应用目录,默认根目录名 为WebRoot,并且Web应用应具备的一些基 本目录和文件都会自动生成。
3.2.4 MyEclipse中开发Servlet
(4)查看生成的Servlet源文件: 在Eclipse环境中,创建Servlet时可以选择自动生成 构造方法、init方法、destroy方法、doGet方法和 doPost方法。
3.2.4 MyEclipse中开发Servlet
(5)查看生成的Servlet源文件: MyEclipse会为新建的Servlet在web.xml中应一对<servlet>标 签和一对<servlet-mapping>标签。其中: <servlet>标签用于声明Servlet。其中的子标签又包括:
一个Web应用的文档结构大致如图所示 :
+myweb +各模块子文件夹 +common +images +WEB-INF +classes +lib web.xml
3.1.1 Web应用文档结构
WEB-INF文件夹
WEB-INF目录中主要有如下几个文件夹或文件: classes文件夹:存放本应用的所有类文件以及 properties文件(属性文件)。 lib文件夹:也是用于存放类文件的,只是这些文件都 是以压缩包(.jar)的形式存在的。 web.xml文件:用于描述Web应用的配置信息。
注意:
加载Servlet类、创建对象、调用初始化方法init和销毁 方法destroy都只有一次。 当Web应用被卸载或者服务器被关闭的时候,系统卸载 Servlet,调用destroy方法释放资源。
3.2.3 Servlet运行原理
2.Servlet的加载有两种方式:
第一次请求的时候加载。
3.1.3 Web应用配置或部署
1.部署Web应用
利用MyEclipse的部署功能,可以将Web应用直
接部署到Web服务器上。若使用的是Tomcat服务 器,则默认会部署到Tomcat下的webapps目录下。
3.1.3 Web应用配置或部署
2.配置Web应用 配置Web应用需要制作一个同名(Web应用名)的XML 配置文件。例如:为上面的myweb应用创建同名的配置 文件:myweb.xml,文件内容如下:
javax.servlet.http.*等 定义类的基本框架并继承HttpServlet 重写成员方法。如果需要对Servlet进行初始化,需要 重写init方法。如果需要在卸载Servlet的时候执行一些 功能,可以重写destory方法。一般情况下,根据需要 完成的功能只需要重写服务类方法即可。服务类方法 包括doGet方法和doPost方法等。
3.2.2 Servlet的主要方法
Servlet是一个Java类,通常会有3类方法,
分别是:
init方法,用于初始化。 destroy方法,用于释放资源。 service方法,服务类方法,对用户的请求进行处
理,并对用户进行响应,几乎所有处理功能都在 这里完成。这类方法可以有多个,最常用的是 doGet和doPost方法。
3.2.3 Servlet运行原理
1.Servlet的工作过程如下
① Servlet容器接收到客户端的请求时,先判断用户所请 求的Servlet对象是否存在。如果不存在,则加载Servlet类、 创建Servlet对象并实例化,然后调用init方法进行初始化。 ② 容器创建request和response对象,并且创建一个线程, 调用Servlet对象的service方法(间接调用doGet方法或者 doPost方法)。 ③ service方法产生响应,容器将响应发回客户端。 ④ 容器销毁reqeust和response对象以及相应的线程。
利用MyEclipse开发Servlet的步骤如下: (1)在3.1.2小节中创建的myweb工程的src目录上,右击鼠标,选择 NewServlet。 (2)在Name处输入Servlet名字,如MyServlet,单击Next按钮。
3.2.4 MyEclipse中开发Servlet
(3)在Servlet/JSP Mapping URL处配置Servlet的mapping url信息,如: /test/MyServlet。此处配置的mapping url即为将来访问Servlet时的地址 格式。单击Finish按钮结束。
3.1.1 Web应用文档结构
每个Web应用都有一个根目录。可以把JSP
文件、HTML文件和图片文件等与页面相关的 文件直接放在根目录下。但是为了便于管理, 通常会建立若干子目录把文件进行分类管理。 一般会按照各自功能的不同把Web应用分成 若干个模块,把每个模块相关的文件放在一 个子目录中。
主要内容
在MyEclipse中创建Web工程 在MyEclipse中编写Servlet 在MyEclipse中编写JSP Servlet常用API EL表达式语言 JSP常用的指令和动 JSTL标准标签库
本章目标
掌握Web应用的文档结构
掌握Servlet的编写和访问
掌握JSP的编写和访问
掌握Servlet常用API
掌握EL表达式语言的使用 掌握JSP常用的指令和动作 掌握JSTL的使用
3.1 创建Web应用
所有JSP和Servlet程序都需要放置在一个合
法有效的Web应用中才能被正确地运行和访 问。 Web应用的目录结构需要满足一定的要求。
3.2.5开发Servlet基本流程
(3)配置Servlet
Servlet编写完之后,作为Web应用的组成部分,需
要在配置文件web.xml中进行配置。具体配置代码 和3.2.4节列出的web.xml文件中的配置代码相同。
3.2.5开发Servlet基本流程
(4)部署Servlet
Servlet编写完成之后,需要部署到服务器才能访问,
3.1.3 Web应用配置或部署
Web服务器必须能够找到应用的根目录才可
以运行这个Web应用,也就是通常所说的需 要把应用发布到服务器上。 有两种方式可以完成发布:
第一种方式需要把应用放在特定的目录下,在
Tomcat中可以把应用放在Tomcat目录下的 webapps下面。 另一种方式是通过配置文件完成,在配置文件中 进行配置,在Tomcat中需要把配置文件放在特定 的目录下。
3.2 Servlet基础
本节主要介绍Servlet的基本概念、原理和开
发步骤。
3.2.1 什么是Servlet
Servlet是用Java语言编写的运行在服务器端
的小应用程序,能够接收Web客户端的请求, 并能对Web客户端进行响应,通常是通过 HTTP(HyperText Transfer Protocol)协议 进行工作的。 可以认为Servlet是服务器端的Applet。只是 Applet运行在客户端,而Servlet运行在服务 器端。
<servlet-name>用于声明Servlet的名字,是web.xml中内部使用
的名字。 <servlet-class>标签:用于声明Servlet所对应的类名。
<servlet-mapping>标签用于进行Servlet映射。其中的子
标签又包括:
<servlet-name>标签:表示Servlet的名字,需要和上面<servlet>
3.1.1 Web应用文档结构
例如,使用images目录存放图片资源,使用
common目录存放共享资源等。 另外,在Web应用中有一个重要的子目录W EB-INF,用于存放服务器的配置文件以及在服 务器端运行的类文件和一些标签文件等,该 目录中的文件是不能通过浏览器访问的。
3.1.1 Web应用文档结构
<Context path="/myweb" docBase="D:\MyEclipse 6.0\workspace\myweb\WebRoot" reloadable="true"/>
配置文件中:path表示Web应用的根路径;docBase表示
Web应用的存放位置;reloadable表示可以在运行时加载 classes与lib文件夹下的类和包。 存放位置: %TOMCAT_HOME%\conf\Catalina\localhost目录下 。
3.1.2创建一个Web工程
利用MyEclipse创建一个Web工程的步骤 如下:
(1)右击鼠标选择NewProject。 (2)工程类型选择MyEclipseJ2EE ProjectsWeb Project。
3.1.2创建一个Web工程
(3) 在Project Name处填写工程名,通常会将工程名默认为 Web应用名。单击Finish按钮,Web工程成功创建完毕。
标签的<servlet-name>子标签中声明的名字保持一致。 <url-pattern>标签:用于配置Servlet的访问地址。
3.2.4 MyEclipse中开发Servlet
(6)测试Servlet的运行:
可以通过以下3种方式进行: 通过在浏览器中直接输入地址访问: http://127.0.0.1:8080/myweb/test/MyServlet 通过超链的形式访问: <a href ="http://127.0.0.1:8080/test/ MyServlet ">第一 个Servlet</a> 通过表单提交的方式访问: <form method=get action="http://127.0.0.1:8080/test/ MyServlet ">
3.1.2创建一个Web工程
利用MyEclipse创建的Web工程:
Web工程中的WebRoot目录即为Web应用的根目
录。所有和Web页面相关的资源都存放在 WebRoot下。 Web工程中的src目录用于存放Java源文件。 Web工程的Context root URL属性即为该Web应 用的上下文路径。
编译好的文件需要放在Web应用的WEBINF\classes下面。 利用MyEclipse创建的Servlet,成功编译后其.class 文件已自动放置到WEB-INF\classes目录下。
发Servlet的过程中某些操作已经由MyEclipse 自动完成,极大的方便了程序员开发程序。 但当脱离集成开发工具时,对开发一个 Servlet的基本流程也应有所了解。
3.2.5开发Servlet基本流程
开发一个Servlet程序基本包括以下几步:
(1)编写Servlet
引入用到的包,需要的导入的包有:javax.servlet.*,
3.2.4 MyEclipse中开发Servlet
启动Tomcat服务器,使用第一种方式,即在浏览器
地址栏中直接输入地址访问: http://localhost:8080/myweb/test/MyServlet 运行效果如下:
3.2.5开发Servlet基本流程
由于MyEcilpse自身具有的强大功能,上面开
服务器启动的时候加载。
3.2.4 MyEclipse中开发Servlet
利用MyEclipse,可以在Web工程中非常方便
地创建Servlet程序,并且可以根据需要为程 序员自动生成其中的大部分方法。程序员只 需在此基础上进行修改就可以快速开发出自 己的程序。
3.2.4 MyEclipse中开发Servlet
3.2.5开发Servlet基本流程
(2)编译Servlet
在MyEcilpse中,.java文件会在保存后自动编译。
若未安装MyEcilpse,则需要程序员手工编译
Servlet。
需要事先把位于%TOMCAT_HOME%\common\lib下的
servlet-api.jar压缩包添加到环境变量中。 使用JDK中的javac命令编译 。
3.1.2创建一个Web工程
利用集成开发工具可以很方便快速的创建
Web应用。 在MyEclipse中,提供了“Web Project”这种 工程类型,生成Web工程后,其中会自动创 建一个有效的Web应用目录,默认根目录名 为WebRoot,并且Web应用应具备的一些基 本目录和文件都会自动生成。
3.2.4 MyEclipse中开发Servlet
(4)查看生成的Servlet源文件: 在Eclipse环境中,创建Servlet时可以选择自动生成 构造方法、init方法、destroy方法、doGet方法和 doPost方法。
3.2.4 MyEclipse中开发Servlet
(5)查看生成的Servlet源文件: MyEclipse会为新建的Servlet在web.xml中应一对<servlet>标 签和一对<servlet-mapping>标签。其中: <servlet>标签用于声明Servlet。其中的子标签又包括:
一个Web应用的文档结构大致如图所示 :
+myweb +各模块子文件夹 +common +images +WEB-INF +classes +lib web.xml
3.1.1 Web应用文档结构
WEB-INF文件夹
WEB-INF目录中主要有如下几个文件夹或文件: classes文件夹:存放本应用的所有类文件以及 properties文件(属性文件)。 lib文件夹:也是用于存放类文件的,只是这些文件都 是以压缩包(.jar)的形式存在的。 web.xml文件:用于描述Web应用的配置信息。
注意:
加载Servlet类、创建对象、调用初始化方法init和销毁 方法destroy都只有一次。 当Web应用被卸载或者服务器被关闭的时候,系统卸载 Servlet,调用destroy方法释放资源。
3.2.3 Servlet运行原理
2.Servlet的加载有两种方式:
第一次请求的时候加载。
3.1.3 Web应用配置或部署
1.部署Web应用
利用MyEclipse的部署功能,可以将Web应用直
接部署到Web服务器上。若使用的是Tomcat服务 器,则默认会部署到Tomcat下的webapps目录下。
3.1.3 Web应用配置或部署
2.配置Web应用 配置Web应用需要制作一个同名(Web应用名)的XML 配置文件。例如:为上面的myweb应用创建同名的配置 文件:myweb.xml,文件内容如下:
javax.servlet.http.*等 定义类的基本框架并继承HttpServlet 重写成员方法。如果需要对Servlet进行初始化,需要 重写init方法。如果需要在卸载Servlet的时候执行一些 功能,可以重写destory方法。一般情况下,根据需要 完成的功能只需要重写服务类方法即可。服务类方法 包括doGet方法和doPost方法等。
3.2.2 Servlet的主要方法
Servlet是一个Java类,通常会有3类方法,
分别是:
init方法,用于初始化。 destroy方法,用于释放资源。 service方法,服务类方法,对用户的请求进行处
理,并对用户进行响应,几乎所有处理功能都在 这里完成。这类方法可以有多个,最常用的是 doGet和doPost方法。
3.2.3 Servlet运行原理
1.Servlet的工作过程如下
① Servlet容器接收到客户端的请求时,先判断用户所请 求的Servlet对象是否存在。如果不存在,则加载Servlet类、 创建Servlet对象并实例化,然后调用init方法进行初始化。 ② 容器创建request和response对象,并且创建一个线程, 调用Servlet对象的service方法(间接调用doGet方法或者 doPost方法)。 ③ service方法产生响应,容器将响应发回客户端。 ④ 容器销毁reqeust和response对象以及相应的线程。
利用MyEclipse开发Servlet的步骤如下: (1)在3.1.2小节中创建的myweb工程的src目录上,右击鼠标,选择 NewServlet。 (2)在Name处输入Servlet名字,如MyServlet,单击Next按钮。
3.2.4 MyEclipse中开发Servlet
(3)在Servlet/JSP Mapping URL处配置Servlet的mapping url信息,如: /test/MyServlet。此处配置的mapping url即为将来访问Servlet时的地址 格式。单击Finish按钮结束。
3.1.1 Web应用文档结构
每个Web应用都有一个根目录。可以把JSP
文件、HTML文件和图片文件等与页面相关的 文件直接放在根目录下。但是为了便于管理, 通常会建立若干子目录把文件进行分类管理。 一般会按照各自功能的不同把Web应用分成 若干个模块,把每个模块相关的文件放在一 个子目录中。