【C/S架构与B/S架构简介、常见web服务器、idea集成tomcat、Http协议(请求与响应报文)、Servlet简介-编写方式-配置方式】

本文介绍了C/S和B/S架构的特点与优缺点,讲解了常见的Web服务器如Tomcat的部署,并详细阐述了HTTP协议的工作流程和请求响应报文。此外,还探讨了Servlet的编写方式和配置,包括通过web.xml与注解两种方式。
摘要由CSDN通过智能技术生成

C/S架构与B/S架构简介、常见web服务器、idea集成tomcat、Http协议(请求与响应报文)、Servlet简介-编写方式-配置方式

一、C/S架构和B/S架构

1.C/S架构(Client/Server 客户端/服务器)

特点:需要在客户端安装软件(例:QQ,微信)
优点:图形显示效果比较好(例:3D游戏)
缺点:服务器的软件和功能进行升级,客户端也必须升级后,才能使用最新功能,不利于维护

2.B/S架构(Browser/Server 浏览器/服务器)

特点:不用安装客户端,任何浏览器可以直接通过HTTP协议访问
优点:服务器功能升级,浏览器可以直接访问使用
缺点:图形效果显示不如C/S架构(结合H5使用)

二、服务器

1.什么是web?

	Web(World wide web)称为万维网,简单理解就是网站,用于表示internet主机上供外界访问的资源
	internet供外界访问的资源分为两大类:
	·静态资源:指web页面中供人们浏览的数据始终是不变的(HTML,CSS)
	·动态资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点、不同设备访问web页面看到的内容不同(jsp/Servlet)
	(在java中,动态web资源开发技术称为java web)

3.常见web服务器

·1)什么是web服务器
web服务器是运行及发布web应用的容器,只有将开发的web项目放进该容器,才能使网络中的用户通过浏览器进行访问
·2)开源:OpenSource(1.开放源代码;2.免费)
	-tomcat(主流web服务器之一,支持Servlet和JSP规范,适合初学者)
	-jetty(淘宝,运行效率比tomcat高)
	-resin(新浪,运行效率最高)
	注:以上三者代码编写方式完全相同,只在开启、关闭服务器软件时的命令稍有区别
·3)收费
	-WebLogic(oracle)
	-WebSphere(IBM)
	注:提供服务与支持,软件大,耗资源
·4)web项目在服务器中的部署
例:tomcat中
手动部署:
		·webapps目录(文件夹)
				-WEB-INF目录(用于存放项目的核心内容,该文件夹中的内容不能被外部直接访问)
							~classes (用于存放class文件)
							~lib (用于存放jar文件)
							~web.xml (用于配置文件)
				-myweb目录(名字可自定义,用于存放静态或者动态资源文件)
使用idea集成tomcat服务器,实现自动部署
		第一步:idea集成tomcat
		File. -->setting -->Bulid、Exception、Deployment -->Application Servers --->➕-->Tomcat Home(输入tomcat解压目录) --> Apply
		第二步:将项目配置到tomcat
		Add Configurations -->➕ -->tomcat server -->local -->Deployment -->➕ -->artifacts -->Apply
关联jar包及项目打包部署
	关联第三方jar包
	WEB-INF-->新建lib目录 -->将第三方jar包复制到该目录下 --> 右键选择Add as library
	导出war包
	Application context:/webproject_war_exploded.       (exploded代表开发版,不会直接把项目第一时间部署到tomcat,而是先写到了out目录下,这个过程称为热部署)
	导出war包:项目完成后,将war包直接放入tomcat的webapps目录中(发布版的项目),启动tomcat后自动解压,即可访问
	步骤一:选择生成war包的项目
	File -->Project Structure -->Artifacts -->➕-->Web Application: Archive -->For:项目名称:war exploded
	步骤二:生成war包
	Build-->Build Artifacts--->项目名称.war--->Bulid-->在out目录下生成war包--->将war包复制到webapps目录下
	注意:如后续项目发生变更,需要重新打成war包,放到tomcat容器中(webapps目录下)
·5)URL访问资源
URL组成:协议+主机+端口+web项目上下文路径+资源路径
例:http://localhost:8080/myweb/hello.html

三、HTTP协议

1.什么是HTTP

·协议就是需要双方或者多方遵守的要求或规范

·HTTP超文本传输协议(Hyper Text Transfer Protocol)是一个基于请求与响应模式的、无状态的、应用层的网络协议、运行于TCP协议基础之上

2.HTTP协议特点

·支持客户端(浏览器)/服务器模式

