servlet入门,超级详细!!!看完就会!!!!

superjishere superjishere     2023-04-11     739

关键词:

一.软件结构发展史

技术图片

 技术图片

二.相关概念

1.B/S模式执行流程

技术图片

用户输入网址,浏览器会通过DNS将网址转换成对应的IP地址,通过IP地址向服务器主机(可以理解为一个安装了web服务器程序的高配置电脑)发出请求,

服务器主机收到请求后,会通过服务器程序将内容转换成相应的HTML文档,再将结果返回给浏览器(即响应),浏览器再对结果进行解析,最终呈现出了我们在浏览器上看到的页面.

 -从浏览器发出送给服务器的数据包称为"请求(Request)"

-从服务器返回给浏览器的结果称为"响应(Response)"

2.J2EE是什么?

J2EE(Java 2 Platform Enterprise)是指"Java 2 企业版".

B/S模式开发Web应用就是J2EE最核心的功能.

J2EE由13个模块组成:

技术图片

3.Apache Tomcat是什么?

 技术图片

Tomcat是Apache软件基金会旗下一款免费的开放源代码的Web应用服务器程序.

Tomcat是运行Servlet(服务器小程序)的容器.

4 Servlet是什么?

Servlet(Server Applet)服务器小程序,主要功能用于生产动态Web内容.

Servlet是J2EE最重要的组成部分!

5.Tomcat和Servlet的关系

技术图片

Apache Tomcat就相当于我们的web服务器程序,Servlet就相当于用于生成动态Web内容的服务器程序.

我们在主机上安装了web服务器程序(Tomcat),就可以运行服务器程序(Servlet),从而生成动态Web内容返回给浏览器.

三.相关环境的安装与配置

1.安装Tomcat

需要先安装JDK并配置环境变量,目前安装的是JDK8的版本.

Tomcat的安装版本最好与JDK是一致的,因此这次我们安装Tomcat8的版本.

实际上最好是去官方的渠道下载,但是可能是我这里网络的问题,一直进不去官网,只好在其他渠道下载了安装包,后面会贴上地址.安装包有两种:解压版和安装版,这里使用的是安装版.

官网下载方式:

Tomcat官网地址: https://tomcat.apache.org/

这里还是借用一下其他人的图.

技术图片

技术图片 

我下载好的安装包(8.5.31版本):

链接:https://pan.baidu.com/s/1ILIDAhB0bRXRjcOAXFR9Vw 提取码:z0m4 

安装方式:

我自己安装的时候忘记截图,在此附上其他人的图,不用在意版本的细节,过程都是一样的.

Step1.下载完成后开始安装,第一次安装的用户建议直接点击“next”不选择插件

技术图片

Step2.可以自行设置账户名以及密码

技术图片

Step3.设置jdk安装目录,每个人的路径都不一样,建议根据自己的电脑查找

技术图片

Step4.选择安装目录,点击install安装

Step5.安装好后,开始菜单找到图中的目录,点击红色圈圈中的图标.

技术图片

点击后,会弹出一个框,启动栏上也会有一个小标志,点击图中的start,启动Tomcat

技术图片

技术图片

启动后,可以看到对应的Service Status变成了Started,同时启动栏中的小图标中间也有红色的小方块变成了绿色的小三角.

技术图片

技术图片

这时,我们打开浏览器,输入地址localhost:8080并回车

技术图片

当你看到了这个页面,就代表Tomcat启动成功啦~~

配置环境变量:

如果你下载的是解压版本的,或者使用安装包后没有成功启动Tomcat,可能还需要配置一下环境变量,这里附上配置环境变量的方式.

右击我的电脑—属性—高级系统设置—环境变量,

Step1.在系统变量中添加以下变量

(1)TOMCAT_HOME,该变量指向解压文件的路径,该目录下有lib、bin等文件夹。添加方法如下:

