Java Web开发基础入门(二)——Servlet简介

Java Web开发入门指南:从基础到实践 Java Web开发涉及更多的概念和技术,如JSP页面开发、数据库集成、Spring框架等。当我们谈论Java Web开发时,我们实际上是指使用Java编程语言和相关技术来创建基于Web的应用程序。在本篇文章中,我们将从基础到实践,逐步介绍Java Web开发的核心概念和关键步骤。在开始Java Web开发之前,我们需要搭建一个适合的开发环境。在这个示例中,我们创建了一个处理GET请求的Servlet。现在我们已经准备好了开发环境,接下来我们将创建一个简单的Java Web应用程序,以演示基本的开发步骤。 阅读详情

Servlet是使用Java Servlet应用程序设计接口及相关类和方法的Java程序。

Servlet通过创建一个框架扩展服务器的能力,采用请求-响应模式提供Web服务。当客户机发送请求至服务器时,服务器将请求信息发送给Servlet,Servlet生成响应内容并将其传给Server,然后再由Server将响应返回给客户端。

一、Servlet的功能:
1、创建并返回一个包含基于客户请求性质的动态内容的完整的 HTML页面。

2、创建可嵌入到现有 HTML 页面中的一部分HTML 页面(HTML 片段)。与其他服务器资源(文件、数据库、Applet、Java应用程序等)进行通信。

3、接受多个客户机的输入,并将结果广播到多个客户机上。例如,Servlet 可以是多参与者的游戏服务器。


4、对特殊的处理采用 MIME 类型过滤数据,例如图像转换和服务器端(包括SSI)。

二、servlet容器:
负责处理客户请求、把请求传送给servlet并把结果返回给客户。不同程序的容器实际实现可能有所变化,但容器与servlet之间的接口是由Servlet API定义好的,这个接口定义了servlet容器在servlet上要调用的方法及传递给servlet的对象类。

三、servlet的生命周期:

1、servlet容器创建servlet的一个实例
2、容器调用该实例的init()方法
3、如果容器对该servlet有请求,则调用此实例的service()方法
4、容器在销毁本实例前调用它的destroy()方法
一旦请求了一个servlet,就没有办法阻止容器执行一个完整的生命周期。

四、Servlet API


1、servlet接口:

public interface Servlet
它的生命周期由javax.servlet.servlet接口定义。当你在写servlet的时候必须直接或间接的实现这个接口。一般趋向于间接实现:通过从javax.servlet.GenericServlet或javax.servlet.http.HttpServlet派生。

在实现servlet接口时必须实现它的五个方法:
init():
public void init(ServletConfig config) throws ServletException


一旦对servlet实例化后,容器就调用此方法。容器把一个ServletConfig对象传统给此方法,这样servlet的实例就可以把与容器相关的配置数据保存起来供以后使用。如果此方法没有正常结束就会抛出一个ServletException。一旦抛出该异常,servlet就不再执行,而随后对它的调用会导致容器对它重新载入并再次运行此方法。接口规定对任何servlet实例,此方法只能被调用一次,在任何请求传递给servlet之前,此方法可以在不抛出异常的情况下运行完毕。

service():
public void service(ServletRequest req,ServletResponse res) throws ServletException,IOException

只有成功初始化后此方法才能被调用处理用户请求。前一个参数提供访问初始请求数据的方法和字段,后一个提供servlet构造响应的方法。

destroy():
public void destroy()

容器可以在任何时候终止servlet服务。容器调用此方法前必须给service()线程足够时间来结束执行,因此接口规定当service()正在执行时destroy()不被执行。

getServletConfig():
public ServletConfig getServletConfig()

在servlet初始化时,容器传递进来一个ServletConfig对象并保存在servlet实例中,该对象允许访问两项内容:初始化参数和ServletContext对象,前者通常由容器在文件中指定,允许在运行时向sevrlet传递有关调度信息,后者为servlet提供有关容器的信息。此方法可以让servlet在任何时候获得该对象及配置信息。

getServletInfo():
public String getServletInfo()

此方法返回一个String对象,该对象包含servlet的信息,例如开发者、创建日期、描述信息等。该方法也可用于容器。


2、HttpServlet类
该类扩展了GenericServlet类并对servlet接口提供了与HTTP更相关的实现。

