web相关概念回顾
web服务器软件:
Tomcat简单的说就是一个运行Java的网络服务器,底层是Socket的一个程序,它也是JSP和Serlvet的一个容器。
为什么要学Tomcat呢?
因为你在本地写的html,css页面只能让自己访问,别人不能远程访问你写的页面,Tomcat就是提供能够让别人访问自己写的页面的一个程序。
网友有很多教程,这里我用的是CSDN上的一个教程https://blog.csdn.net/qq_39047789/article/details/103883252?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159667785919195264537366%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=159667785919195264537366&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_click~default-1-103883252.first_rank_ecpm_v3_pc_rank_v4&utm_term=tomcat%E5%AE%89%E8%A3%85%E5%8F%8A%E9%85%8D%E7%BD%AE%E6%95%99%E7%A8%8B&spm=1018.2118.3001.4187
相关术语介绍:
下图为url,在WWW上,每一信息资源都有统一的且在网上唯一的地址,该地址就叫URL(Uniform Resource Locator,统一资源定位器),它是WWW的统一资源定位标志,就是指网络地址。
上图存在一个错误:
主机是包括端口的,图上所示的localhost是主机名,而localhost:8080才是主机
目录的简单介绍
在webapps中建立了web1目录,下面放置我们的html文件,jsp文件,图片等等,则web1就被当作web应用管理起来。
例子:在webapps下创建一个web站点,在web站点下创建一个html文件,访问html文件
接着开启Tomcat服务,在浏览器中输入http://localhost:8080/web1/10_Practice.html
这样即可在本地成功使用Tomcat访问html文件。
下面我们将10_Practice.html文件作为站点的首页,以下是创建步骤:
<welcome-file-list>
<welcome-file>10_Practice.htmlwelcome-file>
welcome-file-list>
配置虚拟目录的目的:
配置虚拟目录的方法:
由于我目前对虚拟目录没有要求,因此我没有详细去做虚拟目录,有需求的可以参考这个网站进行配置。
https://segmentfault.com/a/1190000013122831
参考虚拟目录的网站即可
快速配置教程:
https://blog.csdn.net/Mr_OOO/article/details/50976205?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param
什么是Servlet
Servlet其实就是一个遵循Servlet开发的Java类。Servlet是由服务器调用的,运行在服务器端。
为什么要用到Servlet
我们编写Java程序想要在网上实现聊天、发帖,这样一些的交互功能,普通的Java技术是非常难完成的。sun公司就提供了Servlet这种技术供我们使用。
什么是HTTP协议
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。它是TCP/IP协议的一个应用层协议
简单来说,HTTP协议就是客户端和服务器交互的一种通讯的格式。
例子:在浏览器点击一个链接,浏览器就为我打开这个链接的网页。
原理:当在浏览器中点击这个链接的时候,浏览器会向服务器发送一段文本,告诉服务器请求打开的是哪一个网页。服务器收到请求后,就返回一段文本给浏览器,浏览器会将该文本解析,然后显示出来。这段文本就是遵循HTTP协议规范的。
HTTP请求
浏览器向服务器请求某个web资源时,称之为浏览器向服务器发送了一个http请求。
一个完整的http请求应该包含三个部分:
请求行
请求行:GET/java.html HTTP/1.1
请求行中的GET称之为请求方式,请求方式有:
POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT
其中,常用的有:POST、GET
一般来说,当我们点击超链接,通过地址栏访问都是get请求方式;通过表单提交的数据一般都是post方式。
GET方式:在URL地址后附带的参数时有限制的,其数据容量通常不能超过1K。
POST方式:可以在请求的实体内容中向服务器发送数据,传送的数据量无限制。
请求头
一个HTTP相应代表着服务器向浏览器回送数据
一个完整的HTTP相应应包含四个部分:
状态行
格式:HTTP版本号 状态码 原因叙述
状态行:HTTP/1.1 200 OK
状态码用于表示服务器对请求的处理结果,它是一个三位的十进制数。响应状态码分为5类
响应头
Serlvlet带给我们最大的作用就是能够处理浏览器带来的HTTP请求,并返回一个响应给浏览器,从而实现浏览器和服务器的交互。
Servlet生命周期可被定义为从创建知道毁灭的整个过程。以下时Servlet遵循的过程:
现在让我们详细讨论生命周期的方法。
init()方法
init方法被设计成只调用一次。它在第一次创建Servlet时被调用,在后续每次用户请求时不再调用。因此,它是用于一次性初始化,就像Applet的init方法一样
Servlet创建于用户第一次调用对应于该Servlet的URL时,但是您也剋以指定Servlet在服务器第一次启动时被加载。当用书调用一个Servlet时,就会创建一个Servlet实例,每一个用户请求都会产生一个新的线程,适当的时候移交给doGet或doPost方法。init()方法简单地创建或加载一些数据,这些数据将被用于Servlet地整个生命周期。
init方法地定义如下
public void init() throws ServletException{
//初始化代码
}
service()方法
service()方法是执行实际任务地主要方法。Servlet容器(即Web服务器)调用service()方法来处理来自客户端(浏览器)的请求,并把格式化的相应写回给客户端。
每次服务器接收到一个Servlet请求时,服务器会产生一个新的线程并调用服务。service()方法检查HTTP请求类型(GET、POST、PUT、DELETE等),并在适当的时候调用doGet、doPost、doPut、doDelte等方法。
service()方法的特征
public void service(ServletRequest request,ServletResponse response) throws SevletException,IOException{
//
}
service()方法由容器调用,service方法在使用的时候调用doGet、doPost、doPut、doDelete等方法。所以,您不用对service()方法做任何动作,您只需要根据来自客户端的请求类型来重写doGet()或doPost()即可。
doGet() 和 doPost() 方法是每次服务请求中最常用的方法。下面是这两种方法的特征。
doGet()方法
GET 请求来自于一个 URL 的正常请求,或者来自于一个未指定 METHOD 的 HTML 表单,它由 doGet() 方法处理。
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
// Servlet 代码
}
doPost()方法
POST 请求来自于一个特别指定了 METHOD 为 POST 的 HTML 表单,它由 doPost() 方法处理。
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
// Servlet 代码
}
destroy()方法
destroy() 方法只会被调用一次,在 Servlet 生命周期结束时被调用。destroy() 方法可以让您的 Servlet 关闭数据库连接、停止后台线程、把 Cookie 列表或点击计数器写入到磁盘,并执行其他类似的清理活动。
在调用 destroy() 方法之后,servlet 对象被标记为垃圾回收。destroy 方法定义如下所示:
public void destroy() {
// 终止化代码...
}
下图显示了一个典型的Servlet生命周期方案。