·简单快速

	客户端只向服务器发送请求的方法和路径,服务器即可响应数据,因而通信速度很快(常用请求方式:GET,POST)

·灵活

	HTTP允许传输任意类型的数据,传输的数据类型由Content-Type标识

·无连接

	无连接是指每次TCP连接只处理一个或者多个请求,服务器处理完请求后,即断开连接(节省传输时间)
		·HTTP1.0版本:响应后,直接断开连接(短连接)
		·HTTP1.1版本:响应后不会立即断开,会等几秒(时间可以设置),如有新的请求,还是通过现有连接通道收发信息,如果没有新的请求,再断开连接(长连接)
									增加了请求头与响应头
									通过Connection报头来控制

·无状态:协议对于事务处理没有记忆能力

3.HTTP协议通信流程

	·客户与服务器建立连接(三次握手)
	·客户发送请求
	·服务器接收请求并做出响应
	·客户与服务器关闭连接(四次挥手)

4.请求报文与响应报文

	·HTTP请求报文
		浏览器以数据块形式向服务器发出请求,这个数据块就是请求报文,由4部分组成:
		1)请求行:请求方法 /地址URL / 协议及其版本 
		2)请求头(request header):键值对形式的属性(例如:请求后可以接收响应的结果文本类型、语言类型;主机号;浏览器类型信息等)
		3)空行:表示以上内容传输完毕,接下来内容是正文或请求数据
		4)请求正文
	·HTTP响应报文
		1)状态行:协议及其版本 响应状态 (例:HTTP/1.1  200 OK)
		2)响应头(response heaser)
		3)空行
		4)响应正文

5.常见状态码

	200			OK  									客户端请求成功
	302			Found								临时重定向
	403			Forbidden						服务器收到请求,拒绝提供服务(通常会给出原因)
	404			Not Found						请求资源不存在
	500			Internal server error 		服务器发生不可预期错误,导致无法完成客户端请求	

四、Servlet

1.Servlet简介

概念

	Servlet:Server Applet,是服务器端的程序(代码、功能实现),可以交互式的处理客户端发送到服务器端请求(接收请求,完成操作响应)

作用

	·接收客户端请求,完成操作
	·动态生成网页(页面数据可变)
	·将包含操作结果的动态网页响应给客户端

2.Servlet编写方式

1)导入servlet-api.jar文件

2-1)实现javax.servlet.Servlet接口,并重写5个方法

		init(ServletConfig config)
		ServletConfig getServletConfig()
		service(ServletRequest req,ServletResponse resp)
		String getServletInfo()
		destroy()

2-2)继承javax.servlet.GenericServlet抽象类,重写service方法

		该抽象类实现了Servlet接口,并重写了除service以外的其他四个方法

2-2)继承javax.servlet.http.HttpServlet抽象类(常用)

		该抽象类继承了GenericServlet,并重写了service方法
		doGet 用于HTTP GET请求
		doPost 用于HTTP POST请求
		doPut 用于HTTP PUT请求
		doDelete 用于HTTP DELETE请求

3.Servlet配置

1)web.xml文件配置

<!--基本配置-->
<servlet>     
<servlet-name>给所配置的servlet类的别名</servlet-name>
<servlet-class>配置的servlet类的全限定名称</servlet-class>
</servlet>
<!--映射配置-->
<servlet-mapping>     
<servlet-name>给所配置的servlet类的别名(与上面保持一致)</servlet-name>

<!--配置将来要访问的路径,注意:此处先写一个 / 代表前面是项目的名称,如没有写 / 会出现404错误 -->
<url-pattern>/</url-pattern>

</servlet-mapping>

2)注解配置(servlet3.0及之后版本才能使用)

	@WebServet("")
	属性:
		·name:servlet的名字(可写,可不写)
		·value:配置url路径,可以配置多个(例:value={"/bs","/dd"}
		·urlPatterns:配置url路径,作用与value一样,不能同时使用
		·loadOnStartup:配置servlet的创建时机

3)url-pattern的匹配规则

	精确匹配:/具体名称
	后缀匹配:*.xxx 
	通配符匹配:/*		(匹配服务器所有资源)
	通配符匹配:/       (匹配服务器所有资源,但.jsp除外)

4)load-on-startup

	1.元素标记容器是否应该在web应用程序启动时就加载这个servlet
	2.值必须是整数,表示servlet加载的先后顺序
		如值为负数或0,请求时加载
		值为正数或0,表示容器在应用启动时就加载并初始化servlet,值越小,优先级越高

与poppy一起学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值