service():
protected void service(HttpServletRequest req,HttpServletResponse res) throws ServletException,IOException

public void service(HttpServletRequest req,HttpServletResponse res)throws ServletException,IOException

该方法作为HTTP请求的分发器,这个方法在任何时候都不能被重载。当请求到来时,service()方法决定请求的类型(GET,POST,HEAD,OPTIONS,DELETE,PUT,TRACE),并把请求分发给相应的处理方法(doGet(),doPost(),doHead(),doOptions(),doDelete(),doPut(),doTrace())每个do方法具有和第一个service()相同的形式。为了响应特定类型的HTTP请求,我们必须重载相应的do方法。如果servlet收到一个HTTP请求而你没有重载相应的do方法,它就返回一个说明此方法对本资源不可用的标准HTTP错误。

getLatModified():

protected long getLastModified(HttpServletRequest req)
该方法返回以毫秒为单位的的自GMT时间1970年1月1日0时0分0秒依赖的最近一次修改servlet的时间,缺省是返回一个负数表示时间未知。当处理GET请求时,调用此方法可以知道servlet的最近修改时间,服务器就可决定是否把结果从缓存中去掉。

3、HttpServletRequest接口
public interface HttpServletRequest extends ServletRequest

所有实现此接口的对象(例如从servlet容器传递的HTTP请求对象)都能让servlet通过自己的方法访问所有请求的数据。下面是一些用来获取表单数据的基本方法。

getParameter()
public String getParameter(String key)
此方法试图将根据查询串中的关键字定位对应的参数并返回其值。如果有多个值则返回列表中的第一个值。

getParameterValues():
public String[] getParameterValues(String key)
如果一个参数可以返回多个值,比如复选框集合,则可以用此方法获得对应参数的所有值。

getParameterNames():
Public Enumeration getParameterNames()
此方法返回一个Enumeration对象,包含对应请求的所有参数名字列表。

4、HttpServletResponse接口
public interface HttpServletResponse extends servletResponse
servlet容器提供一个实现该接口的对象并通过service()方法将它传递给servlet。通过此对象及其方法,servlet可以修改响应头并返回结果。

setContentType():
public void setContentType(String type)
在给调用者发回响应前,必须用此方法来设置HTTP响应的MIME类型。可以是任何有效的MIME类型,当给浏览器返回HTML是就是”text/html”类型。

getWriter():
public PrintWriter getWriter()throws IOException
此方法将返回PrintWriter对象,把servlet的结果作为文本返回给调用者。PrintWriter对象自动把Java内部的UniCode编码字符转换成正确的编码以使客户端能够阅读。

getOutputStream():
public ServletOutputStream getOutputStream() throws IOException
此方法返回ServletOutputStream对象,它是java.io.OutputStream的一个子类。此对象向客户发送二进制数据。

setHeader():
public void setHeader(String name,String value)
此方法用来设置送回给客户的HTTP响应头。有一些快捷的方法用来改变某些常用的响应头,但有时也需要直接调用此方法。


servlet的性能和效率
一个servlet仅被初始化一次而执行多次,因此极小的低效性也会随着时间的增加而产生很很大的影响。在代码中需要考虑String对象的使用,如果产生HTML响应需要用到很多字符串时,不应该为每一个字符串生成一个String对象,因为这会产生大量的String和StringBuffer对象,造成大量的对象构造消耗和垃圾收集负担,解决的办法是一行一行的把所有需要写入的直接写入PrintWriter中,或者创建一个StringBuffer对象,并使用append()方法将文本加入。

及时回送
有时,程序需要花费很长时间执行,在这种情况下应该回送给客户端一些信息,而不是长时间显示白屏,这可以在执行到一定程度就回送一些东西,可以使用PrintWriter的flush()方法强制将现有的内容回送给浏览器。  

具体关于servlet运行的例子,参看

http://blog.youkuaiyun.com/wasingmon/archive/2006/01/10/575703.aspx

END!

Java Web开发入门与实践:构建一个简单的Web应用 Servlet:Java Web应用的核心技术,Servlet是一种运行在Web服务器上的Java类,用于处理客户端请求并生成响应。:基于Servlet技术的动态网页生成技术,允许在HTML页面中嵌入Java代码。Spring框架:目前最流行的Java Web开发框架,提供了全面的解决方案,如控制反转(IoC)、面向切面编程(AOP)、事务管理等。:用于Java程序与数据库交互的API。:前端开发技术,用于构建用户界面。 阅读详情

