自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 收藏
  • 关注

转载 Tomcat 的部署器

  要使用一个Web应用程序,必须要将表示该应用程序的Context实例部署到一个Host实例中,在Tomcat中,Context实例可以用WAR文件的形式来部署,也可以将整个WEB应用程序复制到Tomcat安装目录下的webapp下。对于部署的每个应用程序,可以在其中包含一个描述符文件,该文件包含Context实例的配置信息,描述符文件也采用XML文档格式。  下面会讨论如何使用部...

2019-01-02 22:34:00 145

转载 在Windows平台上运行Tomcat

  从之前的学习中知道,可以调用Bootstrap类将Toomcat作为一个独立的应用程序来运行,在Windows平台上,可以调用startup.bat批处理文件来启动Tomcat,或运行shutdown.bat批处理文件来关闭Tomcat,这两个批处理文件位于%CATALINA_HOME%/bin目录下,下面将会对批处理脚本进行介绍,如果你对DOS命令不太熟悉,那么你需要认真阅读下面的...

2018-12-28 22:21:00 131

转载 启动Tomcat

  这篇随笔的重点关注启动Tomcat时会用到的两个类,分别是Catalina类 和 Bootstrap类,它们都位于org.apache.catalina.startup包下,Catalina类用于启动或关闭Server对象,并负责解析Tomcat文件:server.xml文件。Bootstrap类是一个入口点,负责创建Catalina实例,并调用其process()方法,理论上这两个...

2018-12-25 20:39:00 136

转载 关闭钩子(shutdown hook)的作用以及在Tomcat中的使用

  在很多实际应用环境中,当用户关了应用程序时,需要做一些善后清理工作,但问题是,用户有时并不会按照推荐的方法关闭应用程序,很有可能不做清理工作,例如在Tomcat的部署应用中,通过实例化一个Server对象来启动servlet容器,并调用其start方法,然后逐个调用组件的start方法,正常情况下,为了让Server对象能够关闭这些已经启动的组件,你应该向指定的端口发送关闭命令...

2018-12-24 21:11:00 494

转载 Digester库

  在之前所学习关于启动简单的Tomcat部分实现的代码中,我们使用一个启动类Bootstrap类 来实例化连接器、servlet容器、wrapper实例、和其他组件,然后调用各个对象的set方法将他们关联起来,例如。要实例化一个连接器 和 一个 servlet容器,可以使用下列代码// 初始化一个连接器 Connector connector = new Ht...

2018-12-21 21:17:00 135

转载 Tomcat中的服务器组件和 服务组件

  开始学习Tocmat时,都是学习如何通过实例化一个连接器 和 容器 来获得一个Servlet容器,并将连接器 和 servlet容器相互关联,但是之前学习的都只有一个连接器可以使用,该连接器服务8080端口上的HTTP请求,无法添加另一个连接器来服务 诸如 HTTPS之类的其他请求,而且前面所有学的示例,都缺少一种启动或者 关闭servlet容器的机制,那么下面学习一下提供这两种机...

2018-12-17 21:16:00 176

转载 Tomcat中的Host和Engine级别的servlet容器

 这边文章主要介绍的是Host容器 和 Engine容器。如果你想在同一个Tomcat上部署运行多个Context容器的话,你就需要使用Host容器,从理论上来讲,如果你的Tomcat只想要部署一个Context容器的话,你可以不使用Host容器。在org.apache.catalina.Context接口的描述有下一段话:  Context容器的父容器通常是Host容器,也有可...

2018-12-15 22:17:00 183

转载 StandardContext

StandardContextContext实例表示一个具体的Web应用程序,其中包含一个或者多个Wrapper实例,每个Wrapper表示一个具体的Servlet定义,Context还需要其他组件的支持,典型的如加载器 和 Session管理器,下面就对org.apache.catlainia.core.StandardContext类的工作机制进行详细记录,该类是Context的...

2018-12-13 22:29:00 152

转载 浅谈JMX

JMX在Java编程语言中定义了应用程序以及网络管理和监控的体系结构、设计模式、应用程序接口以及服务。通常使用JMX来监控系统的运行状态或管理系统的某些方面,比如清空缓存、重新加载配置文件等优点是可以非常容易的使应用程序被管理伸缩性的架构使每个JMX Agent服务可以很容易的放入到Agent中,每个JMX的实现都提供几个核心的Agent服务,你也可以自己编写服务,服务可以很容易...

2018-12-03 22:52:00 125

转载 StandardWrapper

