JavaWeb(一)

JavaWeb(一)

一 基本概念

1.1 WEB开发

web,在网页设计中我们称为网页的意思。现广泛译作网络、互联网等技术领域。表现为三种形式,即超文本(hypertext)、超媒体(hypermedia)、超文本传输协议(HTTP)等。web资源分为:

  • 静态web : 如html页面,供人们浏览的数据始终不变
  • 动态web : web页面中供人们浏览的数据是始终变化的,不同时间看到的内容各不相同

技术栈

静态web开发技术:html

动态web开发技术:JSP/Servlet, ASP, PHP

在Java中,动态web资源开发的技术统称为JavaWeb;

1.2 WEB 应用程序

WEB应用程序指供浏览器访问的程序。有a.html 、b.html……多个web资源,这多个web资源用于对外提供服务,把这多个web资源放在一个目录中,以组成一个web应用(或web应用程序)
  一个web应用由多个静态web资源和动态web资源组成,如:html、css、js文件,Jsp文件、java程序、支持jar包、配置文件等等。
  Web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚似目录的映射

1.3 静态WEB

*.htm, *.html,这些都是网页的后缀,现在从web服务器中读取这些内容,意味着把网页内容通过服务器展现给用户;

在这里插入图片描述

客户端使用WEB浏览器,经过网络连接到服务器上,使用HTTP协议发起一个请求(Request),告诉服务器需要得到哪个页面,所有的请求交给WEB服务器,之后WEB服务器根据用户的需要,从文件系统取出内容。之后通过WEB服务器返回给客户端.

  • 静态web的缺点
    • Web页面无法动态更新,所有用户看到都是同一个页面,javaSCript可实现web客户客户端动态效果
    • 静态WEB无法连接数据库,无法实现和用户的交互
1.4 动态WEB

Web的页面展示的效果因人而异

在这里插入图片描述

程序使用客户端和服务端,客户端使用浏览器,通过网络连接到服务器上,使用HTTP协议发起请求,所有请求都先经过一个WEB Server Plugin(服务器插件),此插件用于区分是请求的是静态资源还是动态资源。

如果WEB Server Plugin发现客户端请求的是静态资源,则直接返回给web服务器,再从文件系统中取出内容,发给客户端;

如果WEB Server Plugin发现客户端请求的是动态资源,则先将请求转交给web容器,在容器中连接数据库,从数据库中取出内容交给WEB服务器,而后发客户端;

  • 动态web缺点:

    • 加入服务器的动态web资源出现了错误,我们需要重新编写我们的后台程序,重新发布;停机维护
  • 动态web优点:

    • Web页面可以动态更新,所有用户看到都不是同一个页面

    • 它可以与数据库交互 (数据持久化:注册,商品信息,用户信息…)

1.5 动态WEB应用的实现手段
  • Microsoft ASP、ASP.NET
  • PHP
  • JAVA Servlet/JSP
1.ASP
  • 微软:国内最早流行的就是ASP;
  • 在HTML中嵌入了VB的脚本, ASP + COM;
  • 在ASP开发中,基本一个页面都有几千行的业务代码,页面极其换乱
  • 维护成本高!
2. PHP
  • PHP开发速度很快,功能很强大,跨平台,代码很简单 (70% , WP)
  • 无法承载大访问量的情况(局限性)
3. JAVA Servlet/JSP

B/S:浏览和服务器

C/S: 客户端和服务器

  • sun公司主推的B/S架构
  • 基于Java语言的 (所有的大公司,或者一些开源的组件,都是用Java写的)
  • 可以承载三高问题带来的影响;
  • JSP编写效果与ASP是非常相似的。很方便地使一些ASP程序员转向JSP的学习,加大市场的竞争力度。

二 WEB服务器

2.1 服务器简介

https://baike.so.com/doc/5068069-5295552.html

1、Web服务器是指驻留于因特网上某种类型计算机的程序,是可以向发出请求的浏览器提供文档的程序。当Web浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件反馈到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。

2、服务器是一种被动程序:只有当Internet上运行在其他计算机中的浏览器发出请求时,服务器才会响应。

2.2 Tomcat

TomcatTomcat是一个实现了JAVA EE标准的最小的WEB服务器,是Apache 软件基金会的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且开源免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。学习JavaWeb开发一般都使用Tomcat服务器,该服务器支持全部JSP以及Servlet规范,启动界面如图:

在这里插入图片描述

三 搭建JavaWeb应用开发环境——Tomcat服务器

3.1、下载和安装Tomcat服务器
  • Tomcat官方站点:http://jakarta.apache.org

  • 下载Tomcat安装程序包:http://tomcat.apache.org/