相关推荐

Java快速入门系列-8(Web开发基础)

Servlet是Java平台用于扩展Web服务器功能的组件,通过实现接口或继承抽象类来处理客户端HTTP请求并生成响应。Servlet允许开发者编写Java代码来执行复杂的业务逻辑,并根据请求动态生成内容。Servlet生命周期包含了初始化、服务请求和销毁三个阶段。Servlet实例创建与生命周期当客户端首次发起匹配到Servlet的请求时,Servlet容器(如Tomcat)会检查是否存在该Servlet的实例。如果不存在,则创建Servlet实例,并调用其init()方法进行初始化。

赤兔码 1404

微信公众号服务器设置token--servlet

我只是个不懂后台的菜鸡,所以出现了一些很菜鸡的错误,就算跟着大牛抄代码,微信还是没提示我成功,下面是我的一个坑。 1.像微信文档所描述,你需要给一个服务器的url,然后随便写一个token,然后选择加密模式,然后提交。然后你就很随意的写了一个,然后提交,然后就提示“token校验失败”。 然后你就一直在浏览器测试你的地址,可以啊,完全没问题啊,可以访问到啊,what?什么鬼,难道是骗我的,说好

前人挖坑,后人种(pen) 1万+

Java Web开发环境搭建与Servlet入门指南

Java Web开发是现代企业级应用的基础技术栈,其核心在于理解HTTP请求-响应模型与Servlet容器的工作原理。通过配置JDK运行环境和Tomcat服务器,开发者可以快速搭建Java Web开发环境。Servlet作为处理Web请求的核心组件,遵循特定的生命周期管理,配合JSP技术实现动态页面渲染。在企业级开发中,合理的项目结构、代码规范和安全管理是保障系统稳定性的关键。掌握这些基础技术后,开发者可以平滑过渡到Spring Boot等现代框架,构建更复杂的分布式系统。

weixin_33979203的博客 547

使用Servlet搭建微信公众平台后台

这部分其实只有一个技术点,只是对于像我这种菜鸟来说一开始接触有点懵。 首先介绍一下HTTP报文的格式(微信公众平台会向后台发送一个HTTP请求,然后把后台反馈的HTTP响应呈现给用户)。 HTTP请求报文 一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。 request.getParameter("")

瞑灵幻羽城,永夜御风阁 445

java微信公众号实例源码Servlet

java微信公众号实例源码Servlet

优快云积分获取与管理全攻略

技术社区积分系统是知识共享生态的核心激励机制,通过量化用户贡献实现资源交换。其底层逻辑遵循Web2.0时代的UGC经济模型,用户通过内容创作、社区互动等行为积累虚拟资产。在开发者社区场景中,积分体系能有效促进技术文档、工具源码等资源的流通,优快云作为国内头部平台,其积分规则具有典型参考价值。掌握签到策略、内容互动技巧和资源上传规范等实操方法,可系统性提升积分获取效率。2023年新规强化了连续签到奖励和互动质量检测机制,结合GitHub等开源平台资源互补,能构建更高效的技术资源获取路径。

weixin_34233974的博客 217

微信公众号开发者原生态的servlet

                                            微信公众号开发者原生态的servlet                                                       如果想要成功成为微信公众号开发者,那么首先就是要服务器与微信公众号接入 查询公众号开发文档:https://mp.weixin.qq.com/wiki?t=...

qq_27245593的博客 671

VBA一键汇总多个工作簿-名称相同的工作表-的指定区域数据

VBA一键汇总多个工作簿-名称相同的工作表-的指定区域数据 日常工作,我们经常需要汇总相同格式的工作簿的某个工作表的数据 如1月业绩、2月业绩。。。。12月业绩等 姓名 数量 数据22 22 数据23 23 数据24 24 数据25 25 数据26 26 数据27 27 数据28 28 数据29 29 数据30 30 数据31 31 数据32 32 数据33 33 数据34

陈表达的博客 5981

java servlet接收微信公众号消息

