自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Fighting

面对压力,挑灯夜战;面对困难,永不退缩。

  • 博客(193)
  • 收藏
  • 关注

原创 项目完成过程中遇到的问题(更新结束)

1.使用struts.xml文件获取action失败从网上搜集了很多方法,奈何还是没有解决,因此还是将action的创建交给spring来管理。几点收获:编译之后的各种配置文件要放在WEB-INF下面,这样才能顺利运行项目。2.applicationContext.xml文件不能引入属性该问题出现的原因是前面的dtd约束没有添加完全,下面给出一个最完整的dtd约束实例文件。<?xml version

2016-08-30 12:18:52 931

原创 Resource体系学习

图稍后附. Resource体系是spring框架中负责资源加载的模块.一.根接口1.InputStreamSource接口该接口是从流当中获取对象的最简单的接口,是spring最具扩展性的基础接口. 对于单一用途的流来说,该接口可以被应用于任何给定的输入流.spring的ByteArrayResource或者其他任何的基于文件的Resource实现都可以作为一个明确的实例来使用.允许一个实

2017-10-13 14:55:24 518

翻译 Spring源码系列--BeanFactory接口注释翻译

访问spring的bean容器的根接口。是一个bean容器的最基本的客户端视图;进一步来说,ListableBeanFactory和ConfigurableBeanFactory接口可以用于特定的目的。该接口可以被持有一些bean定义的对象们实现,这些bean被一个字符串名字唯一的标识。依赖于bean的定义,bean工厂将会返回一个包含对象的独立的实例(原型设计模式)或者一个单例的共享的实例(单例模

2017-10-09 19:25:15 973

原创 生产者消费者模式的一次实际应用

现在有这样一个需求:网站有很多合作站点,要求每天定时向合作站点负责人发送邮件通知该站点每日的引流情况;向运营发送网站各方面整体的观测数据.1. 流程分析引流数据.可以通过百度统计的接口来获取.邮件发送.这2步中间还穿插着数据的处理与邮件的应用等,不过这不是该文的重点.目前我们已经拥有邮件数据.(在邮件数据里已经包含邮件的全部信息,包括收件人等).重点是如何快速发送所有邮件.首先可以抽象一下,无

2017-09-29 09:05:39 1882

原创 spring和mybatis整合

记录,帮助梳理一下.二者的整合,其实实质就是将mybatis用到的组件交给spring来管理.1. 与mybatis相关.与mybatis相关的主要有:数据库连接.这里面与数据库密码,用户名等有关.会话工厂,需要用到数据库连接,基于mybatis的配置,mapper扫描路径等.mapper代理相关.负责从mapper包中扫描接口,并自动创建代理对象,在spring容器中注册.下面是一个典型的

2017-09-15 15:31:36 410

原创 关于spring与springmvc的依赖注入的思考.

首先我们应该了解一下spring的一些思想.spring是一个很大的东西,springmvc是在spring的基础上做了一些加强,本质上还是属于spring.在使用springmvc的时候,可以发现,程序中只是加了一个注解,我们就可以获取到spring注入的实例,但是我们并没有显式地引入applicationContext.xml文件.这是因为在web.xml文件中,我们设置了监听器和应用上下文.换

2017-09-15 13:52:55 603

原创 链路层

1. 概述 分用:目的主机收到一个以太网数据时,数据开始从底层上升,同时去掉各层协议加上的报文首部.每层协议盒都要检查首部中的报文标识,以确定上层协议.这个过程叫做分用.1.端口号端口号用于在同一台主机上分辨不同的应用程序或者进程.1~1023号端口是知名服务端口,由IANA进行分配.需要注意的是,同一个端口,可以被TCP和UDP同时使用.因为不同协议下的端口是可以通过协议类型来分辨出来的.2

2017-09-14 18:59:12 394

原创 关于property文件的使用

1. 需求说明 需求: 实现实时更新数据在一些系统中,可能有更改数据的需求.例如,在系统中我们使用了百度统计账号进行定期发送统计数据邮件.依照百度接口的需要,我们需要在功能模块里添加百度统计账号和密码等信息.假如某一天密码泄露,我们因此修改了百度统计账号的密码,而又不想影响线上系统的运行,此时就需要我们手动更新服务器上项目中密码信息.基于不能停止项目运行的需要,就可以采用property

2017-09-14 18:21:39 4117

原创 Python实现亚马逊网站图书满减信息的微信通知

开篇: 于实践中学习.1. 想法本程序的开发主要经历了以下几个阶段(我是一个python初学者):页面的下载->满减信息的查找->从首页动态寻找图书品类的入口->实现微信的通知.2. 初衷与问题页面下载用到了urllib模块,使用这个模块的过程中,又一次深入了解了关于http协议的工作细节.并且对前端的一些工作原理也有了了解. 因为自己对于amazon网站情有独钟,自己也喜欢看书,因此经常登

2017-09-08 15:09:06 545

原创 学习Spring中Bean的注入

现在细化一下关于Bean的三种装配方式1.自动装配(1)注解解释首先有这么几个注解:@Component : 这个注解标识在一个类上,用来表明该类是一个组件,可以被注入Spring容器中。@Configration: 注解在类上,表明这个类是一个配置类。@Autowired:自动装配,当该注解注解在一个方法或者属性上的时候,缺少什么bean,就会自动注入哪个bean。@ConponentSca

2017-04-18 21:48:17 524

原创 spring框架中Bean的自动装配

什么是Bean的自动装配?简而言之,一个类就是一个Bean,Spring框架是一个Bean容器,替我们管理这些Bean。类似于舞台剧,需要很多角色,Spring就是来组织各个角色之间的关系,然后对这些角色进行调动。一、纯粹使用XML文件描述此时XML 文件就相当于一个总的司令部,所有的Bean都被统一地在该文件中进行注册登记。二、使用注解描述没有了派出所统一登记造册,Spring框架就不能通过这个统

2017-03-18 19:52:05 1232

原创 个人机器上用于hosts替换的python小脚本

由于学校教育网时常出现问题导致ipv6不能访问,对于我这种靠v6访问Google的人来说,需要来回切换hosts文件。下面脚本用来执行hosts的替换。 p.s:学python之后的第一个小程序import os.pathimport shutildef copyIpv6Hosts(sourceDir,targetDir): for files in os.listdir(source

2017-03-14 22:56:44 964

原创 XML初识--dom4j

dom4j方式解析xml数据的基本流程:得到SAXReader,使用该对象读入xml文件流,然后得到根元素。使用根元素得到迭代器。然后分别使用element.attributes得到属性,使用elementIterator得到子元素,然后依次递归分析。Demo:package JDOMlearning;import java.io.FileInputStream;import java.util.

2017-03-09 21:57:37 305

原创 XML初识--JDOM

JDOM使用的基础使用流程:使用SAXBuilder建立document对象。从该对象得到根元素。得到根元素的属性。然后将属性解析完毕之后再得到子节点,递归这种操作。下面是一个Demo:package JDOMlearning;import java.io.FileInputStream;import java.io.InputStream;import java.util.List;impor

2017-03-09 21:08:52 304

原创 XML初识(一)--使用DOM解析XML数据

XML是一种数据储存标准,可以在不同编程语言,不同程序和不同系统之间交换数据。 XML组织数据的形式是以倒排树的形式来存储的。即顶部是根节点,下面是子节点。下面给出一个简单的XML文件,然后使用DOM获取里面的内容。books.xml:下面是Demo:package com.imooc.domlearing;import javax.xml.parsers.DocumentBuilder;imp

2017-03-09 08:33:14 319

原创 ls -l输出解释

文件权限-硬连接数量-所有者-所属组-大小(SD卡的block大小为4k)-最后一次修改文件或者目录的时间-文件名

2016-12-12 21:44:28 1352

原创 Lucene---查找的实现

建立查找方法使用8步:1.创建Directory这里的Directory跟建立索引的时候使用的是一样的,都是要指向索引文件,不同的是建立索引的时候指向的是未建立的文件夹?(如果已经存在会出现什么情况我还没有检验过),查找这里的Directory指向的是已经建立好的索引文件,即已经存在的的索引文件。2.创建IndexReader这相当于一个读“流”,用来读取索引文件的流。3.使用IndexReader

2016-12-01 12:48:58 428

原创 Lucene---建立索引初步

本文采用Lucene6.3.0。建立索引需要5步。1.创建DirectoryDirectory这个类这里我们可以暂时理解为主要用来决定索引文件是创建在内存中还是硬盘中。也就是说这个类用来决定存储索引文件的目录。2.创建IndexWriter这个类主要用来写索引。3.创建DocumentDocument类是用来存储我们索引的文件的信息,包括文件的标题类型大小内容等等。4.为Document添加域这里的

2016-11-25 11:43:35 1467

原创 Linux学习---重定向和管道符

输出重定向>代表以覆盖的方式将命令的正确输出输出到指定的文件或设备当中。 >>代表以追加方式输出。常用的输出重定向:1.命令 >> 文件 2>&1 :以追加的方式,把正确输出和错误输出都保存在文件中。2.命令&>文件名:以覆盖的方式将正确和错误输出都保存在文件中。3.命令&>>文件名:以追加的方式将正确和错误输出都保存在文件中。4.命令>>文件A 2>>文件B:正确的输出到A文件中,错误

2016-11-01 16:46:55 16244 2

原创 Linux学习---快捷键和历史命令

常用快捷键ctrl + c : 强制停止当前命令ctrl + l : 清屏ctrl + a : 光标移动到命令行首ctrl + e : 光标移动到命令行尾ctrl + u : 从光标所在位置删除到行首ctrl + z : 命令放到后台ctrl + r : 历史命令中搜索另外补充一下命令别名的执行顺序:绝对路径执行能命令2.执行别名3.执行bash内部命令4.执行$path环境变量定义的目录查

2016-11-01 15:33:29 2152

原创 Linux学习---命令别名

查看当前用户下的命令别名: alias自己重新起别名: alias 别名='原名'需要注意的是,通过以上方式起的别名是临时的,即下次登陆时,本次设置的别名会失效,如果想要永久生效,那么就需要修改自己使用的用户下的.bashrc文件。例如在我的机器上的文件部分内容如下: 在这个文件中修改即可达到每次使用相同用户登陆时不必重复增加别名的问题。另外还可以设置全局别名,即所有用户均可以使用的别名,对应的

2016-10-29 15:49:42 359

原创 XML语言基本介绍

本文暨《计算机是怎样跑起来的》总结,个人感觉矢泽久雄这本书写的特别好,推荐大家读一下。XML究竟是什么?关于定义XML全称是Extensible Markup Language,即可扩展标记语言怎么解释呢,拿我们平时熟悉的HTML语言来说,HTML就是一种规定了特定标签的语言,而XML语言则没有规定特定的标签(可能有一些基本的?目前我还没有学习到,以后学习到了来补充),所以说XML语言是一种元语

2016-10-29 14:50:25 18449

原创 Linux学习---关机与重启

1.关机命令最常用的是shutdown命令基本命令: shutdown更多关于shutdown的参数问题,可以自行man。这里列出几个常用的:-r:将系统服务停掉然后重启。-h:将系统服务停掉之后立刻关机。-c : 取消已经在进行的shutdown内容。-k : 不是真的关机,只是发送警告消息出去。在Linux中还有其他关机和重启命令,这里只是简要介绍一下:halt: 不理会目前系统状况,进行硬件

2016-10-26 21:39:10 262

原创 Linux学习---文件和目录的解压缩

几种常见的Linux压缩格式:.zip .gz .bz2,结合打包的有:.tar.gz .tar.bz21.zip格式这是一种通用的压缩格式,在windows中压缩成的zip格式也可以在Linux中解压使用,反之也可。基本命令格式: zip 目标压缩包名 目标文件例如:zip test.zip test这里需要注意的是,有些时候我们会发现压缩之后得到的压缩文件比源文件都大,这种现象是正

2016-10-26 16:07:35 348

原创 Linux学习---帮助命令

帮助命令主要有三种: - man命令 - –help命令 - info命令 ##man命令##基本命令格式:man ls准确检索命令使用man ls(ls代表命令)非准确检索使用man -k lsman -k ls 等价于apropos passwd。截图如下:使用apropos passwd命令其中-k可以按照keyword来理解##info命令##info命令是在一个大的文档中截取与你要搜

2016-10-23 19:43:09 331

原创 Linux学习---搜索命令

1.文件搜索命令locate基本命令格式:locate -[ir] keyboard参数:-i,忽略大小写。-r,后方接正则表达式(regex的含义)。locate搜索:locate寻找到数据是由已经创建的数据库/var/lib/mlocate里面的数据查到的。由于不用直接去硬盘中搜索数据,因此速度很快。这也就导致了当我们删除一个文件或者新建一个文件的时候,有时候会找不到这个文件,必须手动更新

2016-10-23 10:35:21 270

原创 Linux学习---磁盘分区及相关知识

1.硬盘组成和分区的概念先上个图帮助理解:结合上图我们应该了解的是:Sector(扇区)为最小的物理存储单位,每个扇区为512Bytes.扇区组合成的叫做柱面(Cylinder),柱面是分区的最小单位。我们说的所谓的分区(也称为磁盘分区),其实指的是告诉操作系统我们将一块磁盘的某块区域(例如从A柱面到B柱面之间的块)作为一个分区。也就是说,磁盘分区的意思就是制定分区的起始柱面和结束柱面。

2016-10-18 15:33:37 368

原创 二叉树的三种遍历方式(递归和非递归)

二叉树有三种遍历方式:前序、中序和后序。递归遍历1.前序遍历 public static void preTraversal(Node root) { if(root==null) return ; System.out.println(root.value); preTraversal(root.left);

2016-09-19 21:54:29 836

原创 JDK与JRE结构图解

下面是我就自己的一些理解和网上看到的资料自己画的一个关于JDK和JRE的有助于理解的示意图:这里说明一下2个JRE的区别。首先与JDK并行的JRE,是非开发人员使用的JRE,我们都知道JRE是java程序的运行环境,假如我们不是开发者,我们是用户,我们只是使用这些程序,那么我们关注的不是程序性能,我们更关注的可能是程序启动时间,因此这个JRE启动更快,这个JRE我们也称其为client端的JRE。然

2016-09-18 21:57:51 4566

原创 防止单例模式被攻击的一个Demo

我们要创建的单例的类如下:package DesignMode;public class SingletonMode{ private static volatile SingletonMode single = null; private static boolean flag = true; private SingletonMode() { syn

2016-09-07 12:21:35 390

原创 生产者与消费者模式

这种设计模式主要的使用场景是JAVA并发中,一个使用阻塞队列实现的Demo(使用链表实现的有界阻塞队列)如下:import java.util.concurrent.BlockingQueue;import java.util.concurrent.LinkedBlockingQueue;public class ConsumerAndProducer{ public static vo

2016-09-07 10:57:09 958

原创 单例模式

单例模式常见的三种实现方式:1.懒汉式为什么称之为懒汉式,因为这种方式很“懒”,只有当别人向它请求一个对象的时候,它才会产生一个对象供别人使用:package DesignMode;public class SingletonMode{ private static SingletonMode single = null; public static SingletonMode ge

2016-09-05 23:18:54 266

原创 TCP协议的三次握手与四次挥手

网上有很多类似的博客,但是都觉得说的不够细致,甚至有错误,因此这里个人总结一下。TCP连接的建立:三次握手1.TCP首部的几个标志位下面列出6个标志比特中的4个: 标志 字符缩写 标志位功能描述 S SYN 同步序号的标志,只有SYN为1的时候,TCP报文中才能携带序号信息。因此很多解释的文章中会将序号段称为SYN段,但是要注意,SYN只是类似一个开关的东西,他并不是序号本身。

2016-09-04 22:54:16 347

原创 实现字符串的反转

题目如下:分析:反转整个句子,然后以空格为标志,反转每个单词即可代码如下:import java.util.*;public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); String sen = sc.nextLine();

2016-09-03 20:17:33 305

原创 (十)雇员分页显示

雇员的分页显示和部门的分页显示是一样的,具体可以参照雇员分页显示这篇博文,因为雇员显示要涉及到一个外键问题,因此我们这里着重总结一下。在list.jsp页面我们这样设计显示:这样我们的日期用format来格式化他, 否则会出现日期错误。在部门名称显示一栏,我们使用e.department.dname方式来显示部门名称,但是这样处理,还是无法显示部门名称。究其原因,是因为懒加载导致,我们下面先看一下雇

2016-09-01 11:57:02 507

原创 (九)修改和删除部门功能模块的实现

今天完成部门模块的最后一个子模块功能:修改和删除1.修改模块需求:点击修改按钮,进入编辑页面,要求编辑页面显示该部门之前的信息,修改完成提交之后,返回到list.jsp页面。①:修改list.jsp文件,完成跳转我们将此次跳转转到action处理,跳转同时传递一个did属性:<td align="center"><a href="${pageContext.request.contextPath }

2016-09-01 00:43:19 4443

原创 (八)添加部门模块的实现

上一篇博客我们完成了部门的分页展示,现在我们开始着手部门信息的增删改查。在页面上方我们预留了添加按钮,我们就从这里开始着手进行。1.页面的跳转控制点击添加按钮的时候,我们要求跳转到添加页面,我们将这个动作交给一个action处理,而这个action只是负责进行页面跳转。关键代码如下:<td align="right" > <a href="${pageContext.request.contextP

2016-08-31 22:51:22 1545

原创 (七)分页查询部门模块的实现

这里我们开始做分页查询部门的模块实现。首先我们需要明确我们要实现的效果。即在页面上需要显示一定数目的部门,表格下部需要有第一页,下一页等跳转选项。效果图:因为我们是从index.jsp页面登入到frame.jsp的页面中去,因此我们从frame.jsp入手,即先开始修改left.jsp,引入我们进入后台管理界面之后点击左边的部门管理才会出来部门管理的列表。1.修改left.jsp页面因为点击之后,我

2016-08-31 20:48:53 1444

原创 (六)登录功能代码实现

登录功能我们要求从后台验证一个用户是否合法。前面一篇博文中,我们将前台传来的数据交给login()方法去处理,因此我们从这里入手开始。1.action层的填写既然前台传来了数据,那么我们就需要获取他,因此getModel()方法要返回我们的employee对象。 //模型驱动使用的对象 private Employee employee = new Employee(); @O

2016-08-31 16:15:44 5416 4

原创 (五)员工管理实现模块初步

这里我们主要来打通后台和前端。1.首页代码设置我们首先引入struts2的标签库:<%@ taglib uri="/struts-tags" prefix="s" %>然后设定我们提交的action为employee_login:employee_login这个名字很重要。后面我们会提到。2.action层的设置在action层,我们需要一个service对象来帮助我们完成验证,因此需要一个业务层的

2016-08-31 14:02:56 960

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除