SSM之前回顾

news2024/11/28 4:48:30

1、技术栈总览

学习要搞清楚你的目标;先学C++/JAVA;搞程序不要太浮躁;

java基础:计算机基础、写博客、java基础语法、流程控制和方法、数组、面向对象、异常、常用类、集合框架、IO、多线程、GUI、网络编程、注解与反射、JUC编程、JVM探究、设计模型/xml/数据结构/正则表达式。

数据库:Mysql、JDBC、UML类图、数据库设计

前端:html、css、js、bootstrap/layui、vue

javaweb:Tomcat、http、maven、servleet、session、cookie、jsp、三层架构、EL表达式、过滤器、监听器、文件上传、邮件收发、富文本编辑器。

SSM框架:git、mybatis、spring、springmvc(代替javaweb)。

LINUX:基础、redis、nginx、docker

Springboot:基础、配置、持久层操作、web开发、缓存、消息、检索、任务、安全、DUBBO+ZOOKEEPER分布式开发

Springcloud:微服务及微服务架构、SpringCloud、Eureka服务注册于发现、Feign+Ribbon负载均衡、Hystrix熔断机制、Zuul路由网关、Config配置中心

2、Java基础

JDK开发、JRE运行,JVM最底层。

编译型:通过编译器一次编译为整本书,快;解释型:一次翻译一小部分,边执行边翻译。

Java是预编译为字节码然后解释为操作系统。

多行注释:/**/

基本类型+引用类型(类、接口、数组)。

包机制:package pkg1. 域名导致;手动导包:import java.util.Date;

3、MySQL

3.1 前端(展示页面-->>数据)、后台(连接数据库jdbc-mybatis,连接前端(控制视图跳转、给前端传递数据):servlet、mvc) 、数据库(存数据,excel、word)

数据库(管理系统)分类:用SQL语言 5.7/8.0

关系型(SQL):Mysql、oracle、sql serserver、sqlite;表、行;

非关系(No SQL):key:value;;redis、mongdb,以对象存储。

安装:尽可能用压缩包安装,方便卸载。

3.2 数据库设计

设计三大范式(信息重复、更新异常、删除异常)(第一:列不可再分;第二范式:在满足前面基础上,每一个其他列必须与主键相关,而不是只和联合主键的一部分相关;第三:消除传递依赖,即每一列由主键直接决定-->>直接决定,而不能是间接相关)

规范性和性能的问题,规范:关联查询不能超过三张表---->>.考虑用户体验,有时候被迫打破规则,不能太规范,故意增加冗余字段。

3.3 举例