Tomcat中有四种类型的Servlet容器,分别是 Engine、Host、Context、Wrapper,每个Wrapper实例表示一个具体的Servlet定义,StandardWrapper就是Catalina中的Wrapper接口的标准实现.方法调用序列:指的是每当服务器接收到Http请求时,服务器中调用的一系列方法,对于每个引入的HTTP请求,连接器都会调用与其关联的Ser...

2018-12-02 14:48:00 147

转载 Tomcat的安全性

Web应用程序的一些内容是受限的,只有授权的用户在提供了正确的用户名和密码后才能查看他们,servlet技术支持通过配置部署 描述器(web.xml)来对这些内容进行访问控制,那么web容器是怎么样支持安全限制功能的呢?servlet容器是通过一个名为“验证器阀”来支持安全限制的,当servlet容器启动时,验证器阀 会被添加到Context容器的管道中,在调用Wrapper的基础阀之前...

2018-11-27 21:53:00 361

转载 算法效率 简单的增长率 参照

1、时间复杂度(Time Complexity) 一般情况下,算法中的基本操作重复执行次数是问题规模n的某个函数 f(n) ,算法的时间度量记作: T(n) = O(f(n)) 它表示随问题规模n的增大,算法执行时间的增长率和 f(n) 的增长率相同,称做算法的逐渐时间复杂度,简称时间复杂度。         ...

2018-06-12 22:37:00 292

转载

    树形结构是一类重要的非线性数据结构,其中以树和二叉树最为常用,直观看来,树是以分支关系定义的层次结构,树结构在客观世界中广泛的存在,像是我们常见的族谱和各种社会组织结构都可以用树来形象表示,树在计算机领域中也得到了广泛的应用,如在编译程序中,可以用树来表示源程序的语法结构,又如在数据库中,树形结构也是信息的重要组织之一,    树的定义以及一些基本术语树:树是一个拥有n&...

2018-06-12 22:11:00 115

转载 排序算法之 归并排序

      归并排序:简单介绍一下:“归并”的含义是将两个或两个以上的有序表组合成一个新的有序表,它的实现方式大家早都已经熟悉了,无论是顺序存储结构还是链表存储结构,都可以在O(有序表的长度之和)时间内实现,利用归并的思想容易实现排序,假设初始序列含有n个记录,则可以看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到 n/2 个长度为2或者为1的有序子序列,在两两归并 ...

2018-06-11 22:16:00 116

转载 队列ADT

  像栈一样,队列也是表,然而,使用队列时插入在一段进行,而删除则在另一端上进行队列模型  队列的基本模型是 入队(就是添加元素),它是在表的末端(叫做队尾)插入一个元素,和出队,它是删除并返回 在表的开头也叫队头的元素,<----出队(删除并返回)-----[ 头 队列 尾 ]<--------入队(末端插入)-------队列的数组实现  如...

2018-05-23 22:50:00 151

转载 栈ADT

栈是限制插入和删除都只能从一个位置上操作的表,该位置是表的末端,表的末端一般叫做栈顶,对栈的基本操作有push(进栈) 插入 和 pop(出栈)删除,前者相当于在表最后的位置上插入元素,后者相当于删除最后进入栈的元素,俗称也叫先进后出表,后进先出表,我们对栈的基本操作也就是 push和pop,一般栈的模型就是存在某个元素位于栈的顶部,并且该元素是唯一可见的元素,由于栈是一个表,所以任...

2018-05-23 22:10:00 98

转载 java实现的LinkedLilst

