Java后端进阶之路: JavaWeb(一)

简介: Java后端进阶之路: JavaWeb

javaweb

1.基本概念

1.1前言

web开发

  • web,网页的开发 www.baidu.com
  • 静态 web
  • html css
  • 提供给所有人看的数据始终不会发生变化!
  • 动态web
  • 淘宝推荐,几乎所有的网站都是动态的
  • 提供给所有人的数据会发生变化,每个人不同时间,不同地点看到的信息各不相同
  • 技术栈:Servlet/jsp,ASP,PHP,

在java中动态的web资源开发技术统称为:javaweb;

1.2 web应用程序

web应用程序:可以提供浏览器访问的程序

  • a.html.bhtml....等等多个web资源,此资源可以被外界访问,可以为外界服务;
  • 你们可以访问到的任何一个页面或者是资源,都存在与这个世界的某一个角落的计算机上
  • URL:通过这个来作为连接访问
  • 这个统一的web资源会被放在同一个文件夹下,web应用程序-->tomcat:服务器
  • 一个web应用由多部分组成(静态web,动态web)
  • html,css,js
  • jsp,servlet
  • java
  • jar包
  • 配置文件(Properties)

web程序的应用程序编写完毕后,提供给外界访问,需要一个服务器来统一管理

1.3静态web

  • .htm.html这些网页后缀,如果服务器存在这些东西,我们可以直接进行读取

  • 静态web存在缺点
  • web页面无法动态更新,所有的用户都看到的是同一个页面
  • 轮播图,点击特效:伪动态
  • javaScript【实际开发中,用的最多】
  • VBscript【微软开发】
  • 它无法实现和数据库交互(数据无法持久化,用户无法交互)

1.4 页面动态展示

页面会动态的展示:web的页面展示的效果因人而异,

  • 缺点:加入服务器的动态web资源出现了错误,我们需要重新编写我们的后台程序,重新发布。
  • 以前的网站,停机维护就是如此

优点:

  • Web页面可以动态更新,所有用户看到的都不是同一个页面
  • 可以和数据库交互(数据持久化,注册,信息可以得到保存)

2.web服务器

2.1 服务端技术

ASP:

  • 微软:国内最早流星的是ASP
  • 在html中嵌入VB的脚本,ASP+HTML
  • 在ASP开发中,基本一个页面,大量互相嵌套的业务逻辑代码,造成维护成本过高

PHP:

  • PHP将开发速度很快,功能强大,跨平台,代码简单(70%,wp)
  • 无法承载大访问量的情况(局限性)

JSP/Servlet

B/S 浏览与服务器

C/S 客户端与服务器

  • sun公司主推的B/S架构
  • 基于java语言的(所有大公司,或者一些开源的组件,都是用java写的)
  • 可以承载三高的问题带来的影响
  • 语法想ASP-->JSP加强市场强度

2.2web服务器

作用:接收用户的请求给予相应的响应,是一种被动操做,用来处理用户请求给用户返回响应信息

lls

微软:ASP,,windows中自带的

tomcat:

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个java初学web来说,

诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为10

工作3-5年可以尝试手写tomcat服务器

下载tomcat:

  1. 安装 and 解压
  2. 了解配置文件以及目录结构
  3. 这个东西的作用

3,tomcat

3.1安装tomcat

下载windows 64安装包

解读tomcat的文件目录

3.2启动,关闭tomcat

访问测试url:

http://localhost:8080/

3.3配置

核心文件:

可能遇到的问题:

1.java环境变量没有配置

2.闪退问题,需要配置兼容性

3.乱码问题要去配置文件设置

可以配置启动的端口号

  • 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">

高难度面试题

请你谈谈网站是如何进行访问的!

  1. 输入一个域名:回车
  2. 检查本机的C:\Windows\System32\drivers\etc\hosts配置文件下有没有这个域名的映射
  1. 有:直接返回对应的ip地址,这个地址中有我们访问的web程序,可以直接访问
127.0.0.1 www.qingjiang.com


  1. 没有:上dns服务器上找,找到的话就返回,没有的话返回你的网页走丢了

3.tomcat文档本地地址http://localhost:8080/examples/

3.4发布web网站

  • 先写网站放到tomcat/webapps/,服务器中指定的web应用文件夹下,就可以访问了

网站该有的结构

--webapps:tomcat服务器的web目录
    -root
    -项目名: 网站的目录名
      -web-inf
        -web.xml
        -classes:java
            -lib:web应用所依赖的jar包
      -index.html
         -static
            css
                style
            js
            img

HTTP协议:面试

Maven:构建工具

  • Maven安装包

Servlet

  • helloword
  • Servlet
  • 原理

4.http

4.1什么是http

Http 超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直截了当。

  • 文本:html,字符串等等
  • 超文本:图片,音乐,视频,定位,地图
  • 端口号:80

Https:安全的

  • 端口443

4.2两个时代

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

4.3http请求

  • 客户端---》发送请求(Requset)---》服务器

百度:

Request URL: https://www.baidu.com/ //请求地址
Request Method: GET     get方法/post方法
Status Code: 200 OK   状态码:200
Remote Address: 163.177.151.110: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/post
  • 请求方式: Get/post, HEAD,DELETE,put tract
  • get:请求能够携带的参数比较小,大小被限制,会在浏览器的url地址栏显示数据内容,不安全,但高效。
  • post:请求能够携带的参数没有限制,没有大小限制,不会在浏览器的URL地址栏显示数据内容,安全但不高效

2.消息头

Accept 告诉浏览器,它所支持的数据类型
Accept-Encoding 支持那种编码格式 gbk,utf-8,gb2312,iso8859-1(java默认编码)
Accept-Language    语言
Cache-Control 缓存控制
Connection 告诉浏览器请求完成是断开还是保持连接
HOST:主机

4.4HTTP响应

  • 服务器---》响应---》客户端

百度:

Cache-Control: private    缓存控制
Connection: keep-alive    连接:保持连接
Content-Encoding: gzip    编码
Content-Type: text/html;charset=utf-8 类型

1.响应体

Accept 告诉浏览器,它所支持的数据类型
Accept-Encoding 支持那种编码格式 gbk,utf-8,gb2312,iso8859-1(java默认编码)
Accept-Language    语言
Cache-Control 缓存控制
Connection 告诉浏览器请求完成是断开还是保持连接
HOST:主机
Refresh:告诉客户端,多久刷新一次
Location:让网页重新定位

2.响应状态码(重点)

200:请求响应成功

3xx:请求重定向

  • 重定向:你重新到我给你的新位置去

4xx:找不到资源:404

  • 资源不存在:

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

常见面试题:

当你的浏览器中地址栏输入地址并回车的一瞬间到页面能够展示回来,经历了什么?


Java后端进阶之路: JavaWeb(二)https://developer.aliyun.com/article/1469548

目录
相关文章
|
2月前
|
NoSQL Java 关系型数据库
凭借Java开发进阶面试秘籍(核心版)逆流而上
最近参加了面试或者身边有朋友在面试的兄弟有没有发现,现在的面试不仅会问八股文,还会考察框架、项目实战、算法数据结构等等,需要准备的越来越多。 其实面试的时候,并不是要求你所有的知识点都会,而是关键的问题答到点子上!这份《Java 开发进阶面试秘籍(核心版)》由 P8 面试官整体把控,目前已经更新了 30 万字! 资料中涵盖了一线大厂、中小厂面试真题,毕竟真题都是技术领域最经典的基础知识和经验沉淀的汇总,非常有必要学习掌握!双重 buff 叠加,offer 接到手软~ 点击此处取,这可能是你到目前为止领取的最具含金量的一份资料! 整套资料涵盖:Spring、Spring
|
5天前
|
存储 安全 编译器
c++的学习之路:3、入门(2)
c++的学习之路:3、入门(2)
11 0
|
30天前
|
SQL 前端开发 Java
Java后端进阶之路: JavaWeb(四)
Java后端进阶之路: JavaWeb
33 1
|
XML SQL Java
Java后端进阶之路: JavaWeb(三)
Java后端进阶之路: JavaWeb
31 1
|
30天前
|
前端开发 Java 应用服务中间件
Java后端进阶之路: JavaWeb(二)
Java后端进阶之路: JavaWeb
71 1
|
8月前
|
Java 关系型数据库 MySQL
JAVA后端学习路线
JAVA后端学习路线
106 0
JAVA后端学习路线
|
存储 Java 数据安全/隐私保护
Java开发必学知识合集(一)
Java开发过程中,常用且重要的知识点是开发中最基本的,尤其是刚接触Java开发不久的开发者来说,基本功很重要,是直接做Java工作的基本,那么本文就来分享一下在Java开发过程中的常用的知识点,由于篇幅问题,这里只分享一部分内容,没有分享到的会在后面的博文中分享。
75 0
Java开发必学知识合集(一)
|
前端开发 JavaScript 算法
java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)
目录前言1. 学习路线2. 学习方法 前言 这篇文章主要总结我之前所学过的框架以及学习路线 从实打实的零基础到框架再到项目 之后实习工作 也在这篇博客中记录我的学习笔记 以及在笔记中遇到的配置安装、代码bug等错误 都从零开始摸索并且记录了下来 后期也会一直实时更新 一键三连防丢失 直奔主题 1. 学习路线 作为刚开始的程序员小白,你可能想成为一名大佬,但你连基本的程序、命令等都不懂,不用慌,学就完事了,大家都是这么过来的 以下文章链接都是实打实的记录学术博客 你可以通过我的文章进行巩固学习 在每篇博客中还
225 0
|
设计模式 运维 前端开发
【饭谈】小白必看!前端测开学习路线!
【饭谈】小白必看!前端测开学习路线!
|
人工智能 缓存 网络协议
2021-Java后端工程师必会知识点-(Lunix)
前言 文本已收录至我的GitHub仓库,欢迎Star:github.com/bin39232820… 种一棵树最好的时间是十年前,其次是现在
179 0