- 博客(151)
- 收藏
- 关注
原创 Java SSM框架的用处
我们在实际应用中发现,SpringMVC可以完全替代Struts,配合注解的方式,编程非常快捷,而且通过restful风格定义url,让地址看起来非常优雅。另外,MyBatis也可以替换Hibernate,正因为MyBatis的半自动特点,我们程序猿可以完全掌控SQL,这会让有数据库经验的程序猿能开发出高效率的SQL语句,而且XML配置管理起来也非常方便。我们先了解一下这三个框架分别是干什么的?相信大以前也看过不少这些概念,这里就用大白话来讲:SpringMVC:它用于web层,相当于controlle
2021-01-07 16:44:05
545
原创 Java SSM框架的概念
一、Java SSM框架的概念Java SSM框架即指Spring+SpringMVC+MyBatis的简称,框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容),常作为数据源较简单的web项目的框架。相比于之前的SSH(Spring+Struts+Hibernate),SSM更加轻量化和灵活,是目前业界主流的Java Web开发框架。当前2019年10月15日,Spring的最新版本为:5.2.0,而MyBatis最新版本为:3.5.2(1)Sp
2021-01-07 16:43:19
328
原创 SSM框架概念(什么是SSM框架)
SSM框架 全称为Spring+SpringMVC+MyBatis ,这个是继SSH之后,目前比较主流的Java EE企业级框架,适用于搭建各种大型的企业级应用系统。 由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容)。常作为数据源较简单的web项目的框架。 Spring Spring就像是整个项目中装配bean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。也可以称之为项目中的粘合剂。
2021-01-07 16:42:40
539
原创 Redis
Redis全局采用哈希表来存储Key-Value,如下图所示:Redis 解决哈希冲突的方式,就是链式哈希。链式哈希也很容易理解,就是指同一个哈希桶中的多个元素用一个链表来保存,它们之间依次用指针连接。...
2021-01-07 16:41:55
85
原创 session 和 cookie 有什么区别?
a、存储位置不同:session 存储在服务器端;cookie 存储在浏览器端。b、安全性不同:cookie 安全性一般,在浏览器存储,可以被伪造和修改。c、容量和个数限制:cookie 有容量限制,每个站点下的 cookie 也有个数限制。d、存储的多样性:session 可以存储在 Redis 中、数据库中、应用程序中;而 cookie 只能存储在浏览器中。...
2021-01-06 08:35:36
85
原创 jsp有哪些内置对象?作用分别是什么?
a、request 用户端请求,此请求会包含来自GET/POST请求的参数b、response 网页传回用户端的回应c、pageContext 网页的属性是在这里管理d、session 与请求有关的会话期e、application 封装服务器运行环境的对象; f、out 输出服务器响应的输出流对象;g、config Web 应用的配置对象; h、page JSP网页本身i、exception 封装页面抛出异常的对象。...
2021-01-06 08:34:46
103
原创 request.getAttribute()和 request.getParameter()有何区别?
a、request.getParameter()取得是通过容器的实现来取得通过类似post,get等方式传入的数据。 b、getAttribute是返回对象,getParameter返回字符串c、getAttribute()一向是和setAttribute()一起使用的,只有先用setAttribute()设置之后,才能够通过getAttribute()来获得值,它们传递的是Object类型的数据。而且必须在同一个request对象中使用才有效。,而getParameter()是接收表单的ge
2021-01-06 08:34:14
147
1
原创 关于修饰符private、public的使用
当一个属性或方法只需要在当前类中使用的时候,使用private 关键字修饰即可当一个属性或方法会被其他类调用时,则需要使用public 关键字来修饰
2021-01-05 16:49:46
200
原创 查看远程库信息(git remote的用法)
1 git remote 查看远程库的信息2 git remote –v 查看远程库的详细信息3 git remote add name url 添加远程仓库4 git remote rename oldname newname 重命名仓库5 git remote rm 删除仓库
2021-01-05 16:48:58
309
原创 webpack和gulp的比较
打包主要解决的问题有:1.文件依赖管理 2.资源加载管理 3.效率与优化管理打包工具的结构应该是tool+plugins的结构,tool提供基础能力,即文件依赖管理和资源加载管理,在此基础上通过一系列的plugins来丰富打包工具的能力,plugins类似互联网+的概念,文件经plugins处理之后,具备饿web渲染中的某种优势chunk表示一个文件,默认情况下webpack的输入是一个入口文件,输出也是一个文件,这个文件就是一个chunk,chunkId就是产出时给每个文件一个唯一标示id,chun
2021-01-05 16:48:27
65
原创 Spring的FactoryBean
谈到Spring的FactoryBean,就会知道Spring中经典的面试题:FactoryBean和BeanFactory的区别。我们这里就简单概括下: 、BeanFactory是接口,提供了OC容器最基本的形式,给具体的IOC容器的实现提供了规范,FactoryBean也是接口,为IOC容器中Bean的实现提供了更加灵活的方式,FactoryBean在IOC容器的基础上给Bean的实现加上了一个简单工厂模式和装饰模式(如果想了解装饰模式参考:修饰者模式(装饰者模式,Decoration) 我们可以在g
2021-01-04 13:48:54
87
原创 Redis的特点什么是?
a、支持多种数据结构,如 string(字符串)、 list(双向链表)、dict(hash表)、set(集合)、zset(排序set)、hyperloglog(基数估算)b、支持持久化操作,可以进行aof及rdb数据持久化到磁盘,从而进行数据备份或数据恢复等操作,较好的防止数据丢失的手 段。c、支持通过Replication进行数据复制,通过master-slave机制,可以实时进行数据的同步复制,支持多级复制和增量复制, master-slave机制是Redis进行HA的重要手段。d、单进程请求,
2021-01-04 13:48:20
85
原创 MySQL全面瓦解
视图的作用对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其他数据库的一个或多个表,或者其他视图。通过视图进行查询没有任何限制,通过它们进行数据修改时的限制也很少。视图的作用归纳为如下几点。1、简单性看到的就是需要的。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定查询的条件。经常需要联合查询的内容也可以指定为视图,这样就不需要每次都写大量的联表脚本。2、安全性视图的安全性可以防止未授权
2021-01-04 13:46:54
138
原创 什么是 JavaConfig?
Spring JavaConfig 是 Spring 社区的产品,它提供了配置 Spring IoC 容器的纯 Java 方法。因此它有助于避免使用 XML 配置。使用 JavaConfig 的优点在于:面向对象的配置。由于配置被定义为 JavaConfig 中的类,因此用户可以充分利用 Java 中的面向对象功能。一个配置类可以继承另一个,重写它的@Bean 方法等。减少或消除 XML 配置。基于依赖注入原则的外化配置的好处已被证明。但是,许多开发人员不希望在 XML 和 Java 之间来回切换。Java
2020-12-31 11:44:59
83
原创 Spring Boot 有哪些优点?
a、减少开发,测试时间和努力。b、使用 JavaConfig 有助于避免使用 XML。c、避免大量的 Maven 导入和各种版本冲突。d、通过提供默认值快速开始开发。没有单独的 Web 服务器需要。这意味着你不再需要启动 Tomcat,Glassfish 或其他任何东西。e、需要更少的配置 因为没有 web.xml 文件。只需添加用@ Configuration 注释的类,然后添加用@Bean 注释的方法,Spring 将自动加载对象并像以前一样对其进行管理。您甚至可以将@Autowired 添加到
2020-12-31 11:44:23
142
原创 什么是 Spring Boot?
多年来,随着新功能的增加,spring 变得越来越复杂。只需访问 https://spring.io/projects页面,我们就会看到可以在我们的应用程序中使用的所有 Spring 项目的不同功能。如果必须启动一个新的 Spring 项目,我们必须添加构建路径或添加 Maven 依赖关系,配置应用程序服务器,添加 spring 配置。因此,开始一个新的 spring 项目需要很多努力,因为我们现在必须从头开始做所有事情。Spring Boot 是解决这个问题的方法。Spring Boot 已经建立在现有
2020-12-31 11:43:52
64
原创 Redis中的常用命令哪些?
a、hset 存储一个哈希键值对的集合b、hget获取一个哈希键的值c、hdel 删除一个或多个字段d、hgetall 获取一个哈希是键值对的集合e、lpush key value向链表左侧添加f、rpush key value向链表右侧添加g、lpop key 从左边移出一个元素h、rpop key 从右边移出一个元素i、keys * 返回所有的key 可以加*通配j、exists key判断string类型一个key是否存在 如果存在返回1 否则返回0...
2020-12-31 11:43:20
72
原创 什么是Maven?
Maven使用项目对象模型(POM)的概念,可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发布时使用Maven,而且公司项目采用 Maven 的比例在持续增长。Maven的出现,解决了开发过程中的jar包升级及依赖的难题。它可以对项
2020-12-30 09:07:19
83
原创 Maven仓库是什么
Maven仓库是基于简单文件系统存储的,集中化管理Java API资源(构件)的一个服务。仓库中的任何一个构件都有其唯一的坐标,根据这个坐标可以定义其在仓库中的唯一存储路径。得益于 Maven 的坐标机制,任何 Maven项目使用任何一个构件的方式都是完全相同的,Maven 可以在某个位置统一存储所有的 Maven 项目共享的构件,这个统一的位置就是仓库,项目构建完毕后生成的构件也可以安装或者部署到仓库中,供其它项目使用。对于Maven来说,仓库分为两类:本地仓库和远程仓库。...
2020-12-30 09:06:45
91
原创 Maven的工程类型有哪些?
POM工程:POM工程是逻辑工程。用在父级工程或聚合工程中。用来做jar包的版本控制。JAR工程:将会打包成jar用作jar包使用。即常见的本地工程 - Java Project。WAR工程:将会打包成war,发布在服务器上的工程。如网站或服务。即常见的网络工程 - Dynamic Web Project。war工程默认没有WEB-INF目录及web.xml配置文件,IDE通常会显示工程错误,提供完整工程结构可以解决。...
2020-12-30 09:06:08
154
原创 Spring Boot 有哪些优点?
a、减少开发,测试时间和努力。b、使用 JavaConfig 有助于避免使用 XML。c、避免大量的 Maven 导入和各种版本冲突。d、通过提供默认值快速开始开发。没有单独的 Web 服务器需要。这意味着你不再需要启动 Tomcat,Glassfish 或其他任何东西。e、需要更少的配置 因为没有 web.xml 文件。只需添加用@ Configuration 注释的类,然后添加用@Bean 注释的方法,Spring 将自动加载对象并像以前一样对其进行管理。您甚至可以将@Autowired 添加到
2020-12-29 08:29:02
148
原创 什么是Maven?
Maven使用项目对象模型(POM)的概念,可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发布时使用Maven,而且公司项目采用 Maven 的比例在持续增长。Maven的出现,解决了开发过程中的jar包升级及依赖的难题。它可以对项
2020-12-29 08:28:19
99
原创 shiro有哪些组件?
a、Authentication:身份认证/登录,验证用户是不是拥有相应的身份;b、Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验 证某个用户是否拥有某个角色。或者细粒度的验证某个用户对某个资源是否具有某个权限;c、Session Manager:会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中;会话可以是普通JavaSE环境的,也可以是如Web环境的;d、Cryptography:加密,
2020-12-29 08:27:40
105
原创 SpringSecurity 和 Shiro
相比 Spring Security, Shiro 在保持强大功能的同时,使用简单性和灵活性。 SpringSecurity: 即使是一个一个简单的请求, 最少得经过它的 8 个Filter。SpringSecurity 必须在 Spring 的环境下使用。初学 Spring Security,曲线还是较大,需要深入学习其源码和框架, 配置起来也较费力....
2020-12-28 18:01:10
67
原创 MyBatis 与 Hibernate 有哪些不同?
a、Mybatis 和 hibernate 不同,它不完全是一个 ORM 框架,因为 MyBatis 需要程序员自己编写 Sql 语句,不过 mybatis 可以通过 XML 或注解方式灵活配置要运行的 sql 语句,并将java 对象和 sql 语句映射生成最终执行的 sql,最后将 sql 执行的结果再映射生成 java 对象。b、Mybatis 学习门槛低,简单易学,程序员直接编写原生态 sql,可严格控制 sql 执行性能,灵活度高,非常适合对关系数据模型要求不高的软件开发,例如互联网软件、企业运
2020-12-28 18:00:29
107
原创 #{}和${}的区别是什么?
a、#{}是预编译处理,${}是字符串替换。b、Mybatis 在处理#{}时,会将 sql 中的#{}替换为?号,调用 PreparedStatement 的 set 方法来赋值;c、Mybatis 在处理时,就是把{}时,就是把时,就是把{}替换成变量的值。d、使用#{}可以有效的防止 SQL 注入,提高系统安全性。...
2020-12-28 17:59:45
203
原创 SpringMVC常用注解
@Controller负责注册一个bean到spring上下文中@RequestMapping 注解为控制器指定可以处理哪些 URL 请求@RequestBody 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上 ,再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上@ResponseBody 该注解用于将Controller的方法返回的对象,通过
2020-12-27 14:41:12
50
原创 在Java 中,如何跳出当前的多重嵌套循环?
在最外层循环前加一个标记如A,然后用break A;可以跳出多重循环。(Java中支持带标签的break和continue语句,作用有点类似于C和C++中的goto语句,但是就像要避免使用goto一样,应该避免使用带标签的break和continue,因为它不会让你的程序变得更优雅,很多时候甚至有相反的作用,所以这种语法其实不知道更好)...
2020-12-27 14:40:22
70
原创 http的响应码200,404,302,500表示的含义分别是?
200 - 确定。客户端请求已成功302 - 临时移动转移,请求的内容已临时移动新的位置404 - 未找到文件或目录500 - 服务器内部错误
2020-12-24 09:42:29
179
原创 如何解决表单提交的中文乱码问题
a、设置页面编码,若是jsp页面,需编写代码<%@page language=“java” pageEncoding=“UTF-8” contentType=“text/html;charset=UTF-8” %>若 是 html 页 面 , 在 网 页 头 部 ( < head>< /head> ) 中 添 加 下 面 这 段 代 码 < meta http-equiv=“Content-Type” content=“text/html; charset=utf
2020-12-24 09:41:30
114
原创 使用过哪些JSTL标签?
项目中主要使用了JSTL的核心标签库,包括< c:if>、< c:choose>、< c: when>、< c: otherwise>、< c:forEach>等,主要用于构造循环和分支结构以控制显示逻辑。虽然JSTL标签库提供了core、sql、fmt、xml等标签库,但是实际开发中建议只使 用核心标签库(core),而且最好只使用分支和循环标签并辅以表达式语言(EL),这样才能真正做到数据显示和业务逻辑的分离,这才是最佳实践。...
2020-12-24 09:40:16
72
原创 springMVC 和 struts2 的区别有哪些?
a、springmvc 的入口是一个 servlet 即前端控制器,而 struts2 入口是一个 filter 过虑器。b、springmvc 是基于方法开发(一个 url 对应一个方法),请求参数传递到方法的形参,可以设计为单例或多例(建议单例),struts2 是基于类开发,传递参数是通过类的属性,只能设计为多例。c、Struts 采用值栈存储请求和响应的数据,通过 OGNL 存取数据,springmvc 通过参数解析器是将 request 请求内容解析,并给方法形参赋值,将数据和视图封装成 M
2020-12-24 09:39:16
69
原创 SpringMVC 流程?
a、用户发送请求至前端控制器 DispatcherServlet。b、DispatcherServlet 收到请求调用 HandlerMapping 处理器映射器。c、处理器映射器找到具体的处理器(可以根据 xml 配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给 DispatcherServlet。d、DispatcherServlet 调用 HandlerAdapter 处理器适配器。e、HandlerAdapter 经过适配调用具体的处理器(Controller,也
2020-12-24 09:38:49
54
原创 SpringMVC 工作原理
a、客户端发送请求到 DispatcherServletb、DispatcherServlet 查询 handlerMapping 找到处理请求的 Controller c、Controller 调用业务逻辑后,返回 ModelAndViewd、DispatcherServlet 查询 ModelAndView,找到指定视图e、视图将结果返回到客户端...
2020-12-24 09:38:16
58
原创 JSP中动态include和静态include的区别
a、静态include:语法:<%@ include file=“文件名” %>,相当于复制,编辑时将对应的文件包含进来,当内容变化时,不会再一次对其编译,不易维护。b、动态include:语法:<jsp:include page=“文件名”>,能够自动检查被包含文件,当客户端对JSP文件进行请求时,会重新将对应的文件包含进来,进行实时的更新。...
2020-12-23 08:05:06
104
原创 怎么防止重复提交
a、禁掉提交按钮。表单提交后使用Javascript使提交按钮disable。这种方法防止心急的用户多次点击按钮。但有个问题,如果 客户端把Javascript给禁止掉,这种方法就无效了。b、Post/Redirect/Get模式。在提交后执行页面重定向,这就是所谓的Post-Redirect-Get (PRG)模式。简言之,当用户提交了表单后,你去执行一个客户端的重定向,转到提交成功信息页面。这能避免用户按F5导致的重复提交,而其也不会出现浏览器表单重复提交的警告,也能消除按浏览器前
2020-12-23 08:03:55
144
原创 MyBatis 的工作原理
1)读取 MyBatis 配置文件:mybatis-config.xml 为 MyBatis 的全局配置文件,配置了 MyBatis 的运行环境等信息,例如数据库连接信息。2)加载映射文件。映射文件即 SQL 映射文件,该文件中配置了操作数据库的 SQL 语句,需要在 MyBatis 配置文件 mybatis-config.xml 中加载。mybatis-config.xml 文件可以加载多个映射文件,每个文件对应数据库中的一张表。3)构造会话工厂:通过 MyBatis 的环境等配置信息构建会话工厂 S
2020-12-21 10:14:19
129
1
原创 Hibernate 和 MyBatis 的区别
1)sql 优化方面Hibernate 不需要编写大量的 SQL,就可以完全映射,提供了日志、缓存、级联(级联比 MyBatis 强大)等特性,此外还提供 HQL(Hibernate Query Language)对 POJO 进行操作。但会多消耗性能。MyBatis 手动编写 SQL,支持动态 SQL、处理列表、动态生成表名、支持存储过程。工作量相对大些。2)开发方面MyBatis 是一个半自动映射的框架,因为 MyBatis 需要手动匹配 POJO、SQL 和映射关系。Hibernate 是一
2020-12-21 10:13:25
139
转载 SSM 框架集
Spring Spring就像是整个项目中装配bean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。也可以称之为项目中的粘合剂。 Spring的核心思想是IoC(控制反转),即不再需要程序员去显式地new一个对象,而是让Spring框架帮你来完成这一切。 SpringMVC SpringMVC在项目中拦截用户请求,它的核心Servlet即DispatcherServlet承担中介或是前台这样的职责,将用户请求通过HandlerMapping去匹配Contro
2020-12-21 10:12:49
152
原创 git pull 和git fetch的区别
git pull 是上下文环境敏感的,它会把所有的提交自动给你合并到当前分支当中,没有复查的过程而git fetch只是把拉去的提交存储到本地仓库中,真正合并到主分支中需要使用meragehead指向的是当前分支,fetch的时候本地的master没有变化,但是与远程仓库关联的那个版本号被更新了,接下来就是本地合并这两个版本号的代码,使用git pull会将本地的代码更新至远程仓库里面最新的代码版本。...
2020-12-20 16:10:47
86
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人