公众号消息接收与企业号略有区别,主要在token验证上。

莫语?倾城 1148

历年北京理工大学复试专业综合题

。

A place to record sth. 2万+

Plant Simulation新手入门:从零开始搭建工厂布局仿真模型(附完整代码)

本文为Plant Simulation新手提供了一个从零开始搭建工厂布局仿真模型的完整实战教程。通过一个玩具工厂车间布局优化的具体案例,详细讲解了从数据准备、模型构建、核心逻辑编程到连接遗传算法进行自动优化的全流程,并附有完整代码示例,帮助读者快速掌握这一工业仿真软件的核心应用。

metal的博客 553

Java Web 应用开发基础入门

本文介绍了JavaWeb应用开发的基础知识,包括开发环境搭建、核心技术和实践应用。首先概述了JavaWeb应用的定义和优势,如跨平台性、丰富的框架生态和高性能。然后详细讲解了开发环境配置,涉及JDK、Tomcat和IDE的安装。在技术层面,重点介绍了Servlet的生命周期、JSP语法以及MVC设计模式的实现方法。最后通过MySQL数据库操作示例展示了JavaWeb应用的完整开发流程。文章还提供了常见问题解决方案,为初学者提供了全面的JavaWeb开发入门指导。

lyl040215的博客 2608

一次点击跑通:用 Postman 自动获取并携带 CSRF token,测试 SAP OData 写操作

SAP OData 写操作自动化测试方案 针对 SAP Gateway OData 服务写操作中常见的 CSRF token 验证问题,本文提出了一套基于 Postman 的自动化解决方案: 问题分析:解释了 CSRF token 的验证机制及其必要性,说明手工测试效率低下的原因 解决方案: 使用 Postman 环境变量存储 token 通过脚本自动获取并传递 token 利用 Collection Runner 实现一键执行 实施步骤: 创建环境变量存储 token 第一个请求获取 token 并存入变

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 301

Java Web之Servlet入门

本文对Servlet进行了详细的介绍,从起历史,到概念,到servlet-api.jar的目录结构和里面的重要类,最后,还详细的介绍了如何创建一个Servlet,其生命周期、执行过程,详细的介绍了@WebServlet的每个注解,相信一定能帮到你。

丹丹的后花园 4686

Sigrity OptimizePI IC Device Power Pin Inductance Analysis模式如何计算IC电源管脚电感操作指导

Sigrity OptimizePI IC Device Power Pin Inductance Analysis模式可以计算电容到IC电源管脚的电感,用于评估电容位置对于IC电源管脚的效果,如何分析,以下图为例进行说明。Capacitors:选择层面,这里选择top layer(IC在top层),下方可以选择电容的size,这里选择All Size。IC devices,输入U*, A*, B*, Q*, P*,将所有这些字母开头的器件都识别为IC。模式如何计算IC电源管脚电感操作指导。

weixin_54787054的博客 408

2026华为OD机试真题 9月27日 新系统 【均衡调度】

华为OD机试真题 新系统 9月27号【均衡调度】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【均衡调度】多语言题解。

qq_45776114的博客 1760

Java Web开发基础-Servlet

本文介绍B/S与C/S架构特点,详细讲解Tomcat服务器配置、Servlet开发流程及Java Web应用部署步骤,帮助读者理解Web通信原理并掌握基础Web开发技能。

m0_73941339的博客 1078

什么是 SAPGUI 里的 Logon Group/Server

这意味着,不同的用户连接可以被分配到不同的应用服务器,以实现均衡的资源利用和降低某一服务器的负载压力。在这种配置下,欧洲的用户登录时选择“EUROPE_GROUP”,系统将自动选择一个位于欧洲的数据中心的服务器进行连接,这样不仅减少了网络延迟,还实现了服务器间的负载均衡。用户在 SAPGUI 中登录时,只需选择相应的 Logon Group(例如“FIN_GROUP”),系统就会自动将他们的连接请求分配到当前负载最小的应用服务器上,这种动态分配大大提升了系统的响应速度和稳定性。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1069

Java Web 开发入门:构建你的第一个 Servlet 应用

