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

目录
相关文章
|
4天前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
|
4天前
|
缓存 前端开发 Java
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
|
5天前
|
SQL JSON JavaScript
JavaWeb基础9——VUE,Element&整合Javaweb的商品管理系统
Vue 指令、生命周期、this和$、vue脚手架进行模块化开发/ElementUI框架、综合案例,element商品列表展示增删改查
JavaWeb基础9——VUE,Element&整合Javaweb的商品管理系统
|
30天前
|
前端开发 IDE Java
"揭秘前端转Java的秘径:SpringBoot Web极速入门,掌握分层解耦艺术,让你的后端代码飞起来,你敢来挑战吗?"
【8月更文挑战第19天】面向前端开发者介绍Spring Boot后端开发,通过简化Spring应用搭建,快速实现Web应用。本文以创建“Hello World”应用为例,展示项目基本结构与运行方式。进而深入探讨三层架构(Controller、Service、DAO)下的分层解耦概念,通过员工信息管理示例,演示各层如何协作及依赖注入的使用,以此提升代码灵活性与可维护性。
34 2
|
21天前
|
消息中间件 缓存 Java
如何优化大型Java后端系统的性能:从代码到架构
当面对大型Java后端系统时,性能优化不仅仅是简单地提高代码效率或硬件资源的投入,而是涉及到多层次的技术策略。本篇文章将从代码层面的优化到系统架构的调整,详细探讨如何通过多种方式来提升Java后端系统的性能。通过对常见问题的深入分析和实际案例的分享,我们将探索有效的性能优化策略,帮助开发者构建更高效、更可靠的后端系统。
|
24天前
|
前端开发 JavaScript Java
【Azure 应用服务】App Service For Windows 中如何设置代理实现前端静态文件和后端Java Spring Boot Jar包
【Azure 应用服务】App Service For Windows 中如何设置代理实现前端静态文件和后端Java Spring Boot Jar包
|
2月前
|
Java Perl
Java进阶之正则表达式
【7月更文挑战第17天】正则表达式(RegEx)是一种模式匹配工具,用于在字符串中执行搜索、替换等操作。它由普通字符和特殊元字符组成,后者定义匹配规则。
21 4
|
2月前
|
设计模式 Java
Java进阶之代理
Java进阶之代理
21 4
|
2月前
|
设计模式 Java
Java进阶之代理
Java进阶之代理
21 3
|
2月前
|
设计模式 Java
Java进阶之代理
【7月更文挑战第16天】Java动态代理通过`java.lang.reflect.Proxy`和`InvocationHandler`实现,无需编译期定义代理类。与静态代理相比,它更灵活,代码更简洁,适用于方法数量变化或未知接口代理。
20 2

热门文章

最新文章