Tomcat&Servlet

Tomcat&Servlet

Tomcat

web相关知识回顾

1.web服务器软件

启动tomcat软件bin目录下的startup.bat

c/s:客户端/服务器端

b/s:浏览器/服务器端

2、资源分类

​ 1.静态资源:所有用户访问后,得到的结果都是一样的。静态资源可以直接被浏览器解析

​ *如:html,css,JavaScript

​ 2.动态资源:每个用户访问相同资源后,得到的结果可能不一样。动态资源被访问后,需要先转换为静态资源,在返回给浏览器

​ *如:servlet/jsp,php,asp……

3、网络通信三要素

​ 1.IP:电子设备(计算机)在网络中的唯一标识

​ 2.端口:应用程序在计算机中的唯一标识 0~65536

​ 3.传输协议 :规定了数据传输规则

​ 1.基础协议

​ 1.tcp:安全协议,三次握手,速度稍慢

​ 2.udp:不安全协议,速度快

web服务器软件

服务器:安装了服务器软件的计算机

服务器软件:接受用户的请求,处理请求,做出响应。

web服务器软件:接受用户的请求,处理请求,做出响应。

​ *在web服务器软件中,可以部署web项目,让用户通过浏览器来访问这些项目。

​ *web容器

常见的java相关的web服务器软件:

​ *webLogic:oracle公司,大型的JavaEE服务器,支持所有的JavaEE规范,收费的。

​ *webSphere:IBM公司,大型的JavaEE服务器,支持所有的JavaEE规范,收费的。

​ *JBOSS:JBOSS公司,大型的JavaEE服务器,支持所有的JavaEE规范,收费的。

​ *TomCat:Apache基金组织,中小型的JavaEE服务器,支持部分JavaEE规范,免费的。

JavaEE:Java语言在企业及开发中使用的技术规范的总和,一共规定了13项大的规范。

Ctrl+c关闭tomcat

配置

部署项目的方式:

​ 1.直接将项目放到webapps目录下即可。

​ */hello:项目的访问路径——>虚拟目录

​ *简化部署:将项目打包成一个war包,在将war包放置到webapps目录下

​ war报会自动解压

动态项目和静态项目:

​ *目录结构:

​ *java动态项目:

​ --项目 名称

​ --WEB-INF

​ --web.xml:该项目的核心配置文件

​ --classes目录;放置字节码文件

​ --lib目录:放置项目依赖的jar包

*将Tomcat集成到IDEA中,并且创建JavaEE的项目,部署项目。

Servlet:server applet

概念:运行在服务器端的小程序

​ Servlet 就是一个接口,定义了Java类被浏览器访问到(tomcat)的规则。

​ 将来我们自定义一个类,实现Servlet接口,覆写方法。

快速入门:

1.创建JavaEE项目

2.定义一个类,实现Servlet方法

​ public class ServletDemo1 implements Servlet {

3.实现接口中的抽象方法,

4.配置Servlet

​ 注意:在webxml中配置

<!--配置Servlet--><servlet>  
    <servlet-name>demo1</servlet-name>   
    <servlet-class>cn.itcast.web.servlet.ServletDemo1</servlet-class>
        </servlet><servlet-mapping>    
        <servlet-name>demo1</servlet-name>   
        <url-pattern>/demo1</url-pattern>
        </servlet-mapping>

执行原理:

​ 1.当服务器接收到客户端浏览器的请求之后,会解析请求的URL路径

​ 2.查找web.xml文件,是否会有对应的标签体内容

​ 3.如果有,则在找到对应的全类名

​ 4.tomcat会将字节码文件加载到内存,并且创建其对象

​ 5.调用其方法

Servlet中的生命周期方法:

Servlet是Java对于Web开发而产生的一项技术,可以说Servlet技术是Java专有的,它是**服务器端的技术,客户端通常是浏览器**,Servlet提供了请求/响应模式,是JAVA的一种规范,只能使用于Java上,用来替代早期使用的难懂的CGI,是一种无状态的请求响应,客户端访问一个服务器的url,只需要发送简单的httprequest即可。规定了四个范围:pageContext、request、session、application。一定依赖于各种Servlet容器,但Servlet只能接受一个简单的http请求。

1.被创建:执行init方法,只执行一次

​ Servlet什么时候被创建

​ 默认情况下,第一次被访问时,servlet被创建

​ 可以配置servlet创建的时机,

 <!--指定Servlet的创建时机
        1.第一次被访问时,创建<load-on-startup>的值为负数
        2.在服务器启动时,创建<load-on-startup>的值为0或正整数-->

2.提供服务:执行service方法,执行多次

​ 每次访问Servlet时,Service方法都会被调用一次

3.被销毁:执行destory方法,只执行一次

​ destory方法在Servlet被关闭前执行

​ 只有服务器正常关闭,才会执行destory方法

Servlet3.0

好处:

​ 支持注解配置。可以不需要web.xml

步骤:

​ 1.创建JavaEE项目,选择Servlet的版本3.0以上,可以不创建web.xml

​ 2.定义一个类,实现Servlet接口

​ 3.复写方法

​ 4.在类上使用@WebServlet(urlPatterns="/demo")注解,进行配置

​ @WebServlet(urlPatterns=“资源路径”)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JfUSlIHI-1582279248149)(C:\Users\张常超\Documents\Idea与tomcat的相关配置.JPG)]