在这里插入图片描述

  1. tar.gz文件是Linux操作系统下的安装版本
  2. exe文件是Windows系统下的安装版本
  3. zip文件是Windows系统下的压缩版本

下载好之后解压[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kAoA1L48-1581355559071)(C:\Users\17578\AppData\Roaming\Typora\typora-user-images\1581346223656.png)]解压之后就完成了安装

3.2 Tomcat的启动与测试

Tomcat目录结构

在这里插入图片描述

启动。关闭Tomcat

在这里插入图片描述

测试Tomcat服务器

打开浏览器,输入http://localhost:8080/,能显示如下界面代表安装成功。

3.3 Tomcat端口配置

配置文件都在此文件夹下[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7keGJ00q-1581355559074)(C:\Users\17578\AppData\Roaming\Typora\typora-user-images\1581346800417.png)]在此文件夹下的[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VBVBm5K7-1581355559076)(C:\Users\17578\AppData\Roaming\Typora\typora-user-images\1581346865803.png)]文件中可进行端口的修改

将端口修改为8081

默认配置

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />

修改成8081端口

<Connector port="8081" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />

打开浏览器,输入http://localhost:8081/

3.4 JavaWeb应用组成结构
--webapps :Tomcat服务器的web目录
	-ROOT
	-Demo :网站的目录名
		- WEB-INF
			-classes : java程序
			-lib:web应用所依赖的jar包
			-web.xml :网站配置文件
		- index.html 默认的首页
		- static 
            -css
            	-style.css
            -js
            -img
         -.....

四 HTTP

4.1 什么是Http

HTTP(超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP之上。

4.2 HTTP1.0和HTTP1.1的区别
  • http1.0

    • HTTP/1.0:客户端可以与web服务器连接后,只能获得一个web资源,断开连接
  • http2.0

    • HTTP/1.1:客户端可以与web服务器连接后,可以获得多个web资源。
4.3 Http 请求
  • 客户端—发请求(Request)—服务器
Request URL:https://www.baidu.com/   请求地址
Request Method:GET    get方法/post方法
Status Code:200 OK    状态码:200
Remote(远程) Address:14.215.177.39:443
Accept:text/html  
Accept-Encoding:gzip, deflate, br
Accept-Language:zh-CN,zh;q=0.9    语言
Cache-Control:max-age=0
Connection:keep-alive

1. 请求行

  • 请求行中的请求方式:GET
  • 请求方式:Get,Post,HEAD,DELETE,PUT,TRACT…
    • get:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据内容,不安全,但高效
    • post:请求能够携带的参数没有限制,大小没有限制,不会在浏览器的URL地址栏显示数据内容,安全,但不高效。

2.消息头

   accept:浏览器通过这个头告诉服务器,它所支持的数据类型
  Accept-Charset: 浏览器通过这个头告诉服务器,它支持哪种字符集
  Accept-Encoding:浏览器通过这个头告诉服务器,支持的压缩格式
  Accept-Language:浏览器通过这个头告诉服务器,它的语言环境
  Host:浏览器通过这个头告诉服务器,想访问哪台主机
  If-Modified-Since: 浏览器通过这个头告诉服务器,缓存数据的时间
  Referer:浏览器通过这个头告诉服务器,客户机是哪个页面来的  防盗链
  Connection:浏览器通过这个头告诉服务器,请求完后是断开链接还是何持链接
4.4 Http响应
  • 服务器—响应-----客户端
Cache-Control:private    缓存控制
Connection:Keep-Alive    连接
Content-Encoding:gzip    编码
Content-Type:text/html   类型

1.状态码

200:请求响应成功  200

3xx:请求重定向 

- 重定向:你重新到我给你新位置去;

4xx:找不到资源   404

- 资源不存在;

5xx:服务器代码错误   500  
    
502:网关错误

常用响应头

   Location: 服务器通过这个头,来告诉浏览器跳到哪里
  Server:服务器通过这个头,告诉浏览器服务器的型号
  Content-Encoding:服务器通过这个头,告诉浏览器,数据的压缩格式
  Content-Length: 服务器通过这个头,告诉浏览器回送数据的长度
  Content-Language: 服务器通过这个头,告诉浏览器语言环境
  Content-Type:服务器通过这个头,告诉浏览器回送数据的类型
  Refresh:服务器通过这个头,告诉浏览器定时刷新
  Content-Disposition: 服务器通过这个头,告诉浏览器以下载方式打数据
  Transfer-Encoding:服务器通过这个头,告诉浏览器数据是以分块方式回送的
  Expires: -1  控制浏览器不要缓存
  Cache-Control: no-cache  
  Pragma: no-cache
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值