IDEA可以直接导入数据库,双击查看数据库表。

  • 分析业务和需要处理的数据库需求

  • 概要设计:设计E-R图

  • 举例:博客

    • 用户表(用户登录、注销、用户个人信息、写博客

    • 分类表(文章分类、谁创建的)

    • 文章表(文章的信息)

    • 友情链接表

  • 标识实体(开始设计)

    • 数据库不区分大小写,建议_分割。

4、javaweb

1、web开发:web,网页的意思

  • 静态web:html、css;始终不变提供给所有人的;

  • 动态web:因人而异的返回结果----->>淘宝/京东------>>技术栈:SEVLET/JSP、ASP、PHP。

在java中,动态web资源开发的技术称为javaweb。

2、web应用程序:提供浏览器访问的程序。

  • a.html、b.html 。。。 这些web资源给外界访问。

  • 访问到的页面/资源一定存在于世界中的某一个角落的计算机上----URL。

  • 统一的web资源放在于同一个文件夹下,web应用程序-->>TOMCAT服务器。

  • 静态web、动态web

    • html、css、js

    • jsp、servlet ---->>Sun公司主推的B/S架构:

      • 基于JAVA语言

      • 可以承受三高带来的影响

    • java程序

    • jar包

    • 配置文件

  • web程序编写后,提供给外界需要一个服务器统一管理

3、静态web

  • 一次请求、一次响应 请求-->>服务器的web service-->>静态资源

  • 缺点:web页面无法动态更新、千人一面

    • 变动:轮播图、点击特效

    • JS-->>居多

    • VBS

  • 缺点2:无法和数据库交互,数据无法持久化,用户无法交互

4、动态web

 

  • 缺点:假如服务器动态web出现错误,需要重新编写后台程序。

    • 停机维护

  • 优点:动态更新、可以与数据库交互(注册、商品持久化、购物订单)。

5、web服务器

5.1 服务器是一种被动的操作,处理用户的请求并给出响应信息。

分类:

  • IIS:微软的

  • Tomcat:支持最新的Servlet和JSP规范,稳定、免费的web应用服务器,最新9.0版本。

  • 标志:猫

  • 工作后可以手写Tomcat

  • 下载:安装/解压,了解配置文件/目录结构、了解东西的作用

5.2 Tomcat服务器

(1)安装下载-->官网

(2)启动关闭:startup、shutdown;IDEA中添加即可tomcat local+工件设置(目录);

(3)配置:config/server.xml可修改访问tomcat的主机名、端口、默认进入的文件夹。localhost等价于127.0.0.1。

(4)浏览器访问过程:输入域名-->>本机hosts查询--->>DNS服务器--->>IP地址-->>发出请求。

(5)自定义网站:新建web文件夹,放入index.html,映射域名即可。

(6)webapp结构:

5.3 HTTP

(1)多媒体资源传输

(2)请求、响应

(3)1.0版本和持久连接的2.0版本

(4)请求头、响应头:

 (5)请求方式:get、post

6、Maven(POM是核心文件)

(1)有什么用?

  • javaweb中,需要使用大量的jar包手动导入
    • 需求:东西帮我导入和配置jar包,由此maven诞生了

    • 如tomcat内部的大量jar包

  • maven是一个jar包管理,是一个项目架构管理工具

    • 核心思想:约定大于配置

      • 有约束不要违反

(2)安装、解压

(3)配置:

    • 建议所有环境放在一个文件夹

    • config-mirrors-配置镜像下载

    •  

  • 修改为阿里云镜像

  • 配置本地仓库-config同步设置

(4)IDEA配置Maven

 

其中,bundled(3)是IDEA自带的Maven。

 (5)两种创建方式

* 原型创建:

 

* 白板创建:

 * 建议做法:

(6)Maven结构和生命周期

 (7)设置配置资源类无法导出问题

<build>
  <finalName>maven_demp</finalName>
  <resources>
    <resource>
      <directory>src/main/resources</directory>
      <includes>
        <include>**/*.properties</include>
        <include>**/*.xml</include>
      </includes>
      <filtering>true</filtering>
    </resource>
    <resource>
      <directory>src/main/java</directory>
      <includes>
        <include>**/*.properties</include>
        <include>**/*.xml</include>
      </includes>
      <filtering>false</filtering>
    </resource>
  </resources>
</build>

(8)IDEA配置Tomcat 

 

 7、servlet

(1)SUN开发的动态web技术,SUN提供了API接口,称为Servlet

(2)开发步骤:

  • 编写一个类实现Servlet接口

  • 部署实现类到web服务器中

(3)实验

  • 构建普通的Maven项目(可以删除SRC文件),以后的学习可以建立module,这是主工程,以后就在这里开发
    • 编写servlet

      • 编写一个普通类

      • 实现servlet接口,默认实现类:HttpServlet、GenericServlet

      • servlet接口--.>GenericServlet实现类-->>HttpServlet实现类--->>自己写的类

        • 重写doPost和doGet类

    • Maven环境优化:

      • 修改web.xml为最新

      • 将maven 的结构搭建完整

    • 添加java、resources文件夹标记

    • 关于父子工程:添加module后,pom有module标识;子项目的pom有父标记parent,可以使用父项目所有依赖。

public class helloServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doPost(req, resp);
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        PrintWriter writer = resp.getWriter();
        writer.print("你好啊");

    }
}

* 编写Servlet的映射(为啥?我们写的是java程序,浏览器需要web服务地址,故需要在web服务注册Servlet并给出访问地址。 )

<servlet>
  <servlet-name>zhangs</servlet-name>
  <servlet-class>com.zhang.servlet.helloServlet</servlet-class>
</servlet>
<!--映射servlet-->
<servlet-mapping>
  <servlet-name>zhangs</servlet-name>
  <url-pattern>/hi</url-pattern>
</servlet-mapping>
  • 配置TOMCAT:配置路径

  • 启动测试

(4)servlet原理

 

8、JavaBean

9、MVC三层架构(微服务之前的架构) 

