chexagon/redis-session-manager: A tomcat8 session manager providing session replication via persistence to redishttps://github.com/chexagon/redis-session-manager jcoleman/tomcat-redis-session-manager: Redis-backed non-sticky session store for Apache…
方案一:数据库乐观锁 乐观锁通常实现基于数据版本(version)的记录机制实现的,比如有一张红包表(t_bonus),有一个字段(left_count)记录礼物的剩余个数,用户每领取一个奖品,对应的left_count减1,在并发的情况下如何要保证left_count不为负数,乐观锁的实现方式为在红包表上添加一个版本号字段(version),默认为0. 异常实现流程 ? 1 2 3 4 5 6 7 8 9 10 11 12 -- 可能会发生的异常情况 -- 线程1查询,当前left_count…
一.前言 本文:https://www.cnblogs.com/Twobox/p/10361712.html 参考:https://www.cnblogs.com/diewufeixian/p/4221747.html 自己设计SSO系统的时候,需要考虑多个客户网站与中心网站的Session有效期同步问题. 即需要满足: 客户端网站Session剩余失效时间必须短于中心网站. 中心网站Session失效的时候,客户端网站必须全部声明失效. 场景: 用户第一次在中心网站登陆的时候会创建并刷新 中心…
servlet的404错误困扰了两天,各种方法都试过了,翻书逛论坛终于把问题解决了,写此博客来纪念自己的第一个servlet经历. 下面我会将自己的编写第一个servlet的详细过程提供给初学者,大神们可以自动过滤掉.下面的步骤有这样的前提:你的eclipse嵌入了TomCat插件(我们会在Eclipse上操作servlet)或者本地主机已经有安装好某一个版本的TomCat,我这里用的是Tomcat7.0.69. 第一步:创建Dynamic Web Project Eclipse下->new->…
转: http://www.oschina.net/question/54100_16195omcat的运行模式有3种.修改他们的运行模式.3种模式的运行是否成功,可以看他的启动控制台,或者启动日志.或者登录他们的默认页面http://localhost:8080/查看其中的服务器状态. 1)bio 默认的模式,性能非常低下,没有经过任何优化处理和支持. 2)nio  利用java的异步io护理技术,no blocking IO技术. 想运行在该模式下,直接修改server.xml里的Conne…
1:在Action中如何获得作用域(request,session,application)对象: 取得Map(键值对映射集)类型的requet,session,application; 对数据操作的所有方法:(即把数据保存到域中) 主要使用的是方式2和方式3: 方式1:直接获取ServletApi,核心类是ServletActionContext提供的静态的方法; package com.bie.lesson04; import javax.servlet.ServletContext; im…
https://blog.csdn.net/Jessica_XLF/article/details/81711429…
初学Javaweb开发的人们都会遇到一个问题,就是服务器环境的搭建配置问题.下面介绍三种服务器的搭建方式. 直接修改server.xml文件 当你写了一个web应用程序(jsp/servlet),想通过浏览器直接去访问这个页面,需要在Tomcat中配置相关路径: 找到Tomcat下conf目录,你会看到有个server.xml,即服务器配置文件.用文本编译器打开,拉到Host标签,在它结束前加上我们的应用程序路径: <Context path="/HelloWeb" docBas…
参考文献:极客时间傅健老师的<Netty源码剖析与实战>Talk is cheap.show me the code! 什么是Reactor及三种版本 反应堆设计模式(Reactor pattern):是一种为处理并发服务请求,并将请求提交到一个或者多个服务处理程序的事件设计模式.当客户端请求抵达后,服务处理程序使用多路分配策略,由一个非阻塞的线程来接收所有的请求,然后派发这些请求至相关的工作线程进行处理. 三种版本:Reactor单线程(一个人包揽),Reactor多线程模式(多人分担),主…
1.一级缓存(session缓存 ).二级缓存      意义:提高hibernate查询效率.    缺点:可能会因并发,产生数据不一致.      本质:基于session 的缓存,利用hiberate执行查询的时候,hibernate会首先从session缓存去找,如果存在,则直接返回,如果不存在,则利用orm执行查询  将得到的对象保存至session缓存.      可以使用session.evict(obj);将obj从session缓存移除.      注意:一级缓存,自动开启着的…
关于tomcat部署应用虽然不是一个经常的操作,因为一旦选择了一种部署方式,我们其他的应用就会不经大脑的使用这种既定模式, 如果不使用这种部署方式,但是对于其他的部署方式不是很清楚的话,很容易抓瞎,所以写这篇文章记录. 第一种  : 直接将web应用丢在tomcat的webapp目录中 第二种  : 通过修改tomcat的server.xml文件,添加配置片段来配置项目 第三种  : 通过添加自定义的项目配置文件(xxxx.xml) 第一种 : 直接将web应用丢在tomcat的webapp目录…
摘要: Javabase64编码的三种方式   有如下三种方式: 方式一:commons-codec.jar Java代码  1. String base64String="whuang123"; 2. byte[] result = Base64. Javabase64编码的三种方式 有如下三种方式: 方式一:commons-codec.jar Java代码 1. String base64String="whuang123"; 2. byte[] result…
button的OnClickListener的三种实现方法 onclick事件的定义方法,分为三种,分别为 1.在xml中进行指定方法: 2.在Actitivy中new出一个OnClickListenner(): 3.实现OnClickListener接口三种方式. 代码分别如下: 1. xml指定onclick事件,这种方式比较适用于指定的button,能使java代码相对简化一些: xml文件中: <Button android:text="Button03" android…
第一种:直接将项目放在webapps目录下 材料:项目文件名hello,文件hello.html如图: 访问地址: 注释:hello  项目文件名 hello.html 访问的文件名字 第二种:修改conf/server.xml配置文件 材料:项目文件名hello,文件hello.html如图: 步骤: 1.打开tomcat下conf/server.xml,在<Host> </Host>标签之间输入项目配置信息 <Context docBase="D:\hello&…
使用LR录制HTTPS协议的三种方法 一.最简单的方法:浏览器配置打开浏览器,安装证书,配置完成后直接用http协议录制即可(配置完成的标识就是打开网页,不显示安全提示) 二.LR配置修改操作步骤如下: 1.证书的获取ie选项-内容-证书,找到目标网站的证书选择导出,导出时选择base64的cer格式: 2.证书的准备(若为cer格式可忽略) 常见的证书为:*.pfx格式,该种格式的证书可以通过双击运行安装到IE浏览器上.用户在访问的时候就可以使用到. 但这种证书并不是LoadRunner所使用…
[ActiveMQ添加事务] 添加事务主要注意两点: 1.修改Session配置,启用事务 /** * 3.通过Connection对象创建Session会话(上下文环境对象),用于接收消息. * 参数1:是否启用事务 * 参数2:签收模式,一般设置为自动签收 */ Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE); 2.代码最后提交事务(必须要提交事务,不然在MQ上无法得到发送的…
一.SpringMVC简介 SpringMVC是一种基于Spring实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,使用了MVC架构模式的思想,将web层进行职责解耦,并管理应用所需对象的生命周期,为简化日常开发,提供了很大便利. SpringMVC提供了总开关DispatcherServlet:请求处理映射器(Handler Mapping)和处理适配器(Handler Adapter),视图解析器(View Resolver)进行视图管理:动作处理器Controller接口(包…
SpringMVC绑定参数之类型转换有三种方式:     1. 实体类中加日期格式化注解      @DateTimeFormat(pattern="yyyy-MM-dd hh:MM") private Date creationTime;     2.在Controller类的方法中加入一段代码 /** * 在controller层中加入一段数据绑定代码 * @param webDataBinder */ @InitBinder public void initBinder(WebD…
1.使用-V参数 首先我们想到的肯定就是查看版本号的参数命令,参数为-V(大写字母)或者--version 使用方法: D:\xampp\mysql\bin>mysql -V 或者 D:\xampp\mysql\bin>mysql --version   2.使用--?参数 其实这个有三个类似的参数 --help -I(大写的i) -? 这三个都是查看帮助信息的参数 使用方法: D:\xampp\mysql\bin>mysql -? 或者 D:\xampp\mysql\bin>my…
目前比较流行的是使用SWFUpload控件,这个控件的详细介绍可以参见官网http://demo.swfupload.org/v220/index.htm 在使用这个控件批量上传文件时发现中文文件名都是乱码,在网上查了半天,找了几个办法,特总结如下: 第一种:fileName= new String(fileName.getBytes("UTF-8"),"GBK"); 用这种方式能解决大部分乱码,但如果文件名中有特殊字符和标点符号有时候会转不过来. 第二种:我使用的…
Field 'id' doesn't have a default value问题解决方法 运维的名义关注0人评论3323人阅读2018-01-23 17:37:42   MySQL 5.0 以上版本支持三种sql_mode模式:ANSI.TRADITIONAL和STRICT_TRANS_TABLES. ANSI ANSI模式:宽松模式,对插入数据进行校验,如果不符合定义类型或长度,对数据类型调整或截断保存,报warning警告. TRADITIONAL TRADITIONAL 模式:严格模式,…
一.知识准备 更新镜像版本是在k8s日常使用中非常常见的一种操作,本文主要介绍更新介绍的三种方法 二.环境准备 组件 版本 OS Ubuntu 18.04.1 LTS docker 18.06.0-ce 三.准备镜像 首先准备2个不同版本的镜像,用于测试(已经在阿里云上创建好2个不同版本的nginx镜像) docker pull registry.cn-beijing.aliyuncs.com/mrvolleyball/nginx:v1 docker pull registry.cn-beiji…
web开发的时候有时候会用到JS检测IE的版本,下面是检测Microsoft Internet Explorer版本的三种代码! 方法一: <script type="text/javascript"> var browser=navigator.appName var b_version=navigator.appVersion var version=b_version.split(";"); var trim_Version=version[1].…
flash中有版权声明,不适合商业开发.这是官网地址:http://www.hdfu.net/ 本文参考了http://blog.csdn.net/yafei450225664/article/details/12855915     并且加入了自己的解析,以供之后的参考. 官网提供的demo包,包含了php,jsp,asp,aspx的demo. 1.Demo中,avatar.swf是执行上传的flash文件:default.jpg是默认显示的图片:demo.html是demo,可以直接复制里面…
flex元素水平垂直居中(三种position水平垂直居中和两种新老版本水平垂直居中) (1).position : <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style type="text/css"> * { margin: 0; p…
今天有把此前接触过的三种python实现多版本环境用到的软件pyenv.virtualenv.virtualenvwrapper,了解了一番,现做如下总结: 一.pyenv: 是针对python多版本的管理,通过修改环境变量的方式实现:直接实现python多版本的虚拟环境并灵活切换: 安装依赖git: yum install git 安装pyenv,根据提示设置环境变量: curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer…
https://blog.csdn.net/hj7jay/article/details/51921504 1.使用-V参数 首先我们想到的肯定就是查看版本号的参数命令,参数为-V(大写字母)或者--version 使用方法: D:\xampp\mysql\bin>mysql -V 或者 D:\xampp\mysql\bin>mysql --version 2.使用--?参数 其实这个有三个类似的参数 --help -I(大写的i) -? 这三个都是查看帮助信息的参数 使用方法: D:\xam…
前言 前情提要:Git应用详解第三讲:本地分支的重要操作 git作为一款版本控制工具,其最核心的功能就是版本回退,没有之一.熟悉git版本回退的操作能够让你真真正正地放开手脚去开发,不用小心翼翼,怕一不小心删除了不该删除的文件.本节除了介绍版本回退的内容之外,还会介绍stash的使用. 一.版本回退 在git中永远有后悔药可吃,总是可以回到版本库的某一个时刻,这就叫做版本回退: 如上图所示:当前master分支指针指向D,通过版本回退可以使master指向C.B或A.进行版本回退的命令大体上有三…
目录 Docker MySql 查看版本的三种方法 1.mysql -V命令查看版本 2.status命令查看版本 3.version命令查看版本 Docker MySql 查看版本的三种方法 1.mysql -V命令查看版本 # 执行命令 docker exec -it mysql8 mysql -V * 响应结果 mysql Ver 8.0.27 for Linux on aarch64 (MySQL Community Server - GPL) 2.status命令查看版本 # 登录容器…
以下属于不明来源资料: 引入 在程序运行过程中使用对象的方式对数据库进行操作,这必然会产生一系列的持久化类的实例对象.这些对象可能是刚刚创建并准备存储的,也可能是从数据库中查询的,为了区分这些对象,根据对象和当前会话的关联状态,我们可以把对象分为三种: 瞬时对象:对象刚刚建立.该对象在数据库中没有记录,也不在ISession缓存中.如果该对象是自动生成主键,则该对象的对象标识符为空. 持久化对象:对象已经通过NHibernate进行了持久化,数据库中已经存在对应的记录.如果该对象是自动生成主键,…