Java Web学习总结 1

1 Web相关概念

1.1 软件基本架构

C/S(Client-Server)。比如我们手机上的app QQ 微信
特点:必须下载特定的客户端程序。服务端升级之后,客户端也需要随着升级。

B/S(Broswer-Server).比如京东网站,腾讯qq官方网站
特点:只需要安装浏览器就可以访问。如果服务器端升级了,浏览器端不需要随之升级。

JavaWeb开发,开发的软件是基于B/S的软件架构。

1.2 资源

资源就是用户想要获取的资源。资源分为两种,一种是静态资源,一种是动态资源。

静态资源是不会经常发生变化的资源,比如HTML CSS JS 图片。

动态资源是会发生变化的资源,比如servlet jsp。如果我们想要获取动态资源,这些动态资源必须通过服务器部署之后才能获取。

1.3 tomcat

服务器的种类有很多,有文件服务器、邮件服务器、web服务器、数据库服务器。我们的动态资源是部署在web服务器上的,web服务器接收到http请求之后把请求交给Servlet来处理,调⽤业务类实现动态资源获取。

web服务器有很多,比如tomcat、jetty、weblogic,jboss。

1.3.1 tomcat是什么

Tomcat是一个免费的开放源代码的Web应用服务器,是Apache软件基金会项目中的一个核心项目,由Apache ,Sun共同开发而成,深受Java爱好者的喜爱,是一款比较流行的web应用服务器。

1.3.2 tomcat下载安装

tomcat是一个可以直接通过官网下载官网:Tomcat官网

1.3.3 文件目录结构

①bin:启动和关闭tomcat的bat文件。

  • startup.bat , shutdown.bat 用于在windows下启动和停止脚本;
  • startup.sh, shutdown.sh 用于在linux下启动和停止脚本;

②conf:配置文件。

  • logging.properties Tomcat 的日志配置文件, 可以通过该文件修改Tomcat 的日志级别及日志路径等
  • server.xml该文件用于配置server相关的信息,比如tomcat启动的端口号,配置主机(Host)。

③lib:该目录放置运行tomcat运行需要的jar包。

④logs:存放日志,当我们需要查看日志的时候,可以查询信息。

⑤webapps:放置我们的web应用。

⑥work工作目录:该目录用于存放jsp被访问后生成对应的server文件和.class文件。

2 Http协议

Http协议:浏览器和服务器之间进行数据传输需要遵循的格式规范

2.1 请求行

主要包含:请求方式、请求URL、状态码、HTTP协议及版本

2.2 请求头

  • Accept:告诉服务器当前浏览器能接受和处理的介质类型,表示可接受所有类型。
  • Accept-Encoding:告诉服务器当前浏览器支持的内容编码。
  • Accept-Language:告诉服务器当前浏览器能接受和处理的语言。上述请求中的zh-CN,zh;q=0.8表示用户对zh-CN的喜好程度为80%。
  • Connection:keep-alive,告诉服务器在完成本次请求的响应后,保持该TCP连接不释放,等待本次连接的后续请求。这样可以减少打开关闭TCP连接的次数提升处理性能。另外的可选项是Close,表明直接响应接受完成后直接将其关闭。
  • Content-Length:用于描述HTTP消息实体的传输长度。
  • Content-Type:内容类型,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件。
  • Cookie:表示服务器端为本次访问分配了一个Session ID,每次发送请求时都会主动将该Session ID通过Cookie字段又发送回服务器,用于验证身份和保持状态。
  • Host:描述请求将被发送的目的地,在任何类型的请求中都会包含此信息。
  • Origin:用来说明请求从哪里发起的。
  • Referer:指定发起该请求的源地址。根据该值服务器可以追踪到来访者的基本信息。比如我们在百度首页搜索博客园关键字,并从搜索结果中访问,那么博客园网站服务器就可以根据Referer值追踪到来访者地址为:https://www.baidu.com/link?url…7c64da001b54df000000065e06ec91 这样就可以知道来访者是从哪个网站访问到此。如果来访者的Referer为空,有两种可能,一种是来访者修改了请求,删除了Referer字段的值,另一种就是来访者是直接在URL地址栏输入地址访问该网站。
  • TE:采用何种传输编码。
  • User-Agent:是一种向访问网站提供你所使用的浏览器类型及版本、操作系统及版本、浏览器内核等信息的标识。
  • X-Requested-With:用来判断请求是Ajax请求还是其他请求。

2.3 请求体

  • POST请求通过请求体来传递数据,通过param1=value1&param2=value2的键值对形式编码。
  • GET请求通过URL地址参数来传递数据,也就是我们平时看到的URL地址里面“?”后面的所包含的键值对。

2.4 响应头

  • content-encoding:响应的编码格式
  • content-type:响应内容的类型
  • date:响应的时间。此处使用的是GMT标准时间
  • server:处理请求的源头服务器所用到的软件相关信息
  • strict-transport-security:
HTTP Strict Transport Security(通常简称为HSTS)是一个安全功能,它告诉浏览器只能通过HTTPS访问当前资源, 禁止HTTP方式。

2.5 响应体

响应体就是服务器返回的HTML页面或者json数据

3 Servlet入门

3.1 Servlet介绍

3.1.1 什么是Servlet

Servlet是Server Applet的简称,是用Java编写的是运行在 Web 服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。使用 Servlet,可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。

3.1.2 Servlet的使用方法

Servlet技术的核心是Servlet接口,定义了Servlet与Servlet容器之间的契约,Servlet容器将Servlet类载入内存,生成Servlet实例并调用它具体的方法,所以它是所有Servlet类必须直接或者间接实现的一个接口。

3.1.3 Servlet接口的继承结构
  • Servlet接口:只负责定义Servlet程序的访问规范;

  • GenericServlet抽象类:实现了Servlet接口,做了很多空实现,并持有一个ServletConfig类的引用,并提供了一些ServletConfig的使用方法;

  • HttpServlet抽象类:实现了service方法,并实现了请求分发处理;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值