(1)架构

 (2)作用

  • MODEL

    • 业务处理:业务逻辑 service

    • 数据持久层:CRUD(DAO)

  • VIEW

    • 展示数据

    • 提供链接发起Serclet请求(Form表单)

  • Controller

    • 接收用户请求:req:

    • 交给业务层处理对应的代码

    • 控制视图跳转:登录-->接收用户登录请求-->处理用户请求(获取账号,密码)-->>交给业务层处理00>.DAO层查询用户名密码是否正确-->>数据库。

      • 有时业务层没有代码,直接调用DAO层。

      • 但是有时候业务有特殊的,如事务回滚,让业务层处理。

 (3)过滤器Filter(处理乱码、登录验证)

 

  • 只要实现filter接口即可。

  • 实现下列接口并重新方法:

  • javax.servlet.*;
  • 过滤器用<.filter配置>,配置即可。

10、文件上传与下载:

javaweb-39:文件上传及拓展鸡汤_哔哩哔哩_bilibili 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/331579.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

操作符详解(上篇)

前言小伙伴们大家好&#xff0c;随着对c的不断学习今天我们将来学习操作符。在初始c语言中也介绍过操作符但也只是点到即可&#xff0c;今天我们将详细了解操作符。操作符分类&#xff1a;算术操作符移位操作符位操作符赋值操作符单目操作符关系操作符逻辑操作符条件操作符逗号…

不用自己排版设计的海报设计工具!在线海量模板!

人才招聘旺季&#xff0c;如何再众多的招聘海报中脱颖而出&#xff0c;招聘到心意人才呢&#xff1f;HR要如何排版设计招聘海报呢&#xff1f;只需跟着小编下面的乔拓云工具使用教程&#xff0c;不仅能帮你解决海报设计文案灵感和排版灵感&#xff0c;还不需要任何设计基础就能…

15.面向对象程序设计

文章目录面向对象程序设计15.1OOP&#xff1a;概述继承动态绑定15.2定义基类和派生类15.2.1定义基类成员函数与继承访问控制与继承15.2.2定义派生类派生类对象及派生类向基类的类型转换派生类构造函数派生类使用基类的成员继承与静态成员派生类的声明被用作基类的类防止继承的发…

【虹科公告】好消息!云展厅开放时间长达1年,2023年不限次云观展

云展厅开放通知 2023年&#xff0c;【虹科赋能汽车智能化云展厅】将持续开放&#xff0c;开放时间长达一年&#xff0c;开放期内&#xff0c;均可进入观展&#xff0c;没有次数及观看时长限制&#xff0c;欢迎大家随时进入云展厅观展。 虹科赋能汽车智能化云展厅 聚焦前沿技…

【手撕面试题】HTML+CSS(高频知识点五)

目录 面试官&#xff1a;css 如何实现左侧固定 300px&#xff0c;右侧自适应的布局&#xff1f; 面试官&#xff1a;flex 布局中 align-content 与 align-items 有何区别&#xff1f; 面试官&#xff1a;Grid 布局的优势在哪里&#xff1f; 面试官&#xff1a;Flex 布局中的…

【1797. 设计一个验证系统】

来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 描述&#xff1a; 你需要设计一个包含验证码的验证系统。每一次验证中&#xff0c;用户会收到一个新的验证码&#xff0c;这个验证码在 currentTime 时刻之后 timeToLive 秒过期。如果验证码被更新了&#xff0c;那么它…

游戏多开的分析与实现

大部分游戏为了防止工作室通过多开游戏牟利&#xff0c;都会采取各种手段来防止游戏被多次打开。检测窗口标题&#xff0c;创建互斥体&#xff0c;创建内存映射这些都是防止游戏多开的常用手段。 主要内容 游戏运行后&#xff0c;无非执行两步操作 若已经存在&#xff0c;退出…

【问题代码】顺序点的深入理解(汇编剖析+手画图解)

这好像是一个哲学问题。 目录 前言 一、顺序点是什么&#xff1f; 二、发生有关顺序点的问题代码 vs中&#xff1a; gcc中&#xff1a; 三、细读汇编 1.vs汇编如下&#xff08;示例&#xff09;&#xff1a; 2.gcc汇编如下&#xff08;示例&#xff09;&#xff1a; 四…

R语言raster包遍历多个文件夹并批量计算每一个文件夹下全部遥感影像的平均值

本文介绍基于R语言中的raster包&#xff0c;遍历读取多个文件夹下的多张栅格遥感影像&#xff0c;分别批量对每一个文件夹中的多个栅格图像计算平均值&#xff0c;并将所得各个结果栅格分别加以保存的方法。 其中&#xff0c;本文是用R语言来进行操作的&#xff1b;如果希望基于…

