第3章 Servlet基础
第3章 使用Servlet处理HTTP响应
HelloWord Servlet中产生的HTML标记
产生的标记 <html> <head> <title>Hello World!</title> </head> <body> <h1> Hello World!</h1> </body> </html> HelloWorld.java代码 out.println(“<html>”); out.println(“<head>”); out.println(“<title>Hello World!</title>”); out.println(“</head>”); out.println(“<body>”); out.println(“<h1> Hello World!</h1>”); out.println(“</body >”); out.println(“</html >”);
3.2.1 HTTP状态码
100-199:表示信息性代码,标示客户 端应该采取的其他动作,请求正在进行。 200-299:表示客户请求成功。 300-399:表示用于已经移走的资源文 件,指示新的地址。 400-499:表示由客户端引发的错误。 500-599:表示由服务器端引发的错误。
代码保存为ResponseHeader.java,编译后 放在book Web应用程序的/WEBINF/classes/com/book目录下 在web.xml文件4E2D添加ResponseHeader Servlet的部署映射到/RespondHeader,重 新装载book Web应用程序,然后浏览 http://localhost:8080/book/ResponseHead er
语言程序设计资料:Servlet基础
2020年12月15日
14
3、开发部署一个简单的servlet
参看书的代码:HelloWorld.java
2020年12月15日
15
4、Servlet 的生命周期 包括加载、实例化、初始化、处理客户请求和卸载几个阶段
Client (Browser)
Request Response
init()
service() destroy()
HTTPServletRequest接 口
说明
提供Servlet接口的HTTP指定 的实现. 提供处理客户请求的方法.
HTTPServletResponse接口 通过 HTTPServletResponse 接 口对象 , 以HTML页面形式把应答 发给客户
ServletConfig类
用于存储 servlets 启动配置和 初始化参数值
GenericServlet类是Servlet接口的 一个抽象实现
HttpServlet类则针对HTTP协议这 一特定的应用层协议进行了基本 的实现
MyHttpServlet类继承HttpServlet 的基本特性,并根据需要重写部分 代码
2020年12月15日
13
Class/Interface 名 HTTPServlet 类
由防止频繁的磁盘读取,提高了系统的性能
2020年12月15日
5
Servlets 和 Applets比较:
Applets: 是嵌套在 Web 页面中的程序 要求对 Java使能的浏览器 下载化费许多时间
Servlets: 在 Web 服务器执行, 克服了下载时间问题 不需要 Java 使能的浏览器
2020年12月15日
WEB服务器将响应返回给客户端
Java基础知识Servlet基础知识学习(三)
Java根底知识Servlet根底知识学习〔三〕您所在的位置:首页 > IT干货资料 > java > 【Java根底知识】Servlet根底知识学习〔三〕【Java根底知识】Servlet根底知识学习〔三〕发布: java培训来源:Java培训干货资料2022-09-28 20:48:09 阅读() 分享手机端入口五、使用Servlet的优点1、运行效率高Servlet在Servlet容器中是单进程运行的(即:单例模式),即使屡次访问同一个Servlet,Servlet容器也只需在第一次访问时,加载一次Servlet实例到容器的地址空间中;对于以后的每次访问,Servlet容器会自动为它所接收的每个Servlet请求创立一个新线程处理请求,响应结束后,Servlet容器会立即结束线程。
只有在Servlet发生改变时,才会重新加载Servlet,而且加载一个修改后的Servlet无需重新启动效劳器,以提高Servlet运行效率。
2、标准的API接口SUN公司为Servlet的开发提供了一套标准的Servlet API,以保证Servlet开发的一致性,这一套标准API最大的优点是与网络协议无关,其次,可扩展性强,简单易用,可以通过继承机制,快速地增强功能。
在Servlet API中,没有包含以下内容,使Servlet的应用范围更加广泛:(1)网络传输所使用的协议(2)Servlet的加载方式(3)Servlet的效劳器环境因为Servlet API需要被嵌入到多种类型的效劳器中,如果包含以上三点,那么Servlet的应用范围就要受到限制。
3、其他优点Servlet使用Java开发,它具有Java语言的所有优点,如:良好的可移植性,可以“一次编译,处处运行〞。
Servlet可以单独为客户端提供效劳,也可以在html或jsp页面中被调用。
Servlet可以从本地磁盘加载,也可以通过网络远程加载。
Servlet基础
Servlet基础
第三章 servlet基础
⼀、什么是servlet?
1、servlet是java类
2、符合sevlet的编写规则
a)实现⼀个接⼝:Servlet
b)继承⼀个类:HttpServlet
3、运⾏在servlet容器中(servlet服务器)
⼆、servlet的⽣命周期
1、在第⼀个请求到达的时候,实例化⼀个servlet对象(例如说第⼀个⼯⾏的客户到达的时候,⼯⾏的⼯作⼈员就出⽣了)
2、实例化之后进⾏初始化,调⽤init()⽅法(⼯⾏的⼯作⼈员换⾐服,整理办公室)
3、启动服务,调⽤service()⽅法(⼯⾏的⼯作⼈员对客户进⾏服务)
4、在第⼆次开始,每次直接调⽤服务
5、在服务器关闭的时候,或者主动调⽤destroy(),销毁servlet的对象
三、servlet创建的过程
1、创建⼀个java类
2、继承⾃HttpServlet,重写以下2个⽅法
a)doGet:针对客户端的get请求⽅式
b)doPost:针对客户端的post请求⽅式
3、在web.xml(关于本项⽬的配置)中进⾏配置
四、servlet输出页⾯
1、使⽤PrintWriter对象
2、怎么输出,换⾏需要使⽤
标签
3、乱码问题,以下两种⽅式都可以
五、向servlet传输数据
客户端和服务器之间传输数据,使⽤form表单
1、取得数据
2、对于乱码:使⽤post⽅式提交,设置请求的编码格式
3、servlet跳转到页⾯。
3.Servlet基础
2013年7月21日
内容
练习项目(用户管理)演示 动态网站开发技术 Servlet技术简介
动态网站开发技术
CGI ASP PHP(LAMP) Servlet(JSP) Flex B/S vs C/S
Servlet简介
何为Servlet?
Servlet是一种服务器端的Java应用程序,具有独 立于平台和协议的特性,可以生成动态的Web页面 。 它担当客户请求(Web浏览器或其他HTTP客 户程序)与服务器响应(HTTP服务器上的数据库 或应用程序)的中间层。 Servlet是位于Web 服 务器内部的服务器端的Java应用程序,与传统的从 命令行启动的Java应用程序不同,Servlet由 Web服务器进行加载,该Web服务器必须包含支 持Servlet的Java虚拟机。
Servlet工作模式
客户端发送请求至服务器 服务器启动并调用Servlet,Servlet根据 客户端请求生成响应内容并将其传给服务器 服务器将响应返回客户端
JSP与Servlet的关系
JavaServer Pages(JSP)是一种实现普 通静态HTML和动态HTML混合编码的技术 ,JSP并没有增加任何本质上不能用 Servlet实现的功能。但是,在JSP中编写 静态HTML更加方便,不必再用println语 句来输出每一行HTML代码。更重要的是, 借助内容和外观的分离,页面制作中不同性 质的任务可以方便地分开:比如,由页面设 计者进行HTML设计,同时留出供Servlet 程序员插入动态内容的空间。的目录结构
目录 /helloapp 描述 Web应用的根目录, 所有的 JSP和HTML文件 都存放于此 目录下 /helloapp/WEB-INF 存放Web应用的发布描述文件 web.xml /helloapp/WEBINF/classes /helloapp/WEBINF/lib 存放各种class文件, Servlet 类文件也放于此目录下 存放Web应用所需的各种JAR 文件
Servlet-基础
Softeem Consultancy Service
Servlet的出现
随着动态网页技术的日益发展,1995年Sun公司首先将Java 引入,servlet这个词是在Java applet的环境中创造的, Java applet是一种当作单独文件跟网页一起发送的小程 序,它通常用于在客户端运行,结果得到为用户进行运 算或者根据用户互作用定位图形等服务。 服务器上需要一些程序,常常是根据用户输入访问 数据库的程序。这些通常是使用公共网关接口(CGI)应 用程序完成的。然而,在服务器上运行Java,这种程序 可使用Java编程语言实现。在通信量大的服务器上, Java servlet的优点在于它们的执行速度更快于CGI程序。 各个用户请求被激活成单个程序中的一个线程,而创建 单独的程序,这意味着各个请求的系统开销比较小。
Softeem Consultancy Service
功能强大 可以完成很多传统的CGI程序很难做到的事情。 可移植性好 Servlet API具有完善的标准。
Sof类型
Servlet (与协议无关的Servlet) Filter (过滤器)
Softeem Consultancy Service
第一章
Servlet基础
Softeem Consultancy Service
本章任务
为什么要Servlet(它出现的历史原因,它解决了 什么问题) Servlet简介 Servlet组件类型 Servlet工作原理 Servlet生命周期 小结
创建Servlet实例时,会调用init()方法,针对每个 用户请求都会创建一个线程,该线程调用前面创建实 例的service()方法,由service()方法依据接收到的 HTTP请求的类型,调用相应的doXxx方法,比如
《JavaWeb课件:Servlet知识点详解》
Servlet的作用
通过Servlet,服务器可以根据 请求来生成响应结果进行返回, 从而实现服务器端的程序处理。
Java环境和Web容器
在使用Servlet之前,需要具备 基本的Java编程能力,并且需 要使用Web容器来提供Servlet 服务。
《Java Web课件:Servlet 知识点详解》
本课件详细讲解Java Web开发中的Servlet,包括基本概念、请求与响应、生 命周期、注解与配置、会话管理、过滤器与监听器及相关案例。
认识Servlet
Java Web课件
Java Web是使用Java技术进 行网络编程的一种方式。
Servlet是什么?
过滤器可以在HTTP请求到达目标资源之前,预先过滤一些请求,可以进行请求内 容的修改和重写。
2 过滤器的使用
在web.xml配置文件中,定义过滤器的名称、URL模式等,也可以使用注解等方 式进行配置和使用。
3 监听器的作用
监听器可以用于监视Servlet容器的一些状态和行为,如Session的创建和销毁等。
Servlet的生命周期
初始化过程
在Servlet被创建后,容器会自动调用init()方法,并传进一个ServletConfig对象。
服务处理过程
一旦容器调用了Servlet的init()方法,就可以接收请求并处理请求,此时Servlet实例会处于多个状态之 下。
销毁过程
Servlet实例会在某个时刻被销毁,此时容器会调用Servlet实例的destroy()方法。
Servlet的重定向和转发
Servlet编程基础
北京共达网高技术开发有限公司 BCNC
第三章 Servlet结构
♦ HTML请求类型 请求类型 ♦ 生成纯文本的 生成纯文本的Servlet ♦ 生成 生成HTML的Servlet 的
Servlet编程基础 Servlet编程基础
BCNC
北京共达网高技术开发有限公司 BCNC
第一章 Servlet简介 简介
♦ 什么是 什么是Servlet ♦ Servlet如何工作 如何工作 ♦ Servlet特点 特点 ♦ Servlet容器 容器
BCNC
北京共达网高技术开发有限公司 BCNC
BCNC
北京共达网高技术开发有限公司 BCNC
Servlet接口 接口
♦ public String getServletInfo()
此方法返回一个String对象,该对象包含servlet的信 此方法返回一个String对象,该对象包含servlet的信 String对象 servlet 例如开发者、创建日期、描述信息等。 息,例如开发者、创建日期、描述信息等。该方法也 可用于容器。 可用于容器。
此方法返回一个Enumeration对象,包含对应请求的所有参数名字列表。
BCNC
北京共达网高技术开发有限公司 BCNC
HttpServletResponse接口
♦ servlet容器提供一个实现该接口的对象并通过 容器提供一个实现该接口的对象并通过
service()方法将它传递给 方法将它传递给servlet。通过此对象 方法将它传递给 。 及其方法, 可以修改响应头并返回结果。 及其方法,servlet可以修改响应头并返回结果。 可以修改响应头并返回结果
BCNC
北京共达网高技术开发有限公司 BCNC
Servlet基础
ISO-8859-1 编码。
注意,有另一个向浏览器发送数据的方法叫 getOutputStream(),但这个方法是用于发送二进制数据的。
因此大多数情况下使用的是 getWriter(),而非 getOutPutStream()。
不要调用错了方法。
在向客户端发送响应时,大多数时候是将它作为 HTML 发送。
在发送任何 HTML 标签前,应该先调用 setContentType() 方法,设置响应的内容类型,并将“text/html”作为参数传入。
这是告诉浏览器,所发送给它的数据内容是 HTML 格式内容。
ServletConfig当容器初始化 Servlet 时,Servlet 容器会给 Servlet 的 init() 方法传入一个ServletConfig 对象。
ServletConfig 对象中封装这由 @WebServlet 注解或者部署描述符传给 Servlet 的配置信息。
这样传入的每一条信息就叫做初始化参数,一个初始化参数由 key 和value 组成。
为了获得 Servlet 的初始化参数,可以从容器传给 Servlet 的 ServletConfig 对象中调用getInitParameter() 方法来获得。
1. @WebServlet(name="HelloServlet",2. urlPatterns ={"/hello.do"},3. initParams ={4. @WebInitParam(name="author", value="ben"),5. @WebInitParam(name="email", value ="hemiao3000@")6. })ServletContextServletContext 代表着 WebbApp。
每个 WebApp 只有一个 ServletContext 对象。
第3章 HTTP和Servlet基础
3.4.3在<SERVLET>标记中指定Servlet
建议在Java服务器页面(JSP)文件中使用 <SERVLET>标记。如:
<SERVLET NAME="myservlet" CODE="myservlet.class“ CODEBASE="url" initparm1="value"> <PARAM NAME="parm1" VALUE="value"> </SERVLET> NAME属性指定了Servlet的名称,或不带.class扩展名 的Servlet类名。 CODE属性指定了Servlet类名。
3.4.2在<FORM>标记中指定Servlet
可以在 <FORM> 标记中调用 Servlet。 例如:
<FORM METHOD="GET" ACTION="/servlet/myservlet"> <OL> <INPUT TYPE="radio" NAME="broadcast" VALUE="am">AM<BR> <INPUT TYPE="radio" NAME="broadcast" VALUE="fm">FM<BR> </OL> (用于放置文本输入区域的标记、按钮和其它的提示符。) </FORM>
对于那些需要多次提交数据才能完成的 Web操作比如购物车来说,就成问题了。 这种情况下,应用程序必须跟踪由同一 个浏览器发出的多个请求所提供的信息, 即记住用户的交易状态。
Servlet知识点
幼儿园教师2024年工作计划新学期又开学了,为了更好的进行本期个人工作,特制定计划如下:一、指导思想更新观念,以《纲要》和《规程》为指导,自觉遵守园的规章制度,服从上级领导安排,做好本职工作,加强政治学习,提高自己思想政治素质,树立良好的形象和科学的儿童观、教育观,使幼儿的身心健康发展。
二、保教工作方面:1、继续深入学习《纲要》,并根据〈纲要〉中精神,不断提高自身素质和业务水平,对幼儿进行全面培养。
2、在教学中为幼儿创设轻松、愉快的学习环境,结合主题加强环境与教育的互动与结合。
3、创设良好的语言氛围,鼓励幼儿大胆发表自己的见解,使幼儿想说、敢说,发展幼儿的交往能力和语言表达能力。
4、按时完成本园的教学任务,及其他工作安排,让幼儿在愉快游戏中学习,培养幼儿学习兴趣。
5、抓好幼儿日常生活常规工作,在各项环节中,培养幼儿良好的生活习惯及自立能力,让幼儿身心得到健康发展。
三、保健方面:1、充分利用自然因素,开展体育游戏、户外体能活动,锻炼幼儿身体,增强幼儿体质。
2、合理安排幼儿在园生活,培养幼儿良好生活卫生习惯。
3、在日常生活中,加强安全教育,提高幼儿自我保护意识。
四、家园共育方面:1、充分利用晨间接待和放学的短暂时间,积极主动地与家长沟通,使家长了解自己孩子在园的情况,在家长的配合下实现家园共育,促进幼儿的全面发展。
2、利用宣传栏、家园联系手册、电话以及家庭短信箱等途径,与家长沟通联系,及时向家长反馈幼儿在园的学习、生活情况。
3、家访了解幼儿的家庭教育环境,耐心听取家长合理正确的意见和建议,互相配合共同教育幼儿,使幼儿的健康成长!幼儿园教师2024年工作计划(二)2024年幼儿园教师工作计划一、教育理念与目标作为一名幼儿园教师,我始终坚持以儿童为中心的教育理念,致力于培养幼儿积极向上、健康快乐的发展。
我的工作目标是通过创设良好的教育环境,提供多样化、富有趣味性的学习经验,激发幼儿的自主性和探索精神,培养他们的社交能力、创造力和思维能力,为他们的全面发展奠定坚实基础。
语言程序设计资料:Servlet基础
Servlet类提供了针对HTTP请求的输入数据的分 析和预处理功能,并且支持会话跟踪和COOKIE。
减少服务器和网络上的开销。Servlet的主要用 途就是括展WEB服务器的功能,提供一个安全的、 可移植的、易于使用的CGI替代品。
out.println("<body bgcolor=\"#ffffff\">"); out.println("<p>HelloWorld!</p>");
out.println("</body></html>");
} 2020年12月15日
26
5、获取Servlet信息 获取初始化参数 Public String getInitParameter(String name) Public Enumeration getInitParameterNames() 获取Servlet配置名称 Public String getServletName()
response.setContentType("text/html; charset=GBK");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>A Basic HttpServlet</title></head>");
2、Servlet容器会生成一个线程,同时把客 户请求包装成HttpServletRequest对象,并调 用Servlet实例的service()方法
Servlet技术基础知识
1. Servlet读取文件
在这个例子中将要读取一个文本文件的内容,并 且在页面上打印文件的内容。 FileRead.java web.xml
2. IP访问filter
开发一个过滤器需要通过下面三个基本步骤:
编写过滤器的功能代码,即实现功能的代码类 把编译成功的过滤器功能代码类文件复制到当前应 用项目的WEB-INF/classes目录下 在当前应用项目的web.xml文件中对过滤器进行配 置,即在web.xml中添加配置信息
3. 转换字符编码filter
1. 通过表单提交调用Servlet
在通过提交表单调用Servlet的时候,只需要把表 单的action指向对应的Servlet即可 下面是一个简单的表单,通过这个表单可以调用 指定的Servlet form.jsp AcceptForm.java web.xml
2. 通过超链接调用Servlet
初始化: 初始化:当一个Servlet被第一次请求的时候,Servlet引擎 就调用init()方法初始化这个Servlet,而且这个对象一直在 内存中活动,Servlet为后续的客户请求新建线程,直接调用 Servlet中的service()方法提供服务,不再初始化Servlet 提供服务: 提供服务:当Servlet对象被创建以后,就可以调用具体的 service()方法为用户提供服务 销毁: 销毁:当服务器遇到问题需要重新启动的时候,这些对象就 需要被销毁,这时候Servlet引擎就会调用Servlet的 destroy()方法把内存中的Servlet对象销毁
Java Web程序设计任务教程第3章 Servlet基础
掌握
了解Servlet的
熟悉使用Eclipse 工具开发Servlet
3
生命周期
2
目录
Servlet概述
Servlet开发入门
☞点击查看本小节知识架构
Servlet应用
☞点击查看本小节知识架构
ServletConfig和ServletContext
☞点击查看本小节知识架构
Servlet基础
随着Web应用业务需求的增多,动态Web资源的开发变得越来越重要。
3.2 Servlet开发入门
Servlet的生命周期
在Java中,任何对象都有生命周期,Servlet也不例外,接下来,通过一张图来 描述Servlet的生命周期,如图所示。
右图描述了Servlet的生命周期。按 照功能的不同,大致可以将Servlet 的生命周期分为三个阶段,分别是 初始化阶段、运行阶段和销毁阶段。
除了上述几点外,Servlet还具有功能强大、能够在各个程序之间共享数据、安 Servlet开发入门
Servlet接口及其实现类
针对Servlet技术的开发,SUN公司提供了一系列接口和类,其中最重要的接口 是javax.servlet.Servlet。在Servlet接口中定义了5个抽象方法,具体如表所示。
Servlet技术具有如下特点:
• 方便:Servlet提供了大量的实用工具例程,如处理很难完成的HTML表单数据、读取 和设置HTTP头,以及处理Cookie和跟踪会话等。 • 跨平台:Servlet用Java类编写,可以在不同操作系统平台和不同应用服务器平台下 运行。 • 灵活性和可扩展性:采用Servlet开发的Web应用程序,由于Java类的继承性及构造 函数等特点,使得应用灵活,可随意扩展。
servlet知识点
Servlet知识点一、什么是Servlet1.1 Servlet的定义•Servlet是Java编写的服务器端程序,用于处理客户端(浏览器)的请求并生成响应的动态网页。
•Servlet可以与浏览器进行交互,可以根据不同的请求作出不同的响应。
1.2 Servlet的优势•跨平台性:由于Servlet是基于Java编写的,所以可以在不同的操作系统上运行,如Windows、Linux、Unix等。
•高性能:Servlet通过复用线程、内存缓存等方式,可以提高服务器的性能。
•可移植性:Servlet可以在不同的服务器(如Tomcat、Jetty、WebLogic等)上部署运行,不受特定服务器绑定。
二、Servlet的生命周期2.1 Servlet的生命周期方法Servlet的生命周期由下面三个方法组成: - init方法:在Servlet第一次被创建时调用,用于进行初始化操作。
- service方法:每次请求时都会调用该方法,用于处理客户端的请求并生成响应。
- destroy方法:在Servlet被销毁时调用,用于释放资源。
2.2 Servlet的初始化参数Servlet可以通过web.xml配置文件或注解的方式设置初始化参数,这些参数在Servlet的init方法中可以被访问到。
2.3 Servlet的线程安全性•单例:Servlet是单例的,即每个Servlet只会创建一个实例,多个请求会并发访问同一个Servlet实例。
•线程安全性:对于非线程安全的操作,可以通过synchronized关键字或其他线程安全的方式进行处理。
三、Servlet的请求和响应3.1 Servlet的请求对象(HttpServletRequest)•请求行:包括请求方法(GET、POST等)、请求路径和HTTP协议版本。
•请求头:包含浏览器信息、Cookie、Session等。
•请求体:主要用于传递表单数据或文件上传。
Servlet基础知识详解
Servlet基础知识详解123 4 5 6 7 8 9 10 11 12 13 14 15 16<code class="language-xml hljs "><!--配置Servlet,tomcat服务器会读取其中的内容--><servlet><!--Servlet内部名称,可以自定义,但是最好不要乱写,尽量保证有意义--><servlet-name>写创建的类的名字</servlet-name><!--Servlet类全名,包名+简单类名--><servlet-class>写创建的类的全名(包名+简单类名)</servlet-class></servlet><!--Servlet映射配置--><servlet-mapping><!--Servlet内部名称,可以自定义,但是最好不要乱写,尽量保证有意义,一定要和上面的servlet-name保持一致--><servlet-name>写创建的类的名字</servlet-name><!--Servlet映射路径,也称为访问Servlet的名称--><url-pattern>访问该servlet程序时的URL(例如/first)</url-pattern></servlet-mapping></code>配置tomcat服务器,tomcat启动时会加载webapps目录下的每个web应用的web.xml配置文件将class文件拷贝到tomcat的WEB-INF/classes目录下(拷贝时包括包名),MyEclipse会自动的加载这些内容到指定的目录中,如果不使用工具,则需要手动的加载。
访问方式:http://localhost:8080/Servlet工程名/first 成功访问说明配置正确。
servlet基础详细教程
回顾
Web应用程序在互联网应用中越来越重要。 Web服务器程序是指运行在Web服务器上的 软件程序,其主要功能是负责侦听指定端 口,接收客户端的请求并解析,然后将指 定的页面发送到客户端。 Tomcat是当今使用最为广泛的基于Java的 Web服务器软件,是中小企业应用和学习 Web编程的最佳选择。
该接口扩展ServletRequest接口,定义了一系 列用于描述HTTP请求的方法。
HttpServletResponse
该接口扩展ServletResponse接口,提供服务 器对客户端的响应对象。
HttpSession
该接口提供客户端与服务器端的会话标识。
11
javax.servlet.http包中的类
8
javax.servlet包中的接口
接口名称 Servlet ServletRequest ServletResponse ServletConfig ServletContext 说 明
这是每个Servlet都必须实现的接口,它定义了一系列必 须由Servlet实现的方法。
此接口用于将客户端的请求信息传送给Servlet。
如果客户端是以GET方式提交请求时 执行,应当重写此方法
如果客户端是以POST方式提交请求时 执行,应当重写此方法
当销毁Servlet实例时调用一次,如有 需要释放的资源,可重写该方法
14
javax.servlet.http.HttpServlet(续)
HttpServlet还提供了一些不常用的方法,如有非常特殊的 需要,可考虑重写它们: 方 法 原 型 说 明
protected void doDelete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException protected void doHead(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException protected void doPut(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException protected void doOptions(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 用于删除服务器上的文档,这个方法 由于复杂的策略问题不被广泛支持
第3章_Servlet_编程
Servlet 基础
Servlet 最大的用途是通过动态响应客户机请 求来扩展服务器功能!!!!
Servlet 基础
Servlet工作原理 :
Servlet运行在Web服务器上的Web容器里。Web容 器负责管理Servlet。它装入并初始化Servlet, 管理Servlet的多个实例,并充当请求调度器,将 客户端的请求传递到Servlet,并将Servlet的响 应返回给客户端。Web容器在 Servlet 的使用期 限结束时终结该 Servlet。服务器关闭时,Web容 器会从内存中卸载和除去 Servlet
根据数据是通过GET还是POST请求,分别覆盖doGet()和 doPost().这两个方法都有两个参数,分别为 HttpServletRequest和HttpServletResponse类型。 HttpServletRequest提供访问有关客户端请求信息的方法, 例如表单数据等; HttpServletResponse除了提供用于指定 HTTP应答状态、应答头的方法外,还提供了一个用于向客户端 发送数据的PrintWrite对象。对于简单的Servlet来说,它的大 部分工作是通过PrintWrite对象的println语句生成向客户端发 送的页面。
一. 二. 三. 四.
Servlet 基础
Servlet 编程基本技能√
Servlet 编程高级技能
Servlet Filter 编程
Servlet 编程基本技能
编写响应HTTP请求的Servlet的步骤: (1)创建一个扩展了 javax.servlet.http.HttpServlet接口的Servlet类。 (2)重写doGet()或doPost()方法实现对HTTP请求信 息的动态响应。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3章补充案例案例3-1实现第一个Servlet程序一、案例描述1、考核知识点名称:实现第一个Servlet程序编号:0280030032、练习目标➢掌握实际开发中Servlet程序的基本实现和使用。
3、需求分析由于大多数Web应用都是通过HTTP协议和客户端进行交互,且在实际开发servlet中多是编写基于HTTP协议请求的servlet,在Servlet 接口中,专门提供了一个抽象类javax.servlet.http.HttpServlet,它是GenericServlet的子类(GenericServlet是Servlet接口的实现类),专门用于创建应用于HTTP协议的Servlet。
为了读者可以更好地了解实际开发中的servle程序实现,本案例将演示如何编写基于HTTP协议请求的servlet。
4、设计思路(实现原理)1)创建ServletDemo1类继承Httpservlet类,2)在ServletDemo1中重写开发常用的doGet()方法和doPost()方法并完成处理操作3)在web.xml中配置初始化参数和类的映射4)通过浏览器访问ServletDemo1,展现页面servlet处理响应信息。
二、案例实现编写ServletDemo1,其代码如下:public class ServletDemo1 extends HttpServlet{@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//通过HttpServletResponse对象设置页面响应编码格式resp.setContentType("text/html;charset=UTF-8");// 得到输出流PrinterWriter对象,Servlet使用输出流来产生响应PrintWriter printWriter = resp.getWriter();//通过PrintWriter对象向页面打印信息printWriter.write("实现第一个servlet程序");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}}配置web.xml文件:<servlet><servlet-name>ServletDemo1</servlet-name><servlet-class>cn.heima.chapter3.ServletDemo1</servlet-class> </servlet><servlet-mapping><servlet-name>ServletDemo1</servlet-name><url-pattern>/ServletDemo1</url-pattern></servlet-mapping>启动Tomcat服务器,在地址栏中输入http://localhost:8080/chapter03/ServletDemo1,浏览器显示的结果如下图所示:三、案例总结实现Servlet程序的步骤:1)编写一个类继承HttpServlet类(实际开发多数是基于HTTTP协议请求的);2)覆盖HttpServlet的部分方法,例如,覆盖doGet()或doPost()方法;3)获取HTTP请求信息。
通过HttpServletRequest对象来检索HTML表单所提交的数据或URL 上的查询字符串;4)生成HTTP响应结果。
通过HttpServletResponse对象生成响应结果,它有一个getWriter()方法,该方法返回一个PrintWriter对象,然后通过write()方法写出响应信息。
注意:在使用response.getWrite()方法之前必须使用resp.setContentType("text/html;charset=UTF-8");设置响应信息的编码格式,否者页面会出现中文乱码。
案例3-2 HttpServlet一、案例描述1、考核知识点名称:HttpServlet编号:0280030052、练习目标➢掌握HttpServlet的doGet()方法和doPost()方法3、需求分析由于大多数Web应用都是通过HTTP协议和客户端进行交互,因此,在Servlet 接口中,提供了一个抽象类javax.servlet.http.HttpServlet,它是GenericServlet的子类,专门用于创建应用于HTTP协议的Servlet。
为了读者可以更好地了解HttpServlet,本案例将演示重写HttpServlet中的doGet()方法和doPost()方法打印出九九乘法表。
4、设计思路(实现原理)查看HttpServlet源代码的service()方法,在方法中可以看到get请求调用doGet()方法,post请求调用doPost()方法,那么就可以直接重写doGet()和doPost()不需要重写service()方法了。
1)编写ServletDemo2类,在doGet()方法和doPost()方法中用双重for循环打印九九乘法表2)配置web.xml文件3)编写get.html页面,设置表单提交方式为get,表单页面使用input标签配置一个按钮,单击按钮可以get方式访问ServletDemo2类4)编写post.html页面,设置表单提交方式为post,表单页面使用input标签配置一个按钮,单击按钮可以post方式访问到ServletDemo2类5)通过浏览器分别访问get.html和post.html页面,单击其页面上的按钮,对ServletDemo2 进行访问二、案例实现编写ServletDemo2,其代码如下:public class ServletDemo2 extends HttpServlet {protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {resp.setContentType("text/html;charset=UTF-8");resp.getWriter().print("get提交方式<br/>");for (int i = 1; i <= 9; i++) {for (int j = 1; j <= i; j++) {resp.getWriter().print(j + "*" + i + "=" + j * i+" ");}resp.getWriter().print("<br/>");}}protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {resp.setContentType("text/html;charset=UTF-8");resp.getWriter().print("post提交方式<br/>");for (int i = 1; i <= 9; i++) {for (int j = 1; j <= i; j++) {resp.getWriter().print(j + "*" + i + "=" + j * i+" ");}resp.getWriter().print("<br/>");}}}配置web.xml文件:<servlet><description></description><display-name>ServletDemo2</display-name><servlet-name>ServletDemo2</servlet-name><servlet-class>cn.itcast.chapter03.servlet.ServletDemo2</servlet-class> </servlet><servlet-mapping><servlet-name>ServletDemo2</servlet-name><url-pattern>/ServletDemo2</url-pattern></servlet-mapping>编写get.html文件:<form action="/chapter03/ServletDemo2" method="get"><input type="submit" value="提交"></form>编写post.html文件:<form action="/chapter03/ServletDemo2" method="post"><input type="submit" value="提交"></form>启动Tomcat服务器,在地址栏中输入http://localhost:8080/chapter03/get.html,浏览器显示的结果如下图所示:单击提交按钮,显示的结果如下图所示:在地址栏中输入http://localhost:8080/chapter03/post.html,浏览器显示的结果如下图所示:单击提交按钮,显示的结果如下图所示:三、案例总结1.创建HttpServlet的步骤1)扩展HttpServlet抽象类;2)覆盖HttpServlet的部分方法,例如,覆盖doGet()或doPost()方法;3)获取HTTP请求信息。