点击环境变量下的“新建”,在“变量名”中填写“TOMCAT_HOME”,在“变量值”中填写解压文件的路径,

D:Tomcatapache-tomcat-8.0-windows-x64apache-tomcat-8.0(后面没有分号)然后点击“确定”,如图

技术图片

(2)CATALINA_HOME,该变量的值与TOMCAT_HOME相同,设置方法同(1),如图

技术图片

(3)在“系统变量”中找到Path变量,双击打开Path变量,在“变量值”的最后面添加%CATALINA_HOME%in(后面没有分号),如图

技术图片

(4)在“系统变量”中找到CLASSPath变量,双击打开CLASSPath变量,在“变量值”的最后面添加

%CATALINA_HOME%libservlet-api.jar(后面没有分号),如图

技术图片

Step2. 单击“开始”—“运行”,键入"cmd",在控制台输入service install Tomcat8

技术图片

出现以上内容便表示安装成功!

2.安装 Eclipse For J2EE

Eclipse为J2EE提供了专用版本

Eclipse J2EE最新版本为SimRel(齐美尔)

下载

进入Eclipse官网: www.eclipse.org

技术图片

点击Download

技术图片

这时黄色的Download按钮,是下载eclipse安装器的,但是由于这种方式是通过外国的网站下载,速度较慢 ,这里我们直接点击Download Packages即可.

技术图片

在出现的列表中,选择图中版本,并根据系统来选择对应的安装包 ,并点击

技术图片

在这个页面中,点击黄色的Download按钮

技术图片

选择要下载到的目录,即可下载安装包. 

安装

将下载好的安装包解压,并将里面的eclipse文件夹放到你想要安装eclipse的目录中,但注意目录中尽量不要用中文以及特殊字符.这里我放到了D盘根目录中

如果之前安装过eclipse的其他版本(比如SE版本)也没有关系,只要不把他们都放到一个目录中就行.

技术图片

技术图片

这时我们看到eclipse文件夹中有图中这些文件. 

技术图片

 我们双击eclipse.exe就可以打开eclipse了

技术图片

跟eclipse SE版本一样,需要先指定一个存储工程的工程路径.选择好后点击Launch

技术图片

可以看到J2EE版本的eclipse跟我们之前使用的SE版本是很相似的,只是在其基础之上扩展了一些功能

技术图片

 配置

Step1.绑定默认的JDK

选择Window→Preferences

 技术图片

技术图片

点击add后在弹出的框中选择第三项

技术图片

 点击Directory选择jdk的安装目录,点击finish,将新的jdk前面的框框勾选上,点击Apply and Close即可.

技术图片

Step2.在eclipse上配置Tomcat

之前我们每次都要独立的运行Tomcat,如果能把Tomcat整合到eclipse上,对于我们的开发来说就方便多了.

技术图片

 点击图中选项.(如果没有的话,点击Other,在新弹出的框中,可以在Server目录中找到Servers).这时下方就会自动出现一个Servers标签.

 技术图片

 点击蓝色的超链接,在弹出的页面中选择Apache厂商,再选中对应的Tomcat版本

技术图片

技术图片

点击next,在新弹出的页面中,点击Browser选择Tomcat的安装路径以及刚刚配置好的jdk

技术图片

点击next

当前页面是用来进行程序发布的,因为目前我们没有写任何的项目,现在这里都是空的,不用管它,直接点击Finish即可.

技术图片

此时Servers面板显示如下

技术图片

双击这一条,在弹出的页面中第二部分修改为第二项,它的含义是默认的将我们以后开发的web应用程序发布到Tomcat所安装的目录下.(第一项的含义是默认发布到eclipse部署的环境中,不太推荐使用.)

同时,将部署路径更改为Tomcat安装目录下的webapps目录.以后我们开发的web应用程序将都发布到这个目录中.

技术图片

这两个配置好后,关掉这个页面,提示是否保存,选择save

技术图片