package javabean.adt.List;import java.util.ConcurrentModificationException;import java.util.Iterator;import java.util.ListIterator;import java.util.NoSuchElementException;/** ...

2018-05-20 11:15:00 91

转载 Arraylist

ackage javabean.adt;import sun.misc.SharedSecrets;import java.util.*;import java.util.function.Consumer;import java.util.function.Predicate;import java.util.function.UnaryOperator...

2018-05-06 22:40:00 49

转载 算法分析

定义:算法是为了求解一个问题需要遵循的、被清楚指定的简单指令的集合,对于每一个问题,一旦某种算法给定并且(以某种方式)被确定是正确的,那么重要的一步就是确定该算法将需要多少诸如时间或空间资源的问题,如果一个问题的求解算法竟然需要长达一年时间,那么这种算法 很难有什么用处,同样要是一个算法需要若干个GB的内存,那么在当前大多数机器上也是无法使用的算法分析 一般说来,估计算法资源消耗...

2018-05-01 21:50:00 154

转载 函数对象

函数对象* 一种将函数作为参数传递的独创方法 是注意到 在我们想传递的参数 即包含数据 也保包含方法,于是我们可以定义一个* 不包含数据 只 包含方法的类,并传递该类的一个实例,事实上,一个函数通过将其放在一个对象内部而被传递,这样的对象* 通常称为函数对象package javabean.newTest51;import com.sun.istack.internal....

2018-05-01 14:58:00 86

转载 泛型类、泛型接口、泛型方法及泛型的应用

面向对象的一个重要目标就是对代码的重用,支持这个目标的重要机制就是泛型;泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,* 分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是安全简单。* 在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实...

2018-04-27 23:47:00 132

转载 递归简论

我们熟悉的大多数数学函数都是由一个简单的公式来描述的,模拟数学函数 公式为f(X)= 2f(x-1)+x*x* 我们在非负整数集上定义一个函数f,它满足f(0)= 0;并且满足上述公式;* 我们就可以根据上述公式定义一个函数 当一个函数 用它自己来定义时 就称之为递归函数 //可以使用递归的地方一定要满足几种条件 //不可以在调用自己的时候 陷入死循环 而且在调用自...

2018-04-27 21:54:00 85

转载 生产者 与 消费者

考虑有这样一个饭店 他有一个厨师和一个服务员 这个服务员必须等待厨师准备好食物。当厨师准备好时会通知服务员 之后服务员上菜,这样一个线程协作 厨师作为生产者 而 服务员作代表消费者菜的java实例package test.thread.ProducerAndConsumer;public class Meal { private final int orde...

2017-11-29 16:04:00 64

转载 一种在获取互斥锁陷入阻塞时可以被中断的 lock

经过上篇的实例 线程在陷入阻塞时,在sychronized获取互斥锁陷入阻塞时,我们是无法进行中断的,javase5中提供了一种解决的办法ReentrantLock ,我们常常用到的是它的lock()unlock方法,但是这里要重点说的是它的lockInterruptibly()方法 这种获取锁的方式,具备在获取互斥锁陷入阻塞时可以中断该任务所在线程的能力,正常的lock()方法的运行...

2017-11-28 10:47:00 133

转载 线程的中断

线程的中断 线程在运行完run后会自动死亡 但是有的时候我们需要在run方法中的某一处中断该线程那么我们就可以通过一个标识符 的true 和false来判定是否终结任务 并且可以通过为标识符赋值来加以控制下面演示一个实例演示一个花园想要通过每天通过大门的人数来了解进入公园的访问量,每一个大门都有一个计数器,并且任何一个门的计数器递增时 公园中的总人数共享计数值也会递增,公...

2017-11-27 17:24:00 61

转载 在其他对象上同步

Synchronized标记的代码必须给顶一个其上进行同步的对象,并且最合理的方式是,使用其方法正在调用的对象Synchronized(this)这是最常用的方式了,在这种方式中 如果获得了Synchronized块上的锁,那么该对象其他的Synchronized方法和临界区就不能调用了。所以有时候需要我们在另一个对象上同步,然后我们必须保证所有相关的任务都是在同一个对象上同步的,然后...

2017-11-24 14:54:00 72

转载 如何在一个线程环境中使用一个线程非安全的java类

在开发过程中 当我们拿到一个线程非安全的java类的时候,我们可以额外创建这个类的管理类 并在管理类中控制同步比如一个非线程安全的Pair类package test.thread.sx.testKuai;/** * 线程非安全的java类 * 约束条件 两个变量的值必须一致 * @author Administrator * */...

2017-11-24 13:46:00 88

转载 原子类

jse5引入了诸如AtomicInteger、AtomicLong、AtomicReferencece等特殊的原子性变量类,这些类被调整为可以使用某一些现代处理器上可获得的,并且可以在机器级别上保持其原子性。在正常编程上不建议使用这种特殊的原子性变量类,在涉及到性能调优的时候,就可以用他们,下面我们使用以下举一个例子package test.thread.sx.yua;i...

2017-11-23 15:07:00 63

转载 Volatile

在java谈到线程的同步方式,很多初学者(比i如我)最开始的理解是 内置锁sychronized、显示的Lock的lock()和unLock()和 volatile 这三种方式来控制线程的同步,但是在学习了volatile之后才发现 ,它在大多数的时候是不具备控制同步的能力。它的主要作用并不是控制同步。Volatile的原子性: 原子性可以应用于除了long和double之外的所有基...

2017-11-23 14:32:00 73

转载 java解决共享资源竞争