每天10个前端小知识 【Day 9】

前端面试基础知识题 1. bind、call、apply 有什么区别&#xff1f;如何实现一个bind? apply、call、bind三者的区别在于&#xff1a; 三者都可以改变函数的this对象指向三者第一个参数都是this要指向的对象&#xff0c;如果如果没有这个参数或参数为undefined或null&#x…

智能硬件的工作原理与发展定位

一、硬件概述 智能硬件是以平台性底层软硬件为基础&#xff0c;以智能传感互联、人机交互、新型显示及大数据处理等新一代信息技术为特征&#xff0c;以新设计、新材料、新工艺硬件为载体的新型智能终端产品及服务。 与传统硬件相比&#xff0c;智能硬件相比传统硬件&#xf…

【LeetCode每日一题】【2023/2/9】1797. 设计一个验证系统

文章目录1797. 设计一个验证系统方法1&#xff1a;哈希表代码总体1797. 设计一个验证系统 LeetCode: 1797. 设计一个验证系统 中等\color{#FFB800}{中等}中等 你需要设计一个包含验证码的验证系统。每一次验证中&#xff0c;用户会收到一个新的验证码&#xff0c;这个验证码在…

java 线程池

线程池概念 线程池可以看做是一个池子&#xff0c;在这个池子中存储了很多线程&#xff0c;线程池也可以说是一个复用线程的技术。 线程池存在的意义 系统创建一个线程的成本是比较高的&#xff0c;因为它涉及到与操作系统交互&#xff0c;当程序中需要创建大量生存期很短暂的线…

ChatGPT edge/chrome浏览器离线安装

最近chatgpt又热了起来&#xff0c;数据显示很多朋友过来下载浏览器插件&#xff0c;由于大家无法直接访问谷歌应用市场&#xff0c;因此提供一个离线安装的方式。 火热程度 对于大多资本与巨头来说&#xff0c;入局ChatGPT赛道&#xff0c;看中的无疑是ChatGPT概念背后的…

【自学Docker】Docker push命令

大纲 Docker push命令 docker push命令教程 docker push 命令用于将本地的 Docker镜像 上传到 Docker镜像仓库。 docker push命令使用之前需要要先登陆到镜像仓库。docker push命令推送镜像的规范是&#xff1a;注册用户名/镜像名。 docker push命令语法 haicoder(www.hai…

矩阵理论复习(十一)

正交投影矩阵的应用 值域与零空间 证明向量二范数 如何由已知范数构造新的范数 椭圆范数 向量范数的分析性质 向量范数的等价性 在无限维线性空间中&#xff0c;两个向量范数可以是不等价的。 等价性的重要意义&#xff1a;处理向量问题时&#xff0c;可以基于一种范…

ASO优化之如何进行榜单优化

ASO优化有&#xff1a;搜索优化&#xff0c;榜单优化&#xff0c;转化率优化。今天我们主要来讲讲苹果应用商店的榜单优化。 榜单优化的核心内容就是提高应用商城的排名&#xff0c;把我们的APP提升到显眼的位置&#xff0c;增加曝光率&#xff0c;提升APP的下载量。 那我们具…

easyx的基本使用(万字解析)

easyx的基本使用一.基本框架1.创建文件2.创建窗体-initgraph,closegraph,getchar二.简单的绘制1.圆形-circle2.坐标系统-setorigin,setaspectratio三.简单图形1.绘制点-putpixel2.简单的直线-line3.矩形-rectangle4.椭圆-ellipse5.圆角矩形-roundrect6.扇形-pie7.圆弧-arc四.多…

目标检测回归损失函数 IOU、GIOU、DIOU、CIOU、EIOU、Focal EIOU、alpha IOU损失函数分析

目标检测回归损失函数 IOU、GIOU、DIOU、CIOU、EIOU、Focal EIOU、alpha IOU损失函数分析 一、IOU Loss 2016文章《UnitBox: An Advanced Object Detection Network》中提出了IOU Loss将4个点构成的box看成一个整体做回归。 函数特性 IOU Loss的定义是先求出预测框和真实框…

UML的分类

一、UML2.0的正式图型 UML标准术语&#xff1a;UML标准术语_pingcode的博客-CSDN博客 英文名中文术语目的联系Class Diagram类图类、特征与关系UML1.x中有Component Diagram构件图构件的结构和连接UML1.x中有Composite Structure Diagram组合结构图类的运行时刻分解UML2.0的新…