- 博客(34)
- 资源 (1)
- 收藏
- 关注
原创 mvc封装和注解
不用responsebody的情况:post请求封装的是form形式的数据。也可封装form的实体类。用responsebody的情况:post请求来获取json形式的数据。不用requestparam情况:可自动封装实体类。
2022-05-06 23:25:13 142
原创 SSM框架之Spring框架超详解(part two)
Spring框架(第二部分)由于第一部分的配置变得十分繁琐,那么有无更好的方式解决问题?使用Spring中的aop实现。1 AOP的具体应用1.1 AOP的概念在软件业,AOP为Aspect Oriented Programming 的缩写,意为:面向切面编程,通过编译方式和运行期动态代理实现程序功能的一种技术。AOP是oop的延续,是软件开发的一个热点,也是spring框架中的一个重要内容。是函数式编程的一种衍生泛型。利用AOP可以对业务逻辑中的各个部分进行隔离,从而使业务逻辑的各部分之间的耦合度
2021-11-18 18:11:15 768 2
原创 SSM框架之Spring框架超详解(part one)
Spirng框架写在开始之前spring框架共4天:第一天:spring框架的概述以及spring 中基于xml的IOC配置第二天:spring中基于注解的IOC和ioc的案例第三天:spring中的aop和基于XML以及注解的AOP配置第四天:spring中的JdbcTemplate以及Spring事务控制**(非常重要)**================================一、spring第一天1.spring的概述spring是什么?Spring是分层的Java S
2021-11-16 11:35:20 845
原创 框架学不懂?超详细的框架讲解第一期:mybatis框架,四天完成,带你轻松入门
mybatis框架mybatis框架的第一天: ①mybatis 的入门②mybatis的概述③mybatis入门案例④自定义mybatis框架(主要的目的是为了让大家了解Mybatis中的执行细节)mybatis框架的第二天: ①mybatis 的单表crud操作②mybatis的参数和返回值设置③mybatis的dao编写④mybatis配置的细节(讲解几个标签的使用)mybatis框架的第三天: ①mybatis 的深入和多表②mybatis的连接池③mybatis的事务控制及设计的方法④myb
2021-11-11 21:53:32 896
原创 Linux-Mr.high练习题
1.如何判断一个文件中,只存放了纯数字、空格或回车?思路:把纯数字、回车或空格都删除,最后看留下的内容。答案:本行代码表示把数字0-9和空格用回车换行符替换掉,并且将空行删除cat 1.txt | sed 's/[0-9 ]/\n/g'|grep -v ^$2.创建一个文件,内容如下:abc123xyz612 **@#9091ffa2 1122***33###8335 #$%&(8315) 25 (^%)52 213 5742 要求找出其中最大
2021-09-16 14:52:58 70
原创 Linux快捷键
1、tab //命令或路径等的补全键,linux用的最多的一个快捷键 ⭐️2、ctrl+a //光标迅速回到行首 ⭐️3、ctrl+e //光标迅速回到行尾 ⭐️4、ctrl+f //光标向右移动一个字符5、ctrl+b //光标向左移动一个字符6、ctrl+insert //复制命令行内容(mac系统不能使用)7、shift+insert //粘贴命令行内容(mac系统不能使用)8、ctrl+k //剪切(删除)光标处到行尾的所有字符 ⭐️9、ctrl+u //剪切(删除)光标处到行首的所
2021-09-16 10:57:57 116
原创 组合设计模式、迭代器设计模式
/*菜单和菜单项菜单 |--陕菜 |--胡辣汤 |--肉丸胡辣汤 |--河南胡辣汤 |--羊肉泡馍 |--优质 |--普通 |--双份优质 |--三秦套餐 |--川菜 |--火锅 |--辣椒就朝天椒 |--伤心凉粉 |--粤菜 |--鱼丸 |--虾丸 |--牛丸*/第一阶段:package composite.a;import java.util.ArrayList;import j
2021-09-07 17:36:00 124
原创 观察者模式
观察者设计模式的引入:1.在没有观察者模式的日子里:有这样一个业务场景:一个游戏中,有一个角色,角色有hp,mp,在游戏窗口中,有一些面板来显示游戏角色的hp、mp.显示Hp的有三种显示方式:球形显示、面板框文字显示和血条显示package Observer.a;class Role{ private String name; private Integer hp; private Integer mp; public Integer getHp() { return hp; }
2021-09-07 11:26:38 203
原创 代理设计模式、反射的知识点复习
一、1.代理模式的引入:(自己设计一个计算器)interface ICalc{ int add(int a,int b); int sub(int a,int b); int mul(int a,int b); int div(int a,int b); }class CalcImpl implements ICalc{ @Override public int add(int a, int b) { int r = a + b; return r; } @Over
2021-09-05 11:25:04 102
原创 策略模式-设计模式
策略模式的定义:策略模式作为一种软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。比如每个人都要“交个人所得税”,但是“在美国交个人所得税”和“在中国交个人所得税”就有不同的算税方法。策略模式:定义了一组算法(业务规则);封装了每个算法;这族的算法运行时可互换代替(interchangeable)。应用场景:1、 多个类只区别在表现行为不同,可以使用Strategy模式,在运行时动态选择具体要执行的行为。2、 需要在不同情况下使用不同的策略(算法),或者策略还可能在
2021-09-02 10:37:42 317
原创 模板方法设计模式
模板方法设计模式的引入:在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。模板方法设计模式的实例:package templatepattern;import java.util.LinkedList;//在使用模板方法设计模式时,需要使用抽象类.这是因为使用抽象类可以填写方法中的具体内容。//把模板中的固定格式(成分)填充进抽象类中的方法中,而将用
2021-08-29 19:57:15 66
原创 char-字符变量的理解
java中char类型的变量为什么可以赋值为整型数字?1、JAVA中,char占2字节,16位。可在存放汉字2、char赋值char a=‘a’; //任意单个字符,加单引号。char a=‘中’;//任意单个中文字,加单引号。char a=111;//整数。0~65535。十进制、八进制、十六进制均可。输出字符编码表中对应的字符。注:只能放单个字符。3、char运算char类型是可以运算的因为char在ASCII等字符编码表中有对应的数值。在JAVA中,对char类型字符运行时,直接当做
2021-08-29 14:02:12 2147
原创 简单工厂、工厂方法和抽象工厂
学前理解:1.概念理解:面向接口编程的示意图2.相関概念1.产品:类2.抽象产品:抽象类、接口3.产品簇:4.产品等级:简单工厂:这种设计相当脆弱!为什么呢?因为,只要作者修改了具体产品的类名,那么,客户端代码也要随之一起改变,这样,服务器端代码和客户端代码就是耦合的。我们希望的效果是:无论服务器端代码如何修改,那么客户端代码都应该不知道,不用修改客户端代码!针对于上述问题,服务器端代码一旦修改,客户端代码也要跟着修改!修改代码如下,使用简单工程设计模式!任何下层给上层暴露出
2021-07-06 12:01:34 125
原创 类和类之间的关系与七大原则
1.单一职责原则每个方法、每个类、每个框架都只负责一件事情。比如:Math.round().只负责完成四舍五入的功能,其他的不管。Reader类,只负责读取文本文件SpringMVC 只负责简化MVC的开发(框架)...
2021-07-04 17:54:53 686
原创 设计模式基本概述
关于设计模式1.设计模式,不是一种新的语言,也不是一种新的api,更不是什么新的语法。2.设计模式,是前辈们,不断总结、不断打磨出的设计方法。不同设计模式适用于不同的场景。3.设计模式,公认的有23种设计模式,分别对应23种设计场景,这些设计模式,我们不用怀疑他的功能。因为这些设计模式是经过长期的时间考验而留存下来的。4.千万不要以为能有任何一种设计模式,能解决任何问题,每一种设计模式只能用于适用的场景,而不是万能的。5.设计模式,有优点,也有缺点,切记防止模式的乱用。6.23种设计模式背后有7
2021-07-04 09:45:32 70
原创 适配器模式
适配器设计模式举例一:抛出问题:1.生活中的适配器:充电器2.适配器:一个类的接口转换成客户希望的另一个接口,适配器模式让那些接口不兼容的类可以一起工作。模式探究:发现问题1.继承是为了重用add方法。但是继承比较脆弱。如果父类中有add方法,(3个参数),则会导致子类重写了父类的方法。2.用组合代替。修改举例二:说明:package shipeiqi;class Waveform{ //表示id 自增长的逻辑,为什么? private static long count
2021-07-03 17:54:25 121
原创 单例模式探究
package singleTon.type1;/** * 饿汉式第一种 推荐使用 * @author 李昊 * */public class SingleTonTest { public static void main(String[] args) { SingleTon instance = SingleTon.getInstance(); SingleTon instance1 = SingleTon.getInstance(); System.out.println(i
2021-07-03 10:45:53 42
原创 建造者模式
不用建造者模式存在的问题:需求:定义一个电脑类,并且实例化出电脑类的对象,以及给该对象的属性赋值。这样做的缺点是:1.客户端程序员,在实例化好产品的对象之后,必须为该对象的每一个属性赋值,这样对于客户端程序员来说太麻烦了。2.这样做违反了迪米特法则。这相当于你去赛格配电脑,商家把零件全给你,你自己取组装电脑。建造者模式与工厂模式的区别:工厂模式:都是直接实例化出一个类的对象即可。强调对象直接用。建造者模式,是在实例化出类的对象之后,还要给对象的属性赋值。强调使用过程。针对于问题,进行代码
2021-07-01 17:42:55 64
原创 原型模式:探究周报问题
原型模式(Prototype模式):解决场景: 周报问题的解决或创建对象的代价特别高。原型模式探究过程中提到的一些基础知识点:1.想序列化的话,类需要实现序列化接口。2.操作对象,底层是字节流。3.重写方法时,不能比父类抛出更大的异常,所以用try-catch处理。4.java类中的所有方法,天生都能抛出运行时异常。原型模式的探究写法1:写进去,读出来。这是深克隆。这样做的优点是,避免属性层级的关系的复杂处理。深克隆概念: 对象类型的属性,进行克隆时,地址不同。地址所指向的对象的内容应该
2021-06-28 16:31:53 120
原创 2021-05-16 书城项目第六阶段:用户名的登录显示、用户的注销和验证码
6.1用户名的登录显示—编程关键:保存session域中的数据6.2用户的注销—编程关键:销毁session域中的数据6.2.1 在注销标签中编写logout地址<div> <span>欢迎<span class="um_span">${sessionScope.user.username}</span>光临尚硅谷书城</span> <a href="pages/order/order.jsp">我的订单<
2021-05-16 19:25:14 169
原创 2021-05-16书城项目第五阶段(三) 首页价格区间搜索的实现
首页价格区间搜索5.1首页价格区间搜索整体流程图5.2 在bookdao中添加求总记录数和价格区间内的当前数据1.写接口 /** * 求总记录数 * */ int queryForPageTotalCount(BigDecimal min, BigDecimal max); /** * 求价格区间内的当前页数据 */ List<Book> queryForPageItems(int begin,int size,
2021-05-16 16:00:49 228
原创 2021-05-15 书城项目第五阶段(二)实现图书分页
5.1 分页模块的分析5.2 分页模型Page的抽取抽取五个分页模型的基本元素:当前页数、总页数、总记录数、当前页数据、每页记录数。5.3编写PageDao类并进行测试1.接口public interface PageDao<T> { //求总记录数 Integer queryForPageTotalCount(); //求当前页数据 //begin表示当前页数据的开始索引 //pageSize表示当前需要显示的记录条数 List
2021-05-15 20:10:56 336 1
原创 2021-05-15书城项目第五阶段-图书模块
书城项目第五阶段-图书模块1.编写图书模块的数据库表#1.创建表CREATE TABLE t_book(`id` INT PRIMARY KEY AUTO_INCREMENT,`name` VARCHAR(100),`price` DECIMAL(11,2),`author` VARCHAR(100),`sales` INT,`stock` INT,`img_path` VARCHAR(200));#2.插入初始化数据INSERT INTO t_book(`id` , `name
2021-05-13 22:04:40 580
原创 20210513书城第三、四阶段对代码进行优化
书城项目第三阶段:a)首先进行jsp页面动态化:1、在 html 页面顶行添加 page 指令。2、修改文件后缀名为:.jsp3、使用 IDEA 搜索替换.html 为.jsp(快捷键:Ctrl+Shift+R)b)抽取页面中相同的格式和内容:1.head中css、jquery、base标签<% //request.getScheme()表示http //request.getServerName()表示主机名/ip地址(服务器ip地址) //request.
2021-05-13 17:12:15 95
原创 2021-05-12 书城第二阶段-用户注册和登录
用户注册和登录:本节内容两个知识点:1.掌握javaEE项目的三层架构下面对每层进行详细介绍:每层结构说明web层com.lihao.web/servlet/controllerservice层com.lihao.service service接口包service层com.lihao.service.impl service接口实现类dao层com.lihao.dao Dao接口包dao层com,lihao.
2021-05-12 22:04:59 352 1
原创 2021-05-12书城项目第一阶段:提交表单
书城项目第一阶段:提交表单<script type="text/javascript" src="../../static/script/jquery-1.7.2.js"> </script> <script type="text/javascript"> $(function () { $("#sub_btn").click(function () { //获取用户名输入框里的内容 var username = $("#username"
2021-05-12 20:03:30 124
原创 idea 中导入工程的一点理解:
在IDEA中导入工程时,首先在idea或者其他文件中找到文件夹,然后如图所示之后点击此选项,点击此文件夹:在此目录下,粘贴我们复制的文件,这样,文件就粘贴在IDEA中了。对于图标左下方是红色J,如何操作?1.这证明该图标正处于文件状态下,为了能够进行编辑,我们进行如下操作。第一步:点击此图标第二步:注意:是在wokrspace_idea文件下点击该文件第三步:如果该文件是Eclipse,那么点击Eclipse.如果该文件不是Eclipse,那么,点击创建。创建选项:之后我们手动
2020-11-24 13:21:16 743
原创 对于单引号和双引号的一点理解、方法中的形参(声明为int类型时)中可以放char类型的量
一、public static void main(String[] args) {System.out.println("a"+'b'+'\t'+'a'+'\t'+'a');}执行结果:ab a a分析:当第一个字符为双引号时,后面的结果就是字符串。单引号’b’+'a’是可以计算的,而双引号不能够进行计算。二、System.out.println('a');//执行结果为:aSystem.out.println('a'+'b');// 97 + 98 = 195.
2020-11-24 13:15:43 204
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人