- 博客(98)
- 收藏
- 关注
原创 java 中断线程
在了解线程中断之前,必须要知道线程的6种状态。New(新键状态)、Runnable(可运行状态)、Blocked(被阻塞状态)、Waitring(等待状态)、Timed Waiting(计时等待)、Terminated(被终止状态)。这六种线程状态是java中的,其他语言中的线程状态有可能不是这6种,但是线程最基本的状态一定有就绪态、运行态、阻塞态。 New(新键状态):由 N...
2018-04-04 17:14:02
229
原创 java Socket 网络编程
Java网络编程 Java网络编程主要是以Socket套接字编程为主。Socket套接字负责启动程序内部与外部的通信。将远程地址和端口传递给套接字构造器,套接字被打开以后,其中的getInputStream方法就会返回一个InputStream对象,该对象接受的是服务器端(或者客户端)传递过来的数据。该对象可以像其他的任何流对象一样使用。并且这个流对象会一直持续到客户端与服务器端断开连接为止。 ...
2018-03-22 17:05:16
314
原创 java内存模型以及Volatile
Java内存模型Java内存模型是屏蔽掉各种硬件和操作系统的内存访问的差异,以实现Java程序在各种平台下都能达到一致的内存访问效果。 Java内存模型规定,所有的变量都是在主存中存储,所有的变量操作(读/写)都必须是在工作内存中进行。工作内存保存了线程中所有的变量,这些变量都是从主存中copy出来的。工作内存是每一个线程独有的内存,不能被其他线程所访问。线程间的值传递都是通过主存来完成的。 线
2018-03-16 15:57:10
170
原创 机器学习一
一、机器学习 机器学习就是把无序的数据转换成有用的数据信息。二、机器学习的算法划分 机器学习分为监督学习以及无监督学习。1、监督学习 &nbs
2018-02-08 13:34:39
203
原创 KNN 近邻算法
- 指导思想先计算待分类样本与已知类别的训练样本之间的距离,找到距离与待分类样本数据最近的k个邻居;再根据这些邻居所属类别来判断待分类样本数据的类别。 - 算法步骤计算距离:给定测试对象,计算它与训练对象集中每个对象的距离。找邻居:选自距离最近的k个训练对象,作为测试对象的近邻。做分类:根据K个近邻的主要类别,来对测试对象进行分类。 优缺点优点简单、易于理
2018-01-18 13:38:45
506
原创 python学习(一)数据类型
标准数据类型Python3 中有六个标准的数据类型:Number(数字) String(字符串) List(列表) Tuple(元组) Sets(集合) Dictionary(字典)Number(数字)Python3 支持 int、float、bool、complex(复数)。在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 L
2018-01-17 18:12:54
233
原创 OpenStack的Ocata版本安装
一、环境准备本次环境适应的centos7以及OpenStack的Ocata版 1、配置网络controller 节点与compute节点一样,都有两个网卡。第一个网卡配置为管理网络接口,第二个网卡配置为外部网络接口。而block节点只需要一张网卡 1.1 controller 节点与compute节点配置 在/etc/sysconfig/network-scripts/ 目录下编辑两张
2017-09-18 15:30:08
1369
原创 面向切面的Spring
什么是切面编程1.定义AOP术语横切关注点(cross-cuting concern):散布于应用中多处的功能被称为横切关注点。把横切关注点与业务逻辑相分离正是面向切面编程(AOP)所要解决的问题。切面(Aspect):切面是通知和切点的结合。通知和切点共同定义了切面的全部内容-它是什么,在何时和何处完成其功能。通知(Advice):切面的工作被称为通知。通知定义了切面
2017-04-10 16:39:01
259
原创 Spring 高级装配
环境与profile1.配置profile bean如下代码所示:在开发环境中会创建一个javax.sql.DataSource的bean。用EmbeddedDatabaseBuilder会搭建一个嵌入式的HyperSonic数据库。他的模式(schema)定义在schema.sql中,测试数据则是通过test-data.sql加载的。在生产环境中通过JNDI容器中获取一个Da
2017-04-09 14:15:09
305
原创 hibernate5自动生成数据库
public static void main(String[] args) { ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().configure().build(); Metadata metadata = new MetadataSources(serviceRe
2017-04-06 11:27:20
500
原创 Bean的配置
bean的常见三种装配1.在XML中显示配置2.在Java中进行显示配置3.隐式的bean发现机制和自动装配。自动化装配BeanSpring从两个角度来实现自动化装配:1.组件扫描(component scanning): Spring会自动发现应用上下文中所创建的bean.2.自动装配(autowiring):Spring自动满足bean之间的依赖。(1)创建
2017-04-06 11:26:02
447
原创 springIoC实例
Spring框架是一个非常优秀的轻量级J2EE容器,它是一个开源框架。可以更深层次的降低业务层的耦合程度,其核心是一个轻量级容器(Container),并且实现了IoC(控制反转)模式。Spring是一个轻量级的IoC和面向切面(AOP)的容器框架。通过IoC技术促进了松耦合,提供了面向切面编程的丰富支持,并且允许通过分离应用业务逻辑与系统级服务进行内聚性的开发。Spring框架是一个分层
2017-03-21 18:04:42
344
原创 json串的简单实例
1.创建实体对象Book.javapackage entity;public class Book { private int bookId; private String bookName; private String bookPress; public int getBookId() { return bookId; } public void setBookId(i
2017-03-21 16:13:09
2775
原创 struts安全保护机制
配置保护资源1.元素中的子标签为用来标示一个资源用来对资源进行描述 用来定义一个URL模式,所有与这个URL模式相匹配的URL地址的资源都将受到保护用来定义受限制的HTTP请求方法。例如设置其值为POST,则POST请求方法将受到限制。2. 允许访问受保护资源的角色描述角色3.包含元素,用来定义数据传输的保护形式INTEGRAL: 保证数据在传输过程中不
2017-03-21 14:43:32
452
原创 自动等待
struts2使用execAndWait拦截器实现自动显示等待页面。execAndWait拦截器的实现过程1.当表单提交请求到来时,execuAndWait拦截器将创建一个新的线程来执行Action,然后返回一个等待页面给用户,让用户知道请求正在处理中。2.等待页面将包含自动刷新功能,每隔几秒钟就通知浏览器,向初始请求的URL再次发送请求。3.execAndWait拦截器再次截获请
2017-03-21 13:46:10
244
原创 避免表单重复提交
表单重复提交有两种情况。1.多次单机提交按钮。当用户在页面的表单中填写完信息,单机提交表单的按钮后,可能因为响应不及时,用户没有看到响应结果而再次单机提交按钮,从而导致在服务器端接收两条同样的信息。2.执行刷新操作在服务器端避免表单重复提交,通常采用同步令牌的方式来实现。其基本原理如下(1) 服务器端在处理客户端请求时,创建一个session对象和一个令牌值(如:tok
2017-03-21 13:16:28
247
原创 struts2多个文件上传
1.创建Action类ListUpload.javapackage action;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.util.List;import java.util.Random;import org.apache.st
2017-03-21 09:46:47
362
原创 struts2的文件上传
1.创建upload.jsp Struts 2文件上传 Struts 2文件上传 MyUpload.javapackage action;import java.io.File;import java.io.FileInputStream;import java.io.Fi
2017-03-20 19:47:11
283
原创 基于表单的文件上传
须将form中的enctype设置为“multipart/form-data”fileUpload.jsp 选择上传文件: showFile.jsp 上传文件 上传文件的内容如下: <% InputStream is = request.ge
2017-03-20 19:30:55
288
原创 struts2分页查询
创建实体类Person.javapackage entity;public class Person { private int personId; private String personName; private int personAge; private String personInfo; public int getPersonId() { return per
2017-03-20 17:57:16
863
原创 数据源与连接池
连接池和连接源连接池提供了一种连接时资源被消耗的解决方案,通过数据源来获得连接池中的一个连接。应用程序启动的时候,连接池建立足够的数据库连接,并将这些连接组成一个连接池,由应用程序动态的对池中的连接进行申请、使用和释放。如果并发请求的连接数大于连接池中的连接,那么该请求将在请求队列中排队等待。另外,应用程序可以根据池中连接的使用率,动态增加或者减少池中的连接数。连接池技术尽可能的重用消
2017-03-20 16:58:14
267
原创 jdbc连接数据库
import java.sql.Connection;import java.sql.DriverManager;public class DatabaseConn { private static Connection conn; private String url = "jdbc:mysql://:localhost:3306/user"; private String us
2017-03-20 16:10:23
212
原创 自定义校验器实例
1.创建校验器类MyValidator.java。该类继承于FieldValidatortSupport类package action;import com.opensymphony.xwork2.validator.ValidationException;import com.opensymphony.xwork2.validator.validators.FieldValidator
2017-03-20 15:51:52
927
原创 struts2系统自带的主要校验器
1.required:必填校验器,要求字段必须有值 没有姓名信息,userName为null! 2.requiredstring:必填字符串校验器,要求字段为非空字符串 true 姓名不能为空 ! 3.stringlength:字符串长度校验器,要求字段必须满足指定长度范
2017-03-20 11:41:36
362
原创 struts2(复合)集合数据校验
Action中使用List对象。要在程序中添加一个.properties的配置文件,将List对象指向实体类1.VisitorListAction.javapackage action;import java.util.List;import com.opensymphony.xwork2.ActionSupport;public class VisitorListActi
2017-03-20 10:32:44
255
原创 struts2复合类型数据校验实例
1.创建一个User.javapackage action;public class User { private String userName; private int userAge; private String userTelephone; public String getUserName() { return userName; } public vo
2017-03-20 10:17:08
354
原创 struts2校验(2)
Struts2提供了一种基于框架的校验方式,将校验规则保存在特定文件中,使Action和校验分离,从而提高系统的可维护性和可扩展性。定义校验规则Struts2扩家通过杜集区校验文件中定义的验证规则对输入数据进行校验,校验文件需要和Action类在相同的目录下。文件名为:ActionName-validation.xml或者ActionName-alias-validation.xml。
2017-03-20 09:56:42
249
原创 Struts2校验器的开头配置
以前是这样<?xml version="1.0" encoding="utf-8" ?><!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">但是,因为xwork的东西已经并入s
2017-03-20 09:44:02
806
原创 struts校验
使用validate进行校验输入创建addUser.jsp手动校验数据 --%> 添加联系人 创建AddUserAction.javapackage action;import java.util.regex.Pattern;import com.opensymphony.xwork2.ActionS
2017-03-17 15:47:10
236
转载 struts的类型转换器
基于OGNL的类型转换器自定义类型转换器需要你继承ognl.DefaultTypeConverter类,并且重写该类中的 converValue()方法。其中三个参数的意义。Map context:表示类型转换的上下文环境Object value:表示需要进行类型转换的参数,由于Struts2框架的类型转换器可以实现双向转换,所以根据转换方向,该参数的意义不同。当把复合类型转换
2017-03-17 14:55:01
241
原创 拦截器
拦截器的方法过滤默认情况下,如果为某个Action配置拦截器,则这个拦截器将拦截Action中的所有方法。因此想实现拦截器的方法过滤应该继承MethodFileInterceptor抽象类,重写其doIntercept()方法。需要使用的两个参数:excludeMethods参数指定拦截器拒接拦截器拦截的方法列表。如果有多个方法,则每两个方法用“,”隔开。如:login,regis
2017-03-17 11:08:56
276
原创 struts2拦截器
拦截器拦截器在AOP中用于在某个方法和字段被访问之前进行拦截,然后在之前或者之后加入某些操作,拦截是AOP的一种实现策略。AOP简介AOP(Aspect Oriented programming,面向切面编程)可以说是对OOP(Object, Oriented Programming,面向对象程序设计)的补充和完善。在面向对象编程中,对象封装的是对象的行为和属性。AOP技术利用
2017-03-16 15:19:55
155
原创 stuts异常处理实例
struts2异常处理机制struts2的框架中采用声明式异常处理机制。开发者只需要在struts.xml文件中进行配置,struts便能够处理异常,然后响应相应的视图,在Action中无须编写任何异常处理代码。配置异常处理struts.xml中的配置<!DOCTYPE struts PUBLIC "-//Apache Software Foundatio
2017-03-16 14:45:42
231
原创 Stuts2国际化
配置资源文件1.使用struts.xml文件(推荐使用)constant name="struts.custom.i18n.resources" value="globalMessages"/>2.使用struts.properties(推荐使用)struts.custom.i18n.resources=globalMessages3.在web.xml中(不推荐使用)
2017-03-16 14:12:55
201
原创 java国际化
java对国际化的支持java进行国际化时,主要使用如下3个类完成1.java.util.Locale 对应一个特定的区域和语言环境 中国应用环境的Locale对象:Locale.CN 常用的方法如下:getDefault() 获取本地系统默认的Locale对象getCountry() 获取区域名getLanguage() 获取语言getDispla
2017-03-16 13:01:10
194
原创 action的注解实例
action类的注解配置代码package action;import org.apache.struts2.config.Namespace;import org.apache.struts2.config.Result;import org.apache.struts2.config.Results;import org.apache.struts2.dispatcher.Ser
2017-03-16 11:31:05
741
原创 struts通配符配置
通配符配置<!--method属性值为1表示匹配一个*。如用户的请求是book_add.action。则name 的属性值是book_add,method的属性值是add --> /success.jsp <!-- 讲Result的返回视图也进行了通配符表示。如用户的请求是book_add.
2017-03-16 11:11:27
223
原创 result重定向与全局标签
全局result全局的Result定义在的标签下。当default包下的任何一个Action的返回字符串为error,页面都将返回error.jsp /error.jsp /success.jsp redirect结果类型用来重定向jsp文件或者Action类 /addSuccess.jsp add
2017-03-16 10:47:00
486
原创 Action的动态方法调用
使用动态方法调用时,form表单的action属性值必须符合以下的格式action="Action名称!方法名称"在或action=“Action名称!方法名称.action” 在loginRegister.jps源代码如下 登录或者注册 function reg(){ targetForm = document.forms[0]; t
2017-03-16 10:36:54
858
原创 Servlet API的直接与间接访问
Action接口的5个常量SUCCESS 表示动作成功,并应该把相应的结果视图显示给用户NONE 表示动作执行,但不应该把任何结果视图显示给用户ERROR 表示动作执行不成功,并应该把相应的报错视图显示给用户INPUT 表示验证失败,并应该把用户输入的那个表单重新显示给用户LOGIN 表示动作没有执行(因为用户没有登录),并应该把登录视图显示给用户。间接访问Serv
2017-03-15 18:52:34
498
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人