此时,Tomcat就配置完成,Servers面板显示如下

技术图片

那么如何验证是否配置成功了呢?

选中上图中的那一条,可以看到面板右侧有一些按钮

技术图片

技术图片

在开发中我们一般使用小虫子按钮来调试程序,现在我们点击它~

此时控制台中会不断输出许多内容,当输出结束时,最后一句如下图所示,表示Tomcat和eclipse整合成功了.(根据程序和电脑配置等的不同,这里的时间也是不同的)

技术图片

Servers面板显示如下

技术图片

同时工程栏多了自动生成的一个Server工程

技术图片

这时我们在浏览器中输入地址 localhost:8080

熟悉的页面又显示出来了~~至此Tomcat和eclipse的整合成功(^-^)V

技术图片

四.Servlet入门

1.第一个Servlet

现在我们来创建第一个web应用程序吧!

在左侧工程栏空白处点击鼠标右键,依次选择图中选项.这一项就是我们javaweb标准工程的创建.

技术图片

在新弹出的页面中写好工程名称,其他的Tomcat版本,Servlet版本默认就好,一般都使用最新版本,之后点击next

技术图片

点击next后新弹出的页面是让我们选择工程构建的路径,使用默认的即可,继续点击next 

技术图片

点击next之后,进入下一个页面.勾选项的意思是帮我们生成web应用配置描述文件(即 web.xml),必须要选中.

技术图片

配置完毕后,可以看到工程面板中,多了一个FirstServlet工程.

我们先不纠结每个目录的含义 ,首先在src中新建一个标准的java类

技术图片

写好包名和类名后,点击finish.

技术图片

这时一个标准的Java类就创建好了

技术图片

与标准的java类不同的是,Servlet需要继承HttpPServlet类 ,并导入HttpServlet包.

HttpServlet是我们写的所有web应用小程序的父类.必须继承它,我们才可以开发自己的小程序.

技术图片

接着,我们需要在类中重写 HttpServlet类中的service方法

快捷方式:点击Source-Override/Implement Methods......

技术图片

在新页面中选择倒数第二项,点击ok

技术图片

这时eclipse就自动帮我们生成了重写的service方法

技术图片

方法中第一个参数是请求,第二个参数是响应,我们可以改一下对应的参数名,便于理解

技术图片

request包含了从浏览器向服务器发送请求的数据

response包含了从服务器生成要发送回浏览器的信息.

我们将方法体中默认书写的内容删掉,自己编写里面的内容.

技术图片

这时虽然我们把FirstServlet这个类写完了,但是Tomcat还不认识它.

我们还需要在web.xml(web应用配置描述文件)中进行一下配置.

在网上搜到了一篇关于web.xml的文章,可以详细了解一下:https://www.cnblogs.com/linhuaming/p/9464356.html

技术图片

双击这个文件,进入页面后,选择source这个标签,在这里写配置文件

技术图片

红色框框里是我们需要编写的部分

技术图片

下面我们来运行一下 

在Servers面板的Tomcat上点击鼠标右键→ Add and Remove

技术图片

技术图片

点击add将我们的FirstServlet类添加到右边,意思是将我们的程序发布到Tomcat上.

技术图片

然后点击Finish.如果发布成功,Tomcat里面就会出现FirstServlet选项.

技术图片

接着,还是选中Tomcat这一栏,点击面板右上方的小虫子启动Tomcat.

可以在控制台看到,我们已经启动成功了.

技术图片

下面我们来访问一下我们这个Servlet. 

访问网址为: localhost:8080/FirstServlet/hi?name=superj 

红色部分是主机名+端口号

蓝色部分是工程名

绿色部分是我们定义的url-pattern

橙色部分是传入的参数,固定以问号开头,等号左边是参数名,等号右边是参数的值.

回车,可以看到,我们编写的内容显示出来了.

技术图片