Servlet的体系结构

Servlet —接口

​ |

GenericServlet —抽象类

​ |

⚪HttpServlet —抽象类

HttpServlet:对http协议的一种封装,简化操作

​ 1.定义类继承HttpServlet

​ 2.复写doGet/doPost 方法

7.Servlet相关配置

​ 1.urlpartten : Servlet访问路径

​ 1.一个Servlet可以定义多个访问路径@WebServlet("/demo3","/d3")

​ 2.路径定义规则:

​ 1, /xx

​ 2. /xx/xx: 多层路径,目录结构

​ 3. *.do

Http

​ 概念:Hyper Text Transfer Protocol 超文本传输协议

传输协议:定义了,客户端和服务器端通信时,发送数据的格式

特点:

1.基于TCP/Ip的高级协议

2.默认端口号:80

3.基于请求/响应模型的:一次请求对应一次响应

4.无状态的:每次请求之间相互独立,不能交互数据

请求消息数据格式

1.请求行

​ 请求方式 请求url 请求协议/版本

​ GET /login.html HTTP/1.1

​ 请求方式常用的两种:GET和POST

​ GET:1.请求参数在请求行中,在url之后

​ 2.请求的url长度有限制

​ 3.不太安全

​ POST:1.请求的参数在请求体中

​ 2.请求的url长度没有限制

​ 3.相对安全

2.请求头:

客户端浏览器告诉服务器一些信息

​ 请求头名称:请求头的值

​ 常见的请求头:

​ 1.User-Agent :浏览器告诉服务器,我访问你使用的浏览器版本类型

​ 可以在服务器端获取该头的信息,解决浏览器的兼容性问题

​ 2.Referer: http://locathost/login.html

​ 告诉服务器,请求从哪里来的

​ 作用:防盗链 、 统计工作(优酷电影连接)

3.请求空行

​ 空行,就是用于分割POST请求的头和请求体

4.请求体(正文)

​ 封装POST请求消息的请求参数

	Host: localhost:63342
        User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
    Accept-Encoding: gzip, deflate
    Connection: keep-alive
    Cookie: Idea-3d07eec1=66a8beee-3529-44eb-9c55-f67617538956
    Upgrade-Insecure-Requests: 1
    If-Modified-Since: Tue, 28 Jan 2020 03:10:11 GMT
    Cache-Control: max-age=0

HTTP协议:响应消息

(服务器端发送给客户端的数据)

​ 数据格式:

响应行

​ 1.组成:协议/版本 响应状态码 状态码描述

响应状态吗:

服务器告诉客户端浏览器本次请求和相应的一个状态

​ 1.状态吗都是三位数

​ 2.分类:

​ 1.1xx:服务器接收客户端的消息 ,但没有接受完成,等待一段时间后,发送1xx多状态吗

​ 2.2xx成功。代表200

​ 3.3xx:重定向。代表:302(重定向)304(访问缓存)

​ 4.4xx:客户端错误

​ 代表:

​ 404(请求的路径没有对应的资源)

​ 405:请求的方式没有对应的doXXx方法

​ 5.5xx:服务器端错误。代表:500(服务器内部出现了异常)

响应头

​ 1.格式:头名称:值

​ 2.常见的响应头

​ 1.Content-Type:服务器告诉客户端本次响应体数据格式以及编码格式

​ 2.Content-disposition:服务器告诉客户端以什么格式打开响应体数据

​ 值;

​ in-line:默认值,在当前页面内打开

​ attachment:filename=xxx:以附件形式打开响应体。文件下载

响应空行

响应体:传输的数据

响应字符格式:

HTTP/1.1 200 OK
content-type: text/html
server: IntelliJ IDEA 2019.1
date: Sun, 2 Feb 2020 07:24:11 GMT
X-Frame-Options: SameOrigin
X-Content-Type-Options: nosniff
x-xss-protection: 1; mode=block
cache-control: private, must-revalidate
last-modified: Tue, 28 Jan 2020 03:10:11 GMT
content-length: 266
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值