Servlet 是运行在 Java Servlet 容器(如 Tomcat)上的 Java 类,用于处理和响应 HTTP 请求。它是 Java EE 技术栈中用于开发动态 Web 应用的重要组成部分。通过本文的实践,你已经了解了如何创建和运行一个基本的 Servlet 应用。Servlet 过滤器和监听器:增强 Web 应用的功能。JSP 与 Servlet 的结合:用于更方便地构建动态页面。框架学习:如 Spring MVC,将 Servlet 与现代框架结合,提高开发效率。

一名热衷于技术的全栈开发者,专注于前端与后端的全面技术探索。在这里,我将分享我在技术领域的学习与成长,助力更多开发者的进步。 745

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Java之基于Servlet的Web开发简介

由于学习的过程中,接触到了这部分内容,所以特别的在这进行整理,分享给大家。 1、定义 Servlet是Java Servlet的简称,称为小服务程序或服务连接器; 2、原理 从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。Servlet是Java Servlet API开发的一种Java类,这些API被包含在ja...

qq_41026809的博客 899

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【java web篇】Servlet简介与快速入门

Servlet是java提供的一门动态的web资源开发技术,其实就是一个接口,将来我们需要实现这个Servlet接口,然后由web服务器运行Servlet,这里的服务器就是我们上节总结的Tomcat,那么一起来看看Servlet吧!

阿牛的博客 1084

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Java Web开发基础——Servlet与JSP基础

在本节中,我们将深入探讨Java Web开发中的两个核心技术:Servlet和JSP(Java Server Pages)。这两者是Java Web应用程序的基础,理解它们的工作原理、生命周期以及如何高效地使用它们,对于开发者来说至关重要。JSP是Servlet的扩展,通过简化动态内容生成的过程,开发者可以专注于编写逻辑,而无需编写大量的Servlet代码。接下来,我们将通过创建和部署一个简单的Servlet应用程序,演示如何配置Servlet和处理HTTP请求。,您将看到Servlet返回的网页。

好看资源网的博客 1700

JavaWeb01-Java Web开发入门:从Servlet到JSP

Java Web开发入门指南摘要:本文介绍了Java Web开发的基础知识,重点讲解Servlet和JSP的核心技术。内容涵盖环境搭建(JDK、Tomcat、IDEA)、Servlet基础知识(定义、工作原理、生命周期、请求响应处理)以及JSP技术。通过示例代码演示了如何创建第一个Servlet程序,并比较了Servlet与JSP的异同。文章为Java Web开发初学者提供了全面的入门指导,帮助开发者理解底层原理,为学习高级框架打下坚实基础。

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

Java Web 开发基础介绍

Java Web 开发是一个庞大而复杂的领域,本文介绍了 Java Web 开发的基础知识,包括开发环境搭建、项目结构、Servlet、JSP 和 JavaBean 等。掌握这些基础知识是进一步学习和开发 Java Web 应用的关键。随着技术的不断发展,Java Web 开发也涌现出了许多优秀的框架和工具,如 Spring、Spring Boot、MyBatis 等,初学者可以在掌握基础知识的基础上,逐步学习和使用这些框架,提高开发效率和质量。

zsnandzmn的博客 1438

Servlet揭秘:推动Java Web开发的动力

随着Jakarta EE的推出,Java EE的未来也在不断发展,适应现代应用程序的需求。一句话介绍:Java EE(现称Jakarta EE)是一个用于开发和运行企业级应用程序的Java平台,提供了丰富的API和组件以支持高性能、可扩展的多层架构。Java EE(Java Platform, Enterprise Edition),现在称为Jakarta EE,是一种为企业级应用程序提供的Java平台。Java EE是一个开放的标准,提供了一致的API,确保不同供应商的实现之间的兼容性。

Srlua的博客 1666

Java Web开发教程:从入门到精通

Java Web开发是一个充满挑战和机遇的领域。通过本文的学习,您应已掌握Java Web开发的基础知识和实践技巧。不断实践、深入学习,将使您在这个领域越走越远。希望您能在未来的开发旅程中创造出更多精彩的Web应用!如有任何问题或想法,欢迎在评论区留言讨论!期待您的参与与分享!

孤客科技 2971
上一篇: Java Web开发基础入门(一)——环境篇
下一篇: 数据库基础——SQL Server 2000数据库简介
Wasingmon
博客等级 码龄22年 9粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值