再来总结一下,我们的Tomcat和浏览器直接在这个过程中具体是怎么互动的.

首先,我们在浏览器地址栏中输入 localhost:8080/FirstServlet/hi?name=superj 以后,

这个信息会通过请求request发送给Tomcat.

Tomcat收到这个请求后,发现我们发送的url是/hi,于是就从web.xml文件中去查找是否有url-pattern为/hi的Servlet-mapping.

找到了之后,发现这个Servlet的别名是first,于是再查找是否有别名是first的Servlet.

查找到后得到这个Servlet的servlet-class,com.superjishere.servlet.FirstServlet.

紧接着Tomcat会创建FirstServlet的对象,并执行其中的service方法,为Servlet提供响应和支持.

这里我们通过out.println将html的内容输出

技术图片

其中name作为参数被接收,它的值就对应了superj ,当输出了out.println中的html字符串后,

Tomcat会将这个字符串通过响应response,原封不动的发送给浏览器,

浏览器中接收到的字符串就是服务器执行之后的结果,浏览器将这个结果进行解析,展现在页面上,

于是我们就在网页上看到了内容!

技术图片

 ============================================================================================

练习的时候发现一个问题:当在定义的html字符串中,使用span标签的时候,浏览器不能识别,会把整个html标签内容显示出来.

如果换成p标签就可以正常显示.等找到原因后再来补充.

技术图片

技术图片

下一篇的内容见:

Servlet入门(二),超级详细!!!看完就会!!!! 

 

 

 

 

 

css3动画属性animation详解(看完就会)(代码片段)

...ff08;看完就会)CSS3transform2D转换之移动旋转缩放(详细讲解看完就会)CSS3Z—Index详解CSS3positon定位详解(通俗易懂)目录keyframes动画相关的值 animation-name animation-durationanimation-timing-function animation-delay animation-... 查看详情

快速搭建一个网关服务,动态路由鉴权看完就会(含流程图)(代码片段)

...定看到最后,非常适合没接触过网关服务的同学当作入门教程。搭建服务|框架SpringBoot2.1<parent><groupId>org.spri 查看详情

快速搭建一个网关服务,动态路由鉴权看完就会(含流程图)(代码片段)

...定看到最后,非常适合没接触过网关服务的同学当作入门教程。搭建服务|框架SpringBoot2.1<parent><groupId>org.spri 查看详情

fish_redux使用详解---看完就会用!(代码片段)

...句心里话,这篇文章,来来回回修改了很多次,如果认真看完这篇文章,还不会写fish_redux,请在评论里喷我。前言来学学难搞的fish_redux框架吧,这个框架,官方的文档真是一言难尽,比flutter_bloc官网的文档真是逊色太多了,但... 查看详情

从0学习git使用看完就会(代码片段)

Git是一个开源的分布式的版本控制系统,可以有效的高速的处理从小到大的项目管理工具Git是世界上最先进的分布式版本控制工具什么是版本控制工具:就是开发的过成中一个软件的使用技巧,可以确保不同人所编辑... 查看详情

java零基础教程,看完就会,建议收藏

...,耐心阅读。〇,编程环境工程项目推荐使用IDEA.入门学习推荐使用jupyternotebook.安装jupyternotebook的java插件IJava的方法如下:1,下载JavaJDK>=9.建议122,下载ijava-1.3.0.zip,并解压。3,进入解压后目录,运行python3install.py--sys-... 查看详情

教你三步在macos上安装linux系统,看完就会了

作者简介作者:LuciferLiu,中国DBA联盟(ACDU)成员。目前主要从事OracleDBA工作,曾从事Oracle数据库开发工作,主要服务于生产制造,汽车金融等行业。现拥有OracleOCP,OceanBaseOBCA认证,擅长Oracle数据库运维... 查看详情

教你三步在macos上安装linux系统,看完就会了

