JavaWeb学习笔记(一)
1、基本概念
1.1、前言
Java Web:是用Java技术来解决相关web互联网领域的技术栈。
Web包括:web服务端和web客户端两部分。Java在客户端的应用有java applet,不过使用得很少,Java在服务器端的应用非常的丰富,比如Servlet,JSP和第三方框架等等。Java技术对Web领域的发展注入了强大的动力。
1.2、Web应用程序
可以提供浏览器访问的程序
- a.html、b.html.….多个web资源,这些web资源可以被外界访问,对外界提供服务
- 能访问到的任何一个页面或者资源,都存在于这个世界的某一个角落的计算机上
- 对外有一个URL:统一资源定位标志,就是指网络地址。
- 这个统一的web资源会被放在同一个文件夹下,web应用程序>Tomcat:服务器
- 一个web应用由多部分组成(静态web,动态web)
- html,css
- jsp,servlet
- Java程序
- jar包
- 配置文件(Properties)
Web应用程序编写完毕后,若想提供给外界访问;需要一个服务器来统一管理。
1.3、静态Web
静态网站特点:
- 静态网站是最初的建站方式,浏览者所看到的每个页面是建站者上传到服务器上的一个 html ( htm )文件**,这种网站每增加、删除、修改一个页面,都必须重新对服务器的文件进行一次下载上传**。网页内容一经发布到网站服务器上,无论是否有用户访问,每个静态网页的内容都是保存在网站服务器上的,也就是说,静态网页是实实在在保存在服务器上的文件,每个网页都是一个独立的文件
- 静态网页的内容相对稳定,因此容易被搜索引擎检索
- 静态网页没有数据库的支持,在网站制作和维护方面工作量较大,因此当网站信息量很大时完全依靠静态网页制作方式比较困难
- 静态网页的交互性较差,在功能方面有较大的限制。如:不能实现用户注册和用户登录的功能
静态web原理图如下图所示:
1.4、动态Web
所谓 “ 动态 ” ,并不是指网页上简单的 GIF 动态图片或是 Flash 动画,动态网站的概念现在还没有统一标准,但都具备以下几个基本特征:
- 交互性:网页会根据用户的要求和选择而动态地改变和响应,浏览器作为客户端,成为一个动态交流的桥梁,动态网页的交互性也是今后 Web 发展的潮流
- 自动更新:即无须手动更新 HTML 文档,便会自动生成新页面,可以大大节省工作量
- 因时因人而变:即当不同时间、不同用户访问同一网址时会出现不同页面
动态web原理图如下图所示:
2、Web服务器
2.1、技术讲解
ASP:
动态服务器网页(英文:Active Server Pages,简称ASP),由微软公司开发的服务器端运行的脚本平台,它被Windows下**Internet Information Services (IIS)**的程序所管理。特点:
- 微软:国内最早流行的就是ASP
- 在HTML中嵌入了VB的脚本, ASP + COM
- 在ASP开发中,基本一个页面都有几千行的业务代码,页面极其换乱
- 维护成本高
- C#
PHP:
- PHP开发速度很快,功能很强大,跨平台,代码很简单 (70% , WP)
- 无法承载大访问量的情况(局限性)
**JSP/Servlet **:
- sun公司主推的B/S架构
- 基于Java语言的 (所有的大公司,或者一些开源的组件,都是用Java写的)
- 可以承载三高问题(高并发,高可用,高性能)带来的影响
- 语法像ASP , ASP–>JSP , 加强市场强度
不同之处在哪?
- Servlet在Java代码中通过HttpServletResponse对象动态输出HTML内容
- JSP在静态HTML内容中嵌入Java代码,Java代码被动态执行后生成HTML内容
各自的特点
- Servlet能够很好地组织业务逻辑代码,但是在Java源文件中通过字符串拼接的方式生成动态HTML内容会导致代码维护困难、可读性差
- JSP虽然规避了Servlet在生成HTML内容方面的劣势,但是在HTML中混入大量、复杂的业务逻辑同样也是不可取的
可以通过mvc模式使两者结合起来:
2.2、Web服务器
服务器是一种被动的操作,用来处理用户的一些请求和给用户一些响应信息
IIS
- 微软的; ASP…,Windows中自带的
Tomcat
- Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
- Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个Java初学web的人来说,它是最佳的选择
- Tomcat 实际上运行JSP 页面和Servlet。
3、Tomcat
3.1、文件目录
3.2、核心配置文件
端口号配置
- Tomcat默认端口号:8080
- MySQL端口号:3306
- HTTP:80
- HTTPS:443
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>
主机名配置
- 默认的主机名为localhost------>127.0.0.1
- 默认网站应用存放的位置为:webapps
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
网站是如何访问的
-
输入域名,回车
-
检查本机的C:\Windows\System32\drivers\etc\hosts配置文件下有没有这个域名映射
-
有:直接返回对应的IP地址,这个地址中,有我们需要访问的Web程序,可以直接访问
127.0.0.1 www.thomas.com
-
没有:去DNS服务器找,找到的话就返回,找不到就返回找不到
-
3.3、发布一个网站
将自己写的网站,放到服务器(Tomcat)中指定的web应用的文件夹(webapps)下,就可以访问了
网站应有的结构:
--webapps :Tomcat服务器的web目录
-ROOT
-kuangstudy :网站的目录名
- WEB-INF
-classes : java程序
-lib:web应用所依赖的jar包
-web.xml :网站配置文件
- index.html 默认的首页
- static
-css
-style.css
-js
-img
-.....
4、HTTP
4.1、什么是HTTP
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。
HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。
- 文本:html、字符串…
- 超文本:图片、音乐、视频、定位、地图
- 默认端口80
- https:安全的,默认端口是443
4.2、两个时代
- HTTP/1.0:客户端与Web服务器连接后,只能获得一个Web资源,获取完后就断开连接
- 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
4.3.1、请求行
- 请求行中的请求方式:GET
- 请求方式:Get,Post,HEAD,DELETE,PUT,TRACT…
- get:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据内容,不安全,但高效
- post:请求能够携带的参数没有限制,大小没有限制,不会在浏览器的URL地址栏显示数据内容,安全,但不高效。
4.3.2、消息头
Accept:告诉浏览器,它所支持的数据类型
Accept-Encoding:支持哪种编码格式 GBK UTF-8 GB2312 ISO8859-1
Accept-Language:告诉浏览器,它的语言环境
Cache-Control:缓存控制
Connection:告诉浏览器,请求完成是断开还是保持连接
HOST:主机..../.
4.4、HTTP响应
- 服务器发出响应给客户端
Cache-Control:private 缓存控制
Connection:Keep-Alive 连接
Content-Encoding:gzip 编码
Content-Type:text/html 类型
4.4.1、响应体
Accept:告诉浏览器,它所支持的数据类型
Accept-Encoding:支持哪种编码格式 GBK UTF-8 GB2312 ISO8859-1
Accept-Language:告诉浏览器,它的语言环境
Cache-Control:缓存控制
Connection:告诉浏览器,请求完成是断开还是保持连接
HOST:主机..../.
Refresh:告诉客户端,多久刷新一次;
Location:让网页重新定位;
4.4.2、响应状态码
200:请求响应成功 200
3xx:请求重定向
- 重定向:你重新到我给你新位置去;
4xx:找不到资源 404
- 资源不存在;
5xx:服务器代码错误 500 502:网关错误
5、Maven
5.1、简介
Maven是一个采用纯Java编写的开源项目管理工具。Maven采用了一种被称之为project object model (POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xml的文件中,通过该文件,Maven可以管理项目的整个声明周期,包括编译,构建,测试,发布,报告等等。目前Apache下绝大多数项目都已经采用Maven进行管理。而Maven本身还支持多种插件,可以方便更灵活的控制项目。一句话:Maven是一个项目管理和构建工具,主要做编译、测试、报告、打包、部署等操作完成项目的构建。Maven不仅是构建工具,还是一个依赖管理工具和项目管理工具,它提供了中央仓库,能帮我们自动下载构件。
5.2、配置
配置镜像(镜像(Mirroring)是一种文件存储形式,是冗余的一种类型,一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像。),使用默认仓库下载jar包会比较慢,所以配置一个阿里云镜像
打开maven安装目录下的conf\settings.xml 添加如下信息
添加本地仓库路径:
中央仓库,能帮我们自动下载构件。