由于多线程的实现,在运行一个程序的时候可能会有很多的线程在同时运行,但是线程的调度并不是可见的,所以不会知道一个线程什么时候在运行,比如说 你坐在桌子前手拿着叉子,正要去叉盘中的最后一片食物,当你的叉子就要够得着他的时候,这片食物突然消失了,因为你的线程挂起了,另一个用餐者进入并吃掉了它,所以这就是在使用多线程时会出现的问题,对于并发的任务,你需要一种方式来防止两个线程同时访问一段资源,...

2017-11-22 17:58:00 144

转载 java线程捕获异常

java多线程程序中,所有线程都不允许抛出未捕获的checked exception(比如sleep时的InterruptedException),也就是说各个线程需要自己把自己的checked exception处理掉。这一点是通过java.lang.Runnable.run()方法声明(因为此方法声明上没有throw exception部分)进行了约束。但是线程依然有可能抛出unch...

2017-11-21 14:06:00 61

转载 java使用Callable创建又返回值的线程

并发编程使我们可以将程序分为很多个分离的,相互之间独立的任务,通过使用多线程的机制,将每个任务都会有一个执行线程来单独的驱动,一个线程是 进程中一个单一顺序控制流,一个进程可以拥有多个线程,也就相当于有多个单独的顺序控制流,所以你的进程当中每个线程看起来都是有单独的cpu一样,底层实现就是切分cpu的时间片。实现线程的方法1 直接继承Thread类 然后重写run方法 局限性特别...

2017-11-20 15:22:00 95

转载 mybatis工作原理及实现

对数据库的连接 使用时就创建连接,不使用就立即释放,对数据库进行频繁连接开启和关闭,造成数据库的资源浪费,影响数据库的性能;解决办法:使用数据库连接池,管理数据库的连接。2 将sql语句硬编码到java代码中,如果sql语句修改,需要重新编译java代码,不利于系统维护,解决办法:把sql语句I定义到xml配置文件里;3 在向statement中设置参数,对站位符位置和...

2017-06-30 14:59:00 82

转载 Hibernate 初体验

为什么会产生 Hibernate Mybatis 这类的dao层框架传统的jdbc 虽然执行速度很快,但是开发效率很低,随着面向对象开发的设计思想,在面向对象编程中 将对象 进行持久化,存入关系型的数据库时,由于关系型数据库的设计思想是数学思维,在持久化时,必须要对象拆分各个属性值,才可存入数据库;传统的jdbc 持久化时 对象持久化时 ,取出对象的一个一个属性,过去繁琐,并且不便于...

2017-06-29 15:33:00 92

转载 SpringMvc配置详解

Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。Spring Web MVC也是服务到工作者模式的实现,但进行可优化。前端控制器是Di...

2017-06-28 15:32:00 90

转载 mysql与oracle的区别

1. Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率达40%,Mysql只有20%左右,同时Mysql是开源的而Oracle价格非常高。2. Oracle支持大并发,大访问量,是OLTP最好的工具。3. 安装所用的空间差别也是很大的,Mysql安装完后才152M而Oracle有3G左右,且使用的时候Oracle占用特别大的内存空间和其他机器性能。...

2017-06-28 12:39:00 58

转载 谈jdbcTemplate与mybatis

为什么会产生 Hibernate Mybatis 这类的dao层框架传统的jdbc 虽然执行速度很快,但是开发效率很低,随着面向对象开发的设计思想,在面向对象编程中 将对象 进行持久化,存入关系型的数据库时,由于关系型数据库的设计思想是数学思维,在持久化时,必须要对象拆分各个属性值,才可存入数据库;传统的jdbc 持久化时 对象持久化时 ,取出对象的一个一个属性,过去繁琐,并且不便于...

2017-06-26 15:53:00 246

转载 form表单添加富文本编辑器

<div class="control-group"> <label class="control-label">内容:</label> <div class="controls"> <textarea id="editor" name="con...

2017-06-20 10:55:00 632

转载 实现添加相关资源的弹出ifreame 并实现多选框

项目中:语音导览添加相关展品 字段:relactiveExhibitItem 长度 varchar2000<div class="control-group"> <label class="control-label">相关展品:</label> <div class="controls...

2017-06-16 17:08:00 91

转载 弹出ifream

top.$.jBox("iframe:"+'${ctx}/synopsis/hmlwxSynopsis/addItem', {title: "添加作品",width: 1000, height: 500, buttons:{'关闭': true,'确定':'ok'}, submit:function(v, h, f){ ...

2017-06-15 14:35:00 79

空空如也

空空如也

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

TA关注的人

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