JavaWeb学习

1.1、Web开发概念:

  • 静态Web:静态网页资源,数据不会变化,如:html,css

  • 动态Web:数据会发生变化

    • 技术栈:Servlet/JSP、ASP、PHP
      在Java中,动态网页资源开发的技术统称为JavaWeb
      1.2、Web应用程序
      概念:可以提供浏览器访问的程序
      命令:ping www.baidu.com查询物理ip
      同一个ip下可能有多个电脑,但是通过交换机可以区别在哪个电脑上
      URL
      这些统一的web资源会被放在同一个文件夹下,即web应用程序–>程序通过Tomcat服务器执行
      一个Web应用由多个部分组成:
  • html、css、js

  • jsp、servlet

  • java程序

  • jar包

  • 配置文件(Properties)

1.3、静态Web
图片
静态Web存在的缺点:

  • Web页面无法动态更新,所有用户看到的都是同一个页面
    -解决:
    1. 轮播图(伪动态)
    2. js
    3. VBScript
  • 无法与数据库交互(数据无法持久化——没办法保存数据;用户无法交互)

1.4、动态Web
图片
页面会动态展示:Web页面效果因人而异
缺点:

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

优点:
Web页面可以动态更新
它可以与数据库交互(数据持久化)

2.1Web服务器计数

  1. ASP:
  • 微软出版
  • 在HTML中嵌入了VB的脚本,ASP+COM
  • 在ASP开发中,基本一个页面如下,会造成混乱;
<h1>
<%System.out.println("hello")%>
</h1>
  • C#
  • 受限于(Internet information Services)IIS服务器
  1. JSP/Servlet:
  • sun公司主推的B/S架构(浏览器和服务器;C/S架构:客户端和服务器)
  • 基于Java语言的(所有的大公司,或者一些开源的组件,都是用Java写的)
  • 可以承载三高问题带来的影响
  • 语法像ASP
  1. PHP:
  • 开发速度快,功能强大,跨平台,代码简单
  • 无法承载大访问量的情况(局限于中小型)
  • 中国70%都是中小型,而且有开源的WP模板引擎,导致PHP流行

  1. 2.2Web服务器
    服务器是一种被动的操作,是用来请求用户的的一些请求和给用户的一些响应信息
    IIS:…
    Tomcat:
  • 技术先进、性能稳定,而且免费(初学者优选)
  • 在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
    诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器

java的jdk中的bin是执行夹;include包含很多c语言的文件,比如一些底层的;jre内部环境,java的核心jar包是rt.rar(反射中学习,笔试刷题的来源是rt包)

下载Tomcat:
1.安装或解压
2.了解配置文件及目录结构
3.这个东西的作用

3、Tomcat
3.1安装Tomcat
3.2
Tomcat官网
conf(配置文件夹):服务器核心配置文件server.xml,其Connector设置了端口号为8080,其Host设置了主机的名称localhost
页面资源文件夹wecapps:其下的每一个文件夹代表一个web应用,root文件夹下有个index.jsp,实际上访问的就是这个页面
配置文件都可以改:C:–>windows–>system32存放系统的核心配置存放驱动–>driver文件夹–>etc代表配置–>locals代表主机——可以配置主机的名称localhost为其他,可以配置启动的端口号

  • Tomcat的默认端口号为8080
  • mysql的默认端口号为3306
  • http的默认端口号为80
  • https的默认端口号为443

网站是如何访问的:
1.输入域名,回车
2.检查本机host文件下有没有这个域名的映射

  • 有,直接返回对应的ip地址,这个地址中有我们需要访问的web程序,可以直接访问
  • 无,去DNS服务器(管理所有域名的地方)上寻找,途中有很多中间商,找得到就返回,找不到就显示丢失

可以配置一下环境变量(可选项)

3.4发布一个web网站
docx:tomcat文档页面
examples:文档(这里不会的可以看源码自学)

  1. 将自己写的网站,放到服务器(tomcat)中指定的web应用文件夹(webapps)下,就可以访问了
    网站应该有的结构:
--webapps:tomcat服务器的web目录
	-ROOT
	-kuangstudy:网站的目录名
		-index.html:默认的首页
		-WEB - INF:放网站程序的
			-classes:java程序
			-lib:web应用所依赖的jar包
			-web.xml:网页配置文件
		-static:资源文件
			-css
				-style.css
			-js
			-img
		-...

4.HTTP
4.1、什么是http(超文本传输协议)
http是一个简单的请求-响应协议,它通常运行在TCP之上。
超文本:图片、音乐、视频、定位、地图…
https:s是security,安全的
4.2、两个时代

  • http1.0:HTTP/1.0:客户端可以与web服务器连接后,只能获得一个web资源,即第二次请求就断开连接
  • http2.0:HTTP/1.1:客户端可以与web服务器连接后,可以获得多个web资源

4.3、http请求

