JavaWeb-汇总

Java Web,是用Java技术来解决相关web互联网领域的技术栈。

使用到的技术&工具:IDEA + Maven + Tomcat + Servlet+ JSP

  • 开发工具:IDEA
  • 项目构建工具:Maven
  • 服务器:Tomcat
  • 动态web技术:JSP/Servlet技术

走一遍创建一个web应用程序到部署(启动)的流程。详细笔记见:传送门


JavaWeb

基本概念

Java Web,是用Java技术来解决相关web互联网领域的技术栈。web包括:web服务端和web客户端两部分。Java在客户端的应用有Java Applet,不过使用得很少,Java在服务器端的应用非常的丰富,比如ServletJSP、第三方框架等等。Java技术对Web领域的发展注入了强大的动力。摘自百度百科


web开发

  • web,网页的意思,www.baidu.com
  • 静态web
    • html、css
    • 提供给所有人看的数据,始终不会发生变化
  • 动态web
    • 淘宝,几乎所有的网站
    • 提供给所有人看的数据始终会发生变化,每个人在不同的时间,不同的地点看到的信息各不相同
    • 技术栈:servlet/JSP,ASP,PHP
  • 在Java中,动态web资源开发的技术统称为Javaweb

web应用程序

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

  • a.html、b.html… … 多个web资源,这些web资源可以被外界访问,对外界提供服务
  • 能访问到的任何一个页面或资源,都存在于这个世界的某一个角落的计算机上
  • URL:统一资源定位符(uniform resource locator)是因特网的万维网服务程序上用于指定信息位置的表示方法。摘自百度百科
  • 这个统一的web资源会被放在同一个文件夹下,web应用程序 --> Tomcat服务器(web应用程序编写完毕后,若想提供给外界访问需要一个服务器来统一管理)
  • 一个web应用程序由多部分组成(静态web、动态web)
    • html,css,js
    • Jsp,servlet
    • Java程序
    • jar包
    • 配置文件(Properties)

静态web

  • *.htm,*.html这些都是网页的后缀,如果服务器上一直存在这些东西,我们就可以直接进行读取。

  • 静态web存在的缺点

    • web页面无法动态更新,所有用户看到都是同一个页面
      • 轮播图、点击特效:伪动态
      • JavaScript(实际开发中,使用的最多)
      • VBScript
    • 它无法和数据库交互(数据无法持久化,用户无法交互)

动态web

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

缺点

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

优点

  • web页面可以动态更新,所有用户看到都不是同一个页面
  • 它可以与数据库交互(数据持久化:注册,商品信息,用户信息)

HTTP

简介

