- 博客(59)
- 收藏
- 关注
原创 SpringMVC 异常处理
1. 异常处理两种方式使用SpringMVC提供的简单异常处理器SimpleMappingExceptionResolver实现Spring的异常处理接口HandlerExceptionResolver2. 使用简单异常处理器2.1 添加依赖<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>
2020-11-26 14:51:05 303
原创 SpringMVC 拦截器(Interceptor)
1. 拦截器方法方法名说明preHandle()该方法在请求处理之前执行, 返回值是boolean类型, 当返回false时, 表示请求结束, 后续的方法不在执行. 当返回值为true时就会调用下一个Interceptor的preHandle方法postHandle()该方法在请求处理之后被调用, 前提是preHandle方法的返回值为true时才执行. 且它会在DispatcherServlet进行视图返回渲染之前被调用, 所以我们可以在这个方法中对Controller处理
2020-11-26 14:00:11 278
原创 SpringMVC 单个或多个文件上传
1. 添加依赖 <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.2.10.RELEASE</version> <
2020-11-26 13:05:31 365 1
原创 SringMVC 获取请求参数
1. 参数类型基本类型POJO类型数组类型集合类型json字符串Restful风格日期类型servlet api请求头2. 编写代码测试2.1 添加依赖<dependencies> <!-- webmvc --> <dependency> <groupId>org.springframework</groupId> <artifactI
2020-11-26 12:50:13 177
原创 SpringMVC数据响应
1. 数据响应页面跳转直接返回字符串.通过ModelAndView对象返回.回写数据直接返回字符串(加@ResponseBody注解).返回对象或集合(转换成json字符串).2. 编写代码测试2.1 添加依赖<!-- Spring MVC --><dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmv
2020-11-10 02:35:52 182 2
原创 Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:run (default-cli) on project
报错信息:Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:run (default-cli) on project dmeo: Could not start Tomcat报错截图:报错情况使用Maven内嵌tomcat7启动项目报的异常.我的pom.xml文件<dependencies> <!-- Spring MVC --> <dep
2020-11-09 23:42:48 3006 1
原创 搭建SpringMVC环境
1. 作用一个表现层框架, 从请求中接收传入的参数, 将处理后的结果数据返回给页面展示.2. MVC是什么M代表模型(Model): 模型就是数据,就是 dao,bean.V代表视图(View): 视图就是网页, JSP,用来展示模型中的数据.C代表控制器(controller): 控制器的作用就是把不同的数据(Model),显示在不同的视图(View)上,Servlet 扮演的就是这样的角色。3. 开始搭建SpringMVC环境3.1 创建WEB项目不知道怎么创建WEB项目的可以查看
2020-11-09 20:35:35 166
原创 Spring 搭建web项目
1. 创建Web项目如何创建Web项目请查看这篇文章: IDEA + Maven创建并运行Web项目2. 添加依赖<!-- Spring --><dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.10.RELEASE</versio
2020-11-09 14:15:17 916 2
原创 IDEA + Maven创建并运行Web项目
1. 使用Maven创建项目如何创建请看IDEA+Maven搭建Spring环境.2. 给项目添加web.xml2.1 Project StructureFile --> Project Structure 或使用快捷键Ctrl + Alt + Shift + S2.2 Facets然后添加一个Web, 在弹出来的选框里选择要添加的项目名称.点击OK后会跳转到Modules设置.2.3 Modules设置路径上面的是web.xml的存放路径, 我选择放在 src
2020-11-09 14:01:15 925
原创 Spring事务, 基于全注解方式.
1. 基于注解开发事务管理1.1 创建数据库表 create table `account`( id int primary key not null auto_increment, name varchar(255) not null , money double);-- 初始化数据insert into account(name, money) values ('cloud', 5000);insert into account(name, money) values
2020-11-09 12:33:23 208
原创 Spring 事务, 基于XML方式.
1. 什么是事务事务,就是把一堆事情绑在一起做,要么都成功, 要么都失败.以银行转账举例, 假设将银行转账分为2步进行:从转账方余额减少.收账方余额增加.如果第一步已经执行完成, 但是在第二步执行前程序发生了异常, 如果没有事务管理就会导致转账方余额已经减少, 收款方余额确没有增加, 这样就破坏了数据的一致性.2. 分类编程式事务: 需要在代码中加入处理事务的逻辑.声明式事务: 建议在AOP之上的, 采用声明的方式来处理事务.也就是在配置文件中申明.3. 编码实现转账Demo
2020-11-09 12:28:27 151
原创 Spring AOP使用XML和注解实现
概念Spring的AOP底层实现就是对动态代理的代码进行了封装, 封装后我们只需要对需要关注的部分进行代码编写, 并通过配置的方式完成指定目标方法的增强.1. AOP相关术语Target(目标对象): 代理的目标对象.Proxy(代理): 一个类被AOP织入增强后, 就产生一个结果代理类.JoinPoint(连接点): 所谓连接点是指那些被拦截到的点. 在Spring中, 这些点指的是方法,因为Spring只支持方法类型的连接点.PointCut(切入点): 所谓的切入点是指我们要对哪些Joi
2020-11-09 11:35:00 162
原创 Java实现两种动态代理JDK与CGLIB
1. 作用AOP的拦截功能是由java中的动态代理来实现的。在目标类的基础上增加切面逻辑,生成增强的目标类。jdk动态代理是由java内部的反射机制来实现的,cglib动态代理底层则是借助asm来实现的。2. 分类JDK动态代理。CGLIB动态代理。3. 编码实现3.1 JDK接口public interface Target{ public void sava(String name);}public class TargetImpl implements T
2020-11-08 20:06:01 213 2
原创 使用Spring JdbcTemplate写一个增删改成Demo
JdbcTemplate概述对原始jdbcAPI的简单封装.1. 使用JdbcTemplate改进上一篇博客Spring 零配置注解开发增删改查Demo使用了原生的jdbc开发了一个CRUD的demo, 这次我们使用Spring JdbcTemplate改进.2. 编码改进2.1 引入JdbcTemplate依赖<!-- Spring Jdbc --><dependency> <groupId>org.springframework</gr
2020-11-08 12:51:30 192
原创 Spring 零配置注解开发增删改查Demo
1. Spring 注解注解说明@Component使用在类上用于实例化Bean@Controller使用在Web层类上用于实例化Bean@Service使用在Service层上用于实例化Bean@Repository使用在dao层上用于实例化Bean@Autowired使用在字段上,用于根据类型依赖注入@Qualifier结合@Autowired一起使用,用于根据名称依赖注入@Resource相当于@Autowired + @Qual
2020-11-08 12:41:22 200
原创 Spring配置Druid数据源
1. 添加依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.10</version></dependency><dependency> <groupId>mysql</groupId> <artif
2020-11-07 11:13:12 306
原创 Spring依赖注入方式与类型
1. 依赖注入(DI: Dependency Injection)Spring框架核心IOC的具体实现。在编写程序时, 通过控制反转, 把对象的创建交给Spring, 但是代码中不可能出现没有依赖的情况,IOC解耦只是降低他们的依赖关系, 不会消除。 例如: 业务层仍会调用持久层的方法。那这种业务层和持久层的依赖关系, 在使用Spring之后就让Spring来维护了,简单来说,就是等框架把持久层对象传入业务层, 而不用我们自已去获取。2. 注入的方式构造方法注入: <constra
2020-11-07 11:07:05 307
原创 Spring Bean实例化的三种方式
Bean实例化的三种方式1. 无参构造方法实例化。一般都是使用这种方法。1.1 测试代码public class User{}public class Main{ @Test public void test() { BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml"); User user = (User) fac
2020-11-06 15:44:42 176
原创 Spring Bean的生命周期
1. 测试代码//User类public class User{ private String username; public User() { System.out.println("new User() 实例化..."); } public void init() { System.out.println("User.init() 初始化..."); } public void destroy(
2020-11-06 15:08:16 195 1
原创 IDEA+Maven搭建Spring环境
1. Spring简介Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。2. Spring的优势方便解耦, 简化开发: 通过Spring提供的IOC容器, 可以将对象间的依赖关系交由Spring进行控制, 避免硬编码所造成的过度耦合。AOP编程的支持: 通过AOP功能方便进行面向切面编程, 许多不容易用传统OOP实现的功能可以通过AOP轻松实现。声明式事物编程: 通过声明方式灵活的进行事务管理, 提高开发效率和质量。方便程序测试: 可以用非容器依赖的编程方式进行几乎所有
2020-11-06 02:13:10 614 1
原创 Windows/Linux系统搭建Maven环境
1. Maven简介Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。2. Maven下载Maven官网: http://maven.apache.org/根据你的操作系统到Maven官网选择下载Maven的安装包。注意: Maven是一个基于 Java 的工具,所以
2020-11-05 23:53:44 417
原创 Ubuntu18.04运行QQ音乐
前言优缺点只是我个人使用后总结的,仅做参考。要选择哪一种看个人需求吧,比如我只是需要基本的听歌功能就行,所以使用的方案3。 想要功能完整就是用虚拟机。wine方式我不推荐使用。这里提供三种方案1. 虚拟机安装QQ音乐vmware和virtual都有Linux版本,下载安装就行,这里就不介绍虚拟机怎么安装了。优点: 功能完整,很少出问题。缺点: 浪费资源。为了一个软件开虚拟机我认为比较浪费资源。2. wine或deepin-wine安装可以选择使用wine或者deep-wine。
2020-10-27 01:32:55 2219
原创 Ubuntu18.04安装Selenium和环境搭建
1. Python安装Selenium模块pip install Selenium 2. 下载浏览器驱动chrome驱动文件下载:http://chromedriver.storage.googleapis.com/index.htmlfirefox驱动文件下载: https://github.com/mozilla/geckodriver/releaseschrome浏览器需要下载对应版本的驱动,不然会报错,找不到一致的版本号就找大版本号一样的。我这里就是版本没对应,所以程序报错了。在浏
2020-10-10 23:56:53 1811
原创 selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome
环境IDE: Pycharm 2020.2系统版本: Ubuntu16.04起因在使用selenium时,配置浏览器驱动,运行代码出现异常。代码from selenium import webdriverurl = "https://www.baidu.com"driver = webdriver.Chrome()driver.get(url)print(driver.page_source)driver.close()异常信息Chromeselenium.common.
2020-10-10 17:04:46 3386 2
原创 Python爬虫实现下载全本漫画
使用教程源码方式1). 打开Main.py,运行程序。2). 按照提示输入存储路径和漫画名称。路径用"/","","\" 做分隔符都行,代码中都将"“替换成”/"。 path = input("请输入存储路径:\n").replace("\\","/")3). 选择要下载的漫画,然后等待下载就行。4). 下载结果显示,程序是从最新章节开始下载的,下载完成程序会自动关闭。可执行文件方式1). 打开Main.exe,按照提示操作。注意事项本项目仅用于学习与交流,请
2020-10-05 12:56:14 901
原创 Thread源码阅读
1. Thread实现了Runnable接口public class Thread implements Runnable Runnable的源码非常简单,只有一个抽象方法。@FunctionalInterface是jdk1.8出现的函数式接口。package java.lang;@FunctionalInterfacepublic interface Runnable { public abstract void run();}2.Thrad类初始化阶段 ...
2020-07-10 15:10:23 289
原创 JDBC批量插入遇到的坑
首先看代码,这段代码是测试插入多条数据耗时。测试环境:jdk1.8,mysql-5.7.27-winx64,mysql-connector-java-5.1.10.jarpublic class Test{ /** * rewriteBatchedStatements=true 开启批量更新 */ private static final String URL = "jdbc:mysql://localhost:3306/test?character..
2020-06-14 13:45:17 2094
原创 MOOC哈工大2020C语言程序设计精髓练兵区编程题第十五周
1 计算零件数(4分)题目内容:有一堆零件(100--200之间),如果分成4个零件一组的若干组,则多2个零件,如果分成7个零件一组的若干组,则多3个零件,如果分成9个零件一组的若干组,则多5个零件,编程计算这堆零件的总数。int main(){ for (int i = 100; i < 200; ++i) { if(i % 4 == 2 && i % 7 == 3 && i % 9 == 5) {
2020-05-15 00:20:52 2714
原创 MOOC哈工大2020C语言程序设计精髓练兵区编程题第十四周
1 学生成绩管理系统V5.0(4分)题目内容:某班有最多不超过30人(具体人数由键盘输入)参加期末考试,最多不超过6门(具体门数由键盘输入)。参考学生成绩管理系统V4.0,定义结构体类型,用结构体数组作函数参数,编程实现如下菜单驱动的学生成绩管理系统:(1)录入每个学生的学号、姓名和各科考试成绩;(2)计算每门课程的总分和平均分;(3)计算每个学生的总分和平均分;(4)按每个学生的总分由高到低排出名次表;(5)按每个学生的总分由低到高排出名次表;(6)按学号由小到大排出成绩表
2020-05-14 20:08:30 4475 1
原创 MOOC哈工大2020C语言程序设计精髓练兵区编程题第十三周
1 学生成绩管理系统V4.0(4分)题目内容:某班有最多不超过30人(具体人数由键盘输入)参加期末考试,最多不超过6门(具体门数由键盘输入)。参考学生成绩管理系统V3.0,用二维数组作函数参数编程实现如下菜单驱动的学生成绩管理系统:(1)录入每个学生的学号、姓名和各科考试成绩;(2)计算每门课程的总分和平均分;(3)计算每个学生的总分和平均分;(4)按每个学生的总分由高到低排出名次表;(5)按每个学生的总分由低到高排出名次表;(6)按学号由小到大排出成绩表;(7)按姓名的
2020-05-14 01:38:59 4131
原创 MOOC哈工大2020C语言程序设计精髓编程题在线测试第十二周
1 计算时间差V2.0(4分)题目内容:用结构体定义时钟类型,编程从键盘任意输入两个时间(例如4时55分和1时25分),计算并输出这两个时间之间的间隔。要求不输出时间差的负号。结构体类型定义如下:typedef struct clock{ int hour; int minute; int second;} CLOCK;函数原型: CLOCK CalculateTime(CLOCK t1, CLOCK t2);函数功能:计算并返回两个时间t1和t2之...
2020-05-13 01:46:48 6063
原创 MOOC哈工大2020C语言程序设计精髓练兵区编程题第十二周
1 大奖赛现场统分(4分)题目内容:已知某大奖赛有n个选手参赛,m(m>2)个评委为参赛选手评分(最高10分,最低0分)。统分规则为:在每个选手的m个得分中,去掉一个最高分和一个最低分后,取平均分作为该选手的最后得分。要求编程实现:(1)根据n个选手的最后得分,从高到低输出选手的得分名次表,以确定获奖名单;(2)根据各选手的最后得分与各评委给该选手所评分数的差距,对每个评委评分的准确性和评分水准给出一个定量的评价,从高到低输出各评委得分的名次表。提示:首先设计如下5个数组:(1
2020-05-13 01:44:21 4540
原创 MOOC哈工大2020C语言程序设计精髓编程题在线测试第十一周
1 山地训练(4分)题目内容:为了能在下一次跑步比赛中有好的发挥,小白在一条山路上开始了她的跑步训练。她希望能在每次训练中跑得尽可能远,不过她也知道农场中的一条规定:女孩子独自进山的时间不得超过M秒(1 <= M <= 10,000,000)。假设整条山路划分成T个长度相同的路段(1 <= T <= 100,000),并且小白用si表示第i个路段的路况,用u、f、d这3个字母分别表示第i个路段是上坡、平地、下坡。小白跑完一段上坡路的耗时是U秒(1 <= U <=
2020-05-12 00:42:43 6036 4
原创 MOOC哈工大2020C语言程序设计精髓练兵区编程题第十一周
1 找出按字典顺序排在最前面的国名(4分)题目内容:输入5个国名,编程找出并输出按字典顺序排在最前面的国名。提示:所谓字典顺序就是将字符串按由小到大的顺序排列,因此找出按字典顺序排在最前面的国名指的就是最小的字符串。int main(){ char c[5][11]; int result = 0; printf("Input five countries' names:\n"); for (int i = 0; i < 5; ++i) {
2020-05-12 00:40:24 3421 1
原创 MOOC哈工大2020C语言程序设计精髓编程题在线测试第十周
1 数字字符串转换为整型数(4分)题目内容:从键盘输入一串字符(假设字符数少于8个),以回车表示输入结束,编程将其中的数字部分转换为整型数并以整型的形式输出。 函数原型为 int Myatoi(char str[]);其中,形参数组str[]对应用户输入的字符串,函数返回值为转换后的整型数。解题思路的关键是:1)判断字符串中的字符是否是数字字符;2)如何将数字字符转换为其对应的数字值;3)如何将每一个转换后的数字值加起来形成一个整型数。#define N 7int Myat..
2020-05-09 15:08:44 4072 1
原创 MOOC哈工大2020C语言程序设计精髓练兵区编程题第十周
1 有趣的“回文”检测(4分)题目内容:英文中有很多的回文词,回文词的拼法十分有趣,无论是从前往后拼读,还是从后往前拼读,他们的拼法和词义都不变。例如:dad(爸爸),mum(妈妈),noon(中午),eve(前夕),eye(眼睛),pop(流行),deed(行为),level(水平)等。简单地说,“回文”就是指顺读和倒读都一样的字符串。现在请你编程输入一个单词,判断它是否是回文。提示:(1)设置两个指针pStart和pEnd,让pStart指向字符串首部,让pEnd指向字符串尾部。(2
2020-05-09 15:04:14 3802 4
原创 MOOC哈工大2020C语言程序设计精髓编程题在线测试第九周
1重复数字检查(4分)题目内容:从键盘输入一个数,检查这个数中是否有重复出现的数字。如果这个数中有重复出现的数字,则显示“Repeated digit!”;否则显示“No repeated digit!”。已知函数原型:int CountRepeatNum(int count[], int n);若有重复数字,则该函数返回重复出现的数字;否则返回-1.#defin...
2020-05-07 16:48:14 3551
原创 MOOC哈工大2020C语言程序设计精髓练兵区编程题第九周
1 二分法求根(4分)题目内容:用二分法求下面的一元三次方程在区间[-10, 10]上误差不大于的根。用二分法求方程的根的基本原理是:若函数有实根,则函数曲线应当在根x*这一点上与x轴有一个交点,并且由于函数是单调的,在根附近的左右区间内,函数值的符号应当相反。利用这一特点,可以通过不断将求根区间二分的方法,每次将求根区间缩小为原来的一半,在新的折半后的区间内继续搜索方程的根,对根...
2020-04-26 20:50:28 5428
原创 MOOC哈工大2020C语言程序设计精髓编程题在线测试第八周
1 摘苹果(4分)题目内容:陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当他不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度(已知在100cm到200cm之间,包括100cm和200cm),以及陶陶把手伸直时能达到的最大高度(已知在100cm到120cm之间,包括100cm和...
2020-04-19 14:43:50 4745 7
原创 MOOC哈工大2020C语言程序设计精髓练兵区编程题第八周
1 三天打渔两天晒网(4分)题目内容:中国有句俗语叫“三天打鱼两天晒网”,某人从1990年1月1日起开始“三天打鱼两天晒网”,即工作三天,然后再休息两天。问这个人在以后的某一天中是在工作还是在休息。从键盘任意输入一天,编程判断他是在工作还是在休息,如果是在工作,则输出:He is working,如果是在休息,则输出:He is having a rest,如果输入的年份小于1990或者输...
2020-04-19 02:09:06 4172 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人