作者简介作者:LuciferLiu,中国DBA联盟(ACDU)成员。目前主要从事OracleDBA工作,曾从事Oracle数据库开发工作,主要服务于生产制造,汽车金融等行业。现拥有OracleOCP,OceanBaseOBCA认证,擅长Oracle数据库运维... 查看详情

快速搭建一个网关服务,动态路由鉴权看完就会(含流程图)(代码片段)

来源:juejin.cn/post/7004756545741258765上一篇:编写if时尽量不要带else前言本文记录一下我是如何使用Gateway搭建网关服务及实现动态路由的,帮助大家学习如何快速搭建一个网关服务,了解路由相关配置,鉴权的流... 查看详情

编程入门先学什么小白想入门看这里

重大改革,Python将被加入高考科目2017年初消息,浙江省信息技术新教材,即将在2017级(2017年9月入学)高中新生中开始使用。对于从来没有接触过编程语言的朋友来说,一上来就学习Python还是感觉有点吃力。那么有什么过渡编... 查看详情

python环境怎么搭建?0基础看完就会,简简单单轻轻松松(代码片段)

很多小伙伴安装了python不会搭建环境,看完这个你就会了Python可应用于多平台包括Linux和MacOSX。你可以通过终端窗口输入"python"命令来查看本地是否已经安装Python以及Python的安装版本。Unix(Solaris,Linux,FreeBSD,AIX,HP/UX,SunOS,IRI... 查看详情

销售管理系统的作用到底是什么?看完就全明白了

对于企业来说,商场如战场,一个合同的成功,企业前期要投入人力成本、时间成本、资金成本,很是来之不易,但是,往往企业之间的差距不是特别大,可能仅仅是合同签订这最后一步,比别人慢了,就会错失良机,但是有了... 查看详情

黑客入门教程(非常详细)从零基础入门到精通,看完这一篇就够了。

学前感言:1.这是一条坚持的道路,三分钟的热情可以放弃往下看了.2.多练多想,不要离开了教程什么都不会了.最好看完教程自己独立完成技术方面的开发.3.有时多google,baidu,我们往往都遇不到好心的大神,谁会无聊天天给你做解答.4.... 查看详情

反射入门(小白教程,超级详细)(代码片段)

反射定义构造函数方法调用修改属性定义获取当前类的Class对像:1.Class<?>c=People.class;2.Peoplep=newPeople();Class<?>c=p.getClass();3.Class<?>c=Class.forName(“包路径.People”)问题来了:不用单例模式 查看详情

网络安全基础入门教程(非常详细)从零基础入门到精通,看完这一篇就够了

学前感言1.这是一条需要长时间坚持的道路,如果你只有三分钟的热情那么现在点击右上角放弃往下看吧。2.多练多想,不要离开了教程什么都不会,最好看完教程后自己独立完成技术方面的开发。3.有问题多google、bai... 查看详情

servlet入门详细教程(你不得不知道的servlet知识点)(代码片段)

...录01.JavaEE概述02.系统架构分析03.Servelt04.开发第一个带有Servlet的webapp(重点)05.在Servlet中编写JDBC连接数据库(重点)06.Servlet的生命周期07.UML08.javax.servlet.ServletConfig 查看详情

servlet入门详细教程(你不得不知道的servlet知识点)(代码片段)

...录01.JavaEE概述02.系统架构分析03.Servelt04.开发第一个带有Servlet的webapp(重点)05.在Servlet中编写JDBC连接数据库(重点)06.Servlet的生命周期07.UML08.javax.servlet.ServletConfig 查看详情

网络安全零基础入门教程(非常详细)从零基础入门到精通,看完这一篇就够了。(代码片段)

学前感言1.这是一条需要长时间坚持的道路,如果你只有三分钟的热情那么我劝你可以放弃往下看了。2.多练多想,不要离开了教程就什么都不会,最好能在看完教程后自己独立地完成技术方面的开发。3.学习过程中遇... 查看详情