HTTP协议(HyperText Transfer Protocol,超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP之上。是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。

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

HTTPS:安全的(HTTP + SSL)

  • 443端口

两个时代

  • http1.0
    • http/1.0:客户端与服务器连接后,只能获得一个web资源,随即断开连接(非持续连接)
  • http2.0
    • http/1.1:客户端与服务器连接后,可以获得多个web资源。(持续连接)

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

请求行

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

消息头

Accept: 告诉服务器,它所支持的数据类型
Accept-Encoding: 支持哪种编码格式。GBKUTF-8GB2312ISO8859-1
Accept-Language: 告诉服务器,它的语言环境
Cache-Control: 缓存控制
Connection: 告诉服务器,请求完成是断开还是保持连接
Host: 主机

HTTP响应

  • 服务器响应客户端(Response)

百度:

Bdpagetype: 1		缓存控制
Connection: keep-alive		持续连接(http1.1)
Content-Encoding: gzip		编码
Content-Type: text/html;charset=utf-8		类型;字符集

响应体

Accept: 告诉浏览器,它所支持的数据类型
Accept-Encoding: 支持哪种编码格式。GBKUTF-8GB2312ISO8859-1
Accept-Language: 告诉浏览器,它的语言环境
Cache-Control: 缓存控制
Connection: 告诉浏览器,请求完成是断开还是保持连接
Host: 主机
Refrush: 告诉浏览器,多久刷新一次
Location: 让网页重新定位

响应状态码

  • 2xx:成功
    • 200:请求响应成功
  • 3xx:请求重定向
    • 303:查看其他位置
  • 4xx:请求错误
    • 404:找不到资源
  • 5xx:服务器代码错误
    • 500:服务器内部错误
    • 502:网关错误

更多响应状态码介绍,见百度百科


web服务器

B/S架构 – 浏览器/服务器

C/S架构 – 客户端/服务器


技术详解

ASP

  • 微软:国内最早流行的就是ASP
  • 在HTML中嵌入了VB的脚本,ASP+COM
  • 在ASP开发中,基本一个页面都有几千行业务代码,页面极其混乱
  • 维护成本高
  • C#、IIS

PHP

  • PHP开发速度很快,功能很强大,跨平台,代码很简单
  • 无法承载大访问量的情况(局限性;中小型企业使用)

JSP/Servlet

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

服务器

服务器上一种被动的操作,用来处理用户的一些请求和给用户一些响应信息;

IIS

  • 微软的;ASP技术;Windows中自带的

Tomcat

  • Tomcat 服务器是一个免费的开放源代码的Web 应用服务器
  • Tomcat是Apache 软件基金会的一个项目,支持最新的Servlet 和JSP 规范
  • Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet
  • 工作3-5年后,可以尝试手写Tomcat服务器

Tomcat

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器。Tomcat是Apache 软件基金会的一个项目,支持最新的Servlet 和JSP 规范。Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。

IDEA+Tomcat:传送门

下载安装&使用,详细笔记见:传送门


项目构建工具

Maven

为什么要学习这个技术?

  1. 在Javaweb开发中,需要使用大量的jar包,我们手动去导入很麻烦
  2. 如果能够让一个东西自动帮我们导入和配置这些jar包
    • Maven应运而生

Maven:项目架构管理工具,方便Java开发时导入jar包。详细介绍,见菜鸟教程

  • 核心思想:约定大于配置(有约束,不要去违反)
  • 会规定如何去编写Java代码,必须要按照这个规范来
  • 下载安装&使用,详细笔记见:传送门

IDEA+Maven(注意看web应用程序打包后的结构):传送门


MVC

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。摘自百度百科。详细笔记见:传送门


后端技术

Servlet

Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。详细笔记见:传送门

Filter

Filter,过滤器,顾名思义,即是对数据等的过滤,预处理过程。为什么要引入过滤器呢?在平常访问网站的时候,有时候发一些敏感的信息,发出后显示时 就会将敏感信息用*等字符替代,这就是用过滤器对信息进行了处理。(摘自这篇博客

详细笔记见:传送门

监听器

监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即被执行。(摘自这篇博客

详细笔记见:传送门


前端技术

JSP

JSP(全称JavaServer Pages)是由[Sun Microsystems](https://baike.baidu.com/item/Sun Microsystems)公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTMLXML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。摘自百度百科

JSP技术并不是目前流行的前后端分离技术。详细笔记见:传送门


数据库

JavaBean

bean,豆子。实体类

JavaBean有特定的写法:

  • 必须要有一个无参构造器
  • 属性必须私有化
  • 必须有对应的get/set方法

一般用来和数据表的字段做映射–ORM(对象关系映射,Object Relational Mapping)

  • 表 --> 类
  • 字段 --> 属性
  • 行记录 --> 对象

JavaBean应用案例笔记:传送门

JDBC

Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。摘自百度百科

传统JDBC操作流程

  1. 获取JDBC连接
  2. 声明SQL
  3. 预编译SQL
  4. 执行SQL
  5. 处理结果集
  6. 释放结果集
  7. 释放Statement
  8. 提交事务
  9. 处理异常并回滚事务
  10. 释放JDBC连接

案例笔记见:传送门

事务

控制数据的安全访问(数据库)。

详细笔记见:传送门



学习自:遇见狂神说

猜你喜欢

转载自blog.csdn.net/weixin_44773109/article/details/127685749