- 博客(54)
- 收藏
- 关注
原创 shiro框架简介
前言 Apache Shiro是Java的一个轻量级安全框架,shiro可以帮助我们完成:认证、授权、加密、会话管理、与Web集成、缓存使用起来简单方便。 而spring的安全框架Spring Security,虽然功能更加强大,但使用起来复杂,但是在实际工作时可能并不需要那么复杂的东西,所以使用小而简单的Shiro就足够了1.shiro 框架功能功能图:...
2020-03-21 14:24:26
656
原创 权限管理介绍
权限管理详解1.权限管理1.1什么是权限管理权限管理包括用户身份认证和授权两部分,简称认证授权。对于需要访问控制的资源用户首先经过身份认证,认证通过后用户具有该资源的访问权限方可访问。1.2用户身份认证身份认证,就是判断一个用户是否为合法用户的处理过程。最常用的简单身份认证方式是系统通过核对用户输入的用户名和口令,看其是否与系统中存储的该用户的用户名和口令...
2020-03-20 22:11:14
1890
原创 java文件上传
偶尔会使用到文件上传功能,索性在这里记录步骤,需要用的时候方便回来copy。以下的使用环境:JDK8 ,框架:SSM文件上传 需要导入两个jar包 Commons FileUpload.Jar 和Commons IO.Jar 。如果使用Maven那么导入以下依赖就行啦<!-- https://mvnrepository.com/artifact/commons-...
2020-03-12 08:36:11
385
原创 Form表单 AJAX提交
使用Form表单上传文件, submit提交会刷新页面。问了度娘,使用ajax也能提交表单,这里记录一下,以便以后需要可以查询首先需要导入 jquery.js 以及 jquery.form.js 文件接下来让我们开代码吧HTML:<form id="tf"> <input type="file" name="img"/> ...
2020-03-06 22:49:27
333
原创 使用 @JsonSerialize 转换日期
springmvc 在将日期对象转换为字符串时, 一般默认会转换为长整型,假如我们需要自己定义格式,通常会写一个类继承JsonSerializer假如在对象中需要将日期转换为我们需要的格式可以在对应的实体对象的get方法中使用注解自定义转换类:public class JsonDateTypeConvert extends JsonSerializer<Date>{...
2020-02-16 22:11:22
2131
原创 SpringMVC拦截器-Interceptor
前言Spring MVC属于SpringFrameWork中的一个模块,也就是Spring实现WEB、实现MVC而 Interceptor拦截器 是属于SpringMVC中机制,作用是对于 Controller层接口执行前后 进行拦截,表现形式有点像Spring的AOP,但是AOP是针对单一的方法。Interceptor是针对Controller接口以及可以处理request和respo...
2020-02-13 14:01:12
394
原创 SpringMVC 文件上传
通过前端的 form表单上传文件到服务器。步骤:1. 表单设置:表单的提交方式必须是 POST 请求 且必须设置enctype属性为: enctype = "multipart/form-data" 。 否者服务器会认为是普通表单提交2.文件上传 还需要导入两个jar包 Commons FileUpload.Jar 和Commons IO.Jar 。如果使用...
2020-02-12 20:42:41
172
原创 SpringMVC 的请求响应扩展 ( @ResponseBody 、ResponseEntity对象 、@RequestBody 、RequestEntity对象 )
@ResponseBody 概念@ResponseBody :该注解使用在Controller方法上的 。将方法的返回值通过适当的转换器转换为指定的格式之后,写入到 response 对象的 body 区),通常用来给客户端返回 JSON 数据或者是 XML 数据。当方法上面没有写 ResponseBody 时,底层会将方法的返回值封装为 ModelAndView 对象;需要注意的是...
2020-02-12 16:18:36
2602
原创 SpringMVC 下载文件
处理客户端下载文件以下是实例:Controller:@RequestMapping("/download")public ResponseEntity<byte[]> download(HttpServletRequest request) throws Exception { byte[] body ; //获取 Servlet 上下文对象 ...
2020-02-12 10:34:28
403
原创 SpringMVC 处理ajax 异步请求
ajax 可以实现异步请求,在一个web页面不同步刷新的情况下,对服务器发送请求获取到资源,动态展示在页面。而为了让前端去识别服务器发送的数据,我们需要将数据转换成.json 格式的 发送。使用到的注解: @ResponseBody 将返回的数据存放到响应体中 @JsonIgnore 当对象转换成json格式时,忽略该字段。 某些字段不想让...
2020-02-11 16:46:31
715
原创 SpringMVC 访问静态资源
因为配置了前端控制器 : url-pattern: / 除了.jsp以外 的请求都会被DispatcherServlet拦截所有对于静态资源的请求都会被看作是一个普通的后台控制器请求,导致请求找不到而报 404 异常错误。访问静态资源 ,这里我们有两个方法解决:第一种解决方法可以将前端控制器的映射修改为url-pattern :/*.do 这样...
2020-02-10 22:22:03
278
原创 SpringMVC 的 form表单使用
1.SpringMVC 表单标签 <form> 概述Spring也提供了一套表单标签库,通过Spring 的表单标签可以实现将模型数据中的属性和 HTML 表单元素相绑定,以实现表单数据更便捷编辑和表单值的回显1.1 from表单有一个很重要的 共有属性:path : 表单标签的共有属性,相当于HTML的name属性,支持级联关系1.2使用SpringM...
2020-02-10 12:16:04
2433
转载 SpringMVC中使用 JSTL 表达式
今天使用SpringMvc,在页面上用JSTL来做标签库进行解析,方法是:在JSP页面上引入:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>在pom.xml中引入JAR包:<!-- jstl 标签库 --><dependency> <groupId&...
2020-02-07 20:40:36
1002
原创 SpringMVC 视图,转发重定向
1.首先我们来了解视图和视图解析概念:视图:View 用来渲染数据的,将模型中的数据以某种形式展示出来。主要完成转发 或者重定向。 视图解析器:viewResolver 解析ModelAndView ,解析 Mode数据和 View数据 最后得到一个具体的视图对象。拿到视图对象在进行页面跳转2.在控制器中转发和重定向需要使用两个前缀:使用前缀不会经过视图解析器 for...
2020-02-06 19:56:02
1071
原创 注解:SessionAttributes
@SessionAttributes默认情况下Spring MVC将模型中的数据存储到request域中。当一个请求结束后,数据就失效了。如果要跨页面使用。那么需要使用到session。而@SessionAttributes注解就可以使得模型中的数据存储一份到session域中。@SessionAttributes 注解的属性:value:这是一个字符串数组。里面应写需要存储到se...
2020-02-06 17:08:03
511
原创 SpringMVC 响应(上)
SpringMVC除了可以在 Controller方法上定义参数 :Request 、Response、Session 之外还可以通过以下的方式 响应数据1.可以在参数的位置上传入 Map、Model、ModelMap 三种类型的任意一种 往该参数中保存数据,都会被存放到 Request 域对象中,可以从页面获取如下代码演示:jsp:Control...
2020-02-06 14:56:35
386
原创 SpringMVC 中解决 乱码问题
在我们的项目中可能需要传递一些 中文参数,而客户端请求和服务器解析中 编码格式不统一,从而出现乱码,我们需要将编码改为UTF-81.post请求 在web项目中配置一过滤器<!-- 配置 字符编码过滤器 注意:该过滤器必须在过滤链的最顶层 --><filter> <filter-name>encodingFilter</fil...
2020-02-05 16:59:22
368
原创 springMVC 参数绑定
1.SpringMVC 参数绑定:在 SpringMVC 中,提交请求的数据是通过方法形参来接收的。从客户端请求的 key/value 数据,经过参数绑定,将 key/value 数据绑定到 Controller 的形参上,然后在 Controller 就可以直接使用该形参。参数绑定使用到3个注解:@RequestParam : 获取请求参数 ...
2020-02-05 16:25:35
3106
原创 注解 @RequestMapping
简介@RequestMapping 是一个注解,用来标识 http 请求地址与 Controller 类或方法之间的映射。1.用于方法上,该方法直接响应请求请求:http:localhost:8080/xxx/haha2.用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。请求:http:localhost:8080/xxx/action/haha...
2020-02-03 00:01:38
407
原创 springMvc的前端控制器 url-pattern映射与tomcat的映射问题
在springMvc开发中,前端控制器去处理客户端请求,并进行智能派发处理 当前端控制器url-pattern设置为 / 时:拦截所有的请求 且 包括后缀型url(.html .css .js 等等 ) ,但不拦截.jsp等动态资源请求,为了实现restFul风格。 而设置为 /* 时:所有的请求都会经过前端控制器,DispatcherServlet会将请求作为映射路径到Contr...
2020-02-02 21:40:43
741
原创 SpringMvc 概念及使用
什么是Spring MVC ?SpirngMVC是Spring 的一个模块,其实就是:Spring实现MVC、Spring 实现web模块、简化web开发SpringMVC采用了松散耦合可插拔组件结构,比其他MVC框架更具扩展性和灵活性,在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts1等..Spring ...
2020-02-01 23:13:01
598
原创 java邮件发送
电子邮箱的概念电子邮箱其实就是分为邮箱服务器和电子邮箱客户端邮箱服务器:主要是用于接收并转发邮件,类似于邮局,把用户的邮件接收过来,然后转 发到邮件接收者的电子邮箱中。 服务器地址:一般是 smtp.xxx.com,比如163邮箱是smtp.163.com,qq邮箱是smtp.qq.com。邮箱客户端:就是每个账号在服务器中开辟的一小段空间...
2020-01-23 16:01:32
464
转载 MVC 模式与javaEE三层架构
MVC设计模式mvc这种设计模式,不光运用于Web领域,而且也能用于非Web领域;可以特指一种表现层设计模式,不限于Java语言;Java Web应用中应用的最广泛的设计模式便是MVC模式,目前的主流Web框架大多也是基于MVC设计模式所编写的。MVC模式主要分为以下三个基础模块:Model 模型:主要负责、javaBean封装数据、业务逻辑以及数据库的交互 View 视图:...
2020-01-14 12:34:33
404
原创 Servlet 模板
在javaweb开发时,一个类要继承Servlet,并重写方法,我们在Eclipse中创建模板便于开发1.Eclipse中打开 window/Preferences 首选项,在点击java/Editor/Template/New 设置模板对象2.填写模板,并将一下模板代码复制进去package ${enclosing_package};import java.io....
2020-01-11 14:02:22
413
原创 Spring与Mybatis整合
整合理解:Mybatis需要SqlSession对象,才能和数据库进行交互,而该会话都是基于SqlSessionFactory创建的。所以我们只需要将SqlSessionFactory对象的管理权交给Spring管理。让Spring+Mybatis的优点集合在一起。第一步,首先导入需要的jar包或者依赖<!-- Spring --> <!-- https...
2020-01-06 13:44:34
411
原创 分页插件 pageHelper
PageHelper是国内非常优秀的一款开源的mybatis分页插件,它支持基本主流与常用的数据库,例如mysql、oracle、mariaDB、DB2、SQLite、Hsqldb等。查询数据库展示到前端的过程中不可避免的要考虑到分页问题,这时就引入了Mybatis的PageHelper插件,这个插件对分页功能进行了强有力的封装。下面来看看。使用pageHelper1.导入所需要...
2020-01-01 16:30:48
210
原创 mybatis 逆向工程
什么是mybatis逆向工程:简单点说mybatis逆向工程是一种机制,针对数据库中的表可以通过逆向工程生成实体类,mapper接口,mapper映射(配置)文件,不用我们自己去写,可以为我们自动生成。为什么使用mybtais逆向工程: 当一个项目用到的数据库中表很多,数据很多,如果再去手动写实体类,mapper接口和配置文件,会大大降低行进效率,使用逆向工程...
2019-12-30 11:56:42
207
原创 mybatis 整合 ehcache
mybatis允许缓存由第三方缓存来实现,多以定义了cache接口,第三方只要实现该接口即可,和mybatis整合在一起后由mybatis在程序中进行调用;Ehcache介绍在Java项目广泛的使用。它是一个开源的、设计于提高在数据从RDBMS中取出来的高花费、高延迟采取的一种缓存方案。正因为Ehcache具有健壮性(基于java开发)、被认证(具有apache 2.0 licen...
2019-12-28 18:32:20
399
原创 mybatis 缓存 cache
mybatis会将查询出来的数据存放到缓存中,当再次查询重复数据时,直接从缓存中取出,避免重复查询相同数据而浪费系统资源mybatis缓存分为:一级缓存 、二级缓存一级缓存 (作用域比较小)一级缓存:本地缓存(sqlSession级别缓存),与数据库同一次会话(sqlSession)期间查询到的数据会被放到本地缓存中,如果直接从缓存中获取,不会再次向数据库查询数据mybatis一...
2019-12-28 16:55:37
221
1
原创 SQL抽取
<!-- public abstract Employee findEmpById(Integer id); --> <select id="findEmpById" resultType="com.mybatis.bean.Employee"> <!-- 使用include标签引用已经抽取的sql --> select <includ...
2019-12-20 17:29:04
556
原创 Mybatis 动态SQL
MyBatis动态sql 什么是动态sql if条件判断 Trim字符串拼接 choose(选择分支) foreach集合遍历 什么是动态sqlMyBatis 的强大特性之一便是它的动态 SQL,它极大的简化了我们拼接SQL的操作。动态 SQL 元素和使用 JSTL 或其他类似基于 XML 的文本处理器相似。MyBatis 采用功能强大的基于 OGNL 的表...
2019-12-20 11:37:48
248
原创 resultMap对象集合级联关系 { 一对多 }(三)
数据库两张表 :Employee 员工表Dept 部门表-- emp员工表中存储的是 员工的信息 -- dept部门表中存储的是 部门的信息 -- 员工表和部门表中的共有属性是:部门编号,部门编号是一样的需求:通过部门编号查询部门,并查询该部门所有的员工实体类Dept 部门/*** * 部门实体类 */public ...
2019-12-13 17:32:05
524
原创 resultMap对象之间的级联关系[ 一对一关系 ] (二)
MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType就是 mybatis会自己通过反射 根据字段名设置到对应的实例中的属性。而resultMap则是对外部ResultMap的引用,resultMap就是你自定义的一个映射关系而且resultMap可以实现一种功能就是当你是1对多 这种多张表查询的时候 你没办法...
2019-12-05 00:30:52
575
原创 mybatis自定义封装类型 (一)
当SQL查询出的结果集封装成bean实体时,实体类中的字段和sql结果集字段不同,不匹配的字段无法封装到实体类中。有两种结果方法: 1.可以在SQL语句中设置别名,进行匹配 2.可以使用 resultMap 标签自定义封装类型第一种方式设置别名就不提啦,大家都会。下面来看看resultMap标签的自定义封装User表User实体类/** * ...
2019-12-01 21:41:56
1206
原创 mybatis的返回值问题
使用mybatis框架,DAO层中一些特殊的返回值,例如:list,set,map集合,在查询出数据之后,如何按照指定的返回值封装。以下是一些常用的封装方式1.结果集封装成List集合DAO//获取所有的User对象,并将查询出来的User对象封装到List集合中public LinkedList<User> getUserList(); UserMap...
2019-11-25 15:28:51
1343
原创 mybatis参数绑定
对数据库进行增删改查操作时,sql语句需要一些参数,从而来实现模糊查询,精确查询,插入数据,更新数据和删除数据。这些参数,在mybatis里面,又该如何使用呢?我总结了以下几点:1.单个参数绑定 DAO接口//根据id查询Userpublic User getUserById(Integer id); UserMapper.xml<!-- 根据id查...
2019-11-25 14:35:43
3301
1
原创 mybatis新增数据并获取主键值
在很多业务下,对User表新增一条数据后,往往还要以该数据对其他关联的表格做操作,所以拿到该条数据的主键尤为关键。以下记录 对Mysal和Oracle中的 User表新增一条数据,并获取该条数据的主键entitypackage com.mybatis.bean;//User表的实体类public class User { //成员变量属性名 建议和 数据库字段保...
2019-11-22 00:12:26
806
原创 Mybatis全局配置文件 AND SQL映射文件
可以查看Mybatis的官方说明文档,(文档很贴心,设有中文):https://mybatis.org/mybatis-3/zh/configuration.htmlMybatis全局配置文件下边是一个已经配置好了的Mybatis全局配置文件: config.xml<?xml version="1.0" encoding="UTF-8"?><!DOCT...
2019-11-18 09:25:48
456
原创 Mybatis框架入门
前言:mybatis的前身是叫Ibatis,阿帕奇组织下的。后来谷歌收购改名为 Mybatis。 (在Github 下可以找到该框架)Mybatis是一个持久化框架 (跟数据库交互的框架)原始jdbc 与数据库进行交互的过程繁琐,与数据库连接,获取Connection对象,编写预编译sql指令,设置参数,在执行sql指令, 封装结果而后来出现的jdbc工具:dbu...
2019-11-14 15:23:53
289
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人