百度为例(General意味着客户端和服务器都有):

//General
Request URL: https://www.baidu.com/——请求地址(请求行)
Request Method: GET——get方法
Status Code: 200 OK——状态码
Remote Address: 14.215.177.38: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

http请求分为

  1. 请求行:主要是协议
    请求行中的请求方式:GET(当前例子)
    请求方式:Get、Post、restful风格:HEAD、DELETE、PUT、TRACT
    get:一次请求携带的参数较少,大小有限制,会在浏览器的url地址栏显示数据内容,不安全但高效
    post:一次请求携带的参数没有限制,大小没有限制,安全但不高效(高效是相对流量而言)
  2. 请求头
    请求头模板
Accept——告诉浏览器支持的数据类型
Accept-Encoding——支持的编码格式:GBK、UTF-8、GB2312、ISO8859-1
Accept-Language——告诉浏览器,它的语言环境
Cache-Control——缓存控制
Connection——告诉浏览器,请求完成是断开还是保持连接
Host——主机
...

4.4、http响应

百度为例

//General
Request URL: https://www.baidu.com/——请求地址
Request Method: GET——get方法
Status Code: 200 OK——状态码
Remote Address: 14.215.177.38:443——百度远程地址+端口
Cache-Control: private——缓存控制
Connection: keep-alive——连接(保持连接)
Content-Encoding: gzip——编码
Content-Type: text/html;charset=utf-8——类型
  1. 响应头略
  2. 响应体
Accept——告诉浏览器支持的数据类型
Accept-Encoding——支持的编码格式:GBK、UTF-8、GB2312、ISO8859-1
Accept-Language——告诉浏览器,它的语言环境
Cache-Control——缓存控制
Connection——告诉浏览器,请求完成是断开还是保持连接
Host——主机
Refrush——告诉客户端,多久刷新一次
Location——让网页重新定位
...

3.响应状态码
200:请求响应成功
3**:请求重定向
重定向:你重新去到我给你的新位置去
4**:找不到资源,常见404
5**:服务器代码错误,常见500、502:网关错误
5.Maven
在Java web中,需要使用大量jar包,我们要手动导入,因此如何自动导入并且配置jar包-Maven诞生,Maven是一个架构管理工具
5.1、Maven项目架构管理工具

核心思想:约定大于配置(约束性)
Maven会规定你如何去编写我们的java代码,必须按照这个规范来
5.2、下载安装Maven
binary 指的是编译后的二进制文件。是可以直接使用的。(apache-maven-3.2.3-bin.zip)
source.zip是maven的源码包。
tar.gz 是一种压缩文件,在Linux和OSX下的

下载完成解压bin.zip
apache-maven-3.2.3-bin中的boot文件夹存放启动需要的选项,即一些jar包。conf文件夹的setting.xml配置文件:proxies配置连接的一些端口信息,servers服务,mirrors镜像:镜像是用来方便下载的,Maven是国外的,国内有墙,我们访问非常慢,甚至无法访问,因此可以翻墙,如利用VPN
5.3、配置环境变量
有时候不配置也可以使用maven,但按照规范走:
在我们的系统环境变量中,配置如下配置:

  • M2_HOME——maven目录下的bin目录(为什么要这样命名:很多自动依赖的系统,如springboot、springcloud里面,它引用m2的地址,不配置不影响现在但影响以后的学习)
  • MAVEN_HOME——maven的目录
  • 在系统的path中配置maven目录(和m2的路径一样)——%MAVEN_HOME%\bin

命令行检查安装是否成功:mvn -version ——mvn在bin目录下的mvn.cmd
PS:可以配置多个maven环境,因为版本不冲突
5.4、阿里云镜像
镜像作用:加速下载
国内尽量使用阿里云下载
在conf配置的settings.xml的mirrors中添加

此处代码不支持一些镜像的操作(坑)
<mirror>
        <id>alimaven</id>
        <mirrorOf>central</mirrorOf>
        <name>aliyun maven</name>
        <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
 </mirror>
此处代码支持一些镜像的操作
<mirror>
       <id>alimaven</id>
       <mirrorOf>*,!jeecg,!jeecg-snapshots</mirrorOf>
       <name>aliyun maven</name>
       <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>

镜像可以配置多个,只是不一定生效
5.5、本地仓库
在本地的仓库,远程的仓库;

  1. 建立一个本地的仓库
    看conf配置的settings.xml中国的localRespository,注意不要被注释处的默认地址忽悠,可能没有这个地址,可以自己去修改仓库的地址
  2. 创建Maven项目(idea软件)
  • create new project–>Maven–>(可选,勾选是为了使用maven的模板)勾选create from archetype–>选择java环境变量安装目录–>选择maven-archetype-webapp(会提示是一个简单的Java Web项目——创建一个maven web项目(ps:普通的maven项目什么都不用勾))–>next
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值