iframe问题总结
iframe内部内容被添加了<pre>标签今天在解决iframe上传文件的跨域问题时,遇到一个奇怪的问题,后台返回的json数据,放到iframe中时,莫名加上了<pre>标签,通过查询,最后在stackoverflow上找到这么一段话
Assuming that the user POST the request in a form setting the target to an iframe. The JSON response will be sent back to the user on his/her iframe with content type set as “text/html”. It is set as “text/html” instead of “application/json” because I want to avoid having a “pre” tag injected by the browser around the JSON response. Anyway, how d ...
websocket使用总结
背景公司门户系统有一个显示待办消息的需求,要求其他系统产生的待办消息要及时的在门户系统中展示,网上查找了解到有ajax轮询和websocket两种主要方式,为了及时性,最终选择了websocket方式。
整体思路一图胜千言
代码
前端
<!-- websocket-->
<script type="text/javascript">
var msgTypes = {
1:'db',
2:'dy',
3:'yj',
4:'gwdb'
}
userId = '<ww:property value="#session.sUser.userId" />';
//定义websocket
var ws = new WebSocket("ws://localhost:8888/msg/ws");
//维持心跳
var heartCheck = ...
kindeditor跨域问题解决
问题背景因为在A系统中需要嵌入B系统的页面,两个系统有相同的父域名,所以使用了iframe+domain的方式解决跨域问题,在A系统的页面中加入了document.domain = 'exame.com.cn';;但是在嵌入kindeditor富文本编辑器后,上传图片出现跨域问题。
解决思路通过分析kindeditor的图片上传代码,如下
<div class="tab2" style=""><iframe name="kindeditor_upload_iframe_1567676701755" style="display:none;"></iframe>
<form class="ke-upload-area ke-form" method="post" enctype="multipart/form-data"
target="kindeditor_upload_iframe_1567676701755" action="/portal/kindeditor/uploadImg?dir=imag ...
tomcat源码4-Pipeline-Value管道
每个容器(Engine/Host/Context/Wrap)包含一个pipeline,每个pipeline包含一个valve集合,位于前面的valve做完业务处理后将调用后面的valve做业务处理,而容器的缺省valve位于集合的最后一个位置,负责调用下层容器的pipeline的第一个valve做请求处理。调用会从Engine的第一个valve调用开始,一直执行到调用Wrapper的缺省valve:StandardWrapperValve,而filter与servlet的处理就是在这个valve中进行的 。Engine的第一个valve是由Adapter调用的,在connector章节中也看到CoyoteAdapter在处理完request以后会执行connector.getContainer().getPipeline().getFirst().invoke(request, response)。
<<ContainerBase>>
/**
* The Pipeline object with which this Conta ...
tomcat源码3-container
Container 的4 个子容器
Container 的子容器Engine 、Host 、Context 、Wrapper 是逐层包含的关系,其中Engine是最顶层,每个service 最多只能有一个Engine, Engine 里面可以有多个Host ,每个Host 下可以有多个Context ,每个Context 下可以有多个Wrapper,它们的装配关系如下图所示。
Engine :引擎,用来管理多个站点, 一个Service 最多只能有一个Engine。
Host :代表一个站点,也可以叫虚拟主机,通过配置Host 就可以添加站点。
Context :代表一个应用程序,对应着平时开发的一套程序,或者一个WEB-INF 目录以及下面的web.xml 文件。
Wrapper :每个Wrapper 封装着一个servlet。
Context 和Host 的区别是Context 表示一个应用,比如,默认配置下webapps 下的每个目录都是一个应用,其中ROOT目录中存放着主应用,其他目录存放着别的子应用,而整个webapps 是一个站点。假如ww ...
tomcat源码2
Tomcat拾遗–BootStrap类的静态代码块和反射调用Catalina的意义是什么首先我们需要知道一个潜规则:即如果我们在A类中调用B类,如果B类没有被classloader加载或者就算加载了 但是该classloader和A类的classloader属于平行的,即我们在A的classloader中找不到B类的class,那么A会使用自己的classloader去加载B。
反射调用Catalina的意义因为Bootstrap这个类在Tomcat打包发布时是放在bin\bootstrap.jar中, 而Catalina类是放在lib\catalina.jar中,两个jar是用不同的ClassLoader加载的, 所以不能在Bootstrap类中直接引用Catalina类,只能通过反射。 这也意味着 后续我们在tomcat的Catalina类里面启动的类默认都是使用catalinaLoader(除了我们的context使用webappclassloader去加载的),进而tomcat使用的类只能被tomcat自己使用,而不会被其他应用使用
组件图
多个 Connector 和一个 ...
solr配置总结
环境solr版本:4.10.4
tomcat7
jdk8
solr文件内容介绍
bin:solr的运行脚本
contrib:solr的一些扩展jar包,用于增强solr的功能。
dist:该目录包含build过程中产生的war和jar文件,以及相关的依赖文件。
docs:solr的API文档
example:solr工程的例子目录:
l example/solr:
该目录是一个标准的SolrHome,它包含一个默认的SolrCore
l example/multicore:
该目录包含了在Solr的multicore中设置的多个Core目录。
l example/webapps:
该目录中包括一个solr.war,该war可作为solr的运行实例工程。
licenses:solr相关的一些许可信息
SolrCore配置
SolrHome是Solr服务运行的主目录,该目录中包括了多个SolrCore目录。SolrCore目录中包含了运行Solr实例所有的配置文件和数据文件,Solr实例就是S ...
vue学习
mvvm
Model 模型,数据对象(data)
view 视图模板页面
viewModel 视图模型(vue的实例)
表达式和指令
“Mustache”语法 (双大括号) 的文本插值
<span>Message: {{ msg }}</span>
Mustache 语法不能作用在 HTML 特性上,遇到这种情况应该使用 v-bind 指令:
<div v-bind:id="dynamicId"></div>
<div :id="dynamicId"></div> <!--简写形式-->
<!--在布尔特性的情况下,它们的存在即暗示为true-->
<button v-bind:disabled="isButtonDisabled">Button</button>
使用js表达式
{{ number + 1 }}
{{ ok ? 'YES' : 'NO' }}
{{ ...
nginx笔记
安装brew install nginx
#linux安装
yum install nginx
基本参数使用安装路径rpm -ql nginx #查看安装路径
nginx -t -c nginx.conf #检查配置文件
nginx -s reload -c nginx.conf #使配置文件生效
/etc/logrotate.d/nginx nginx日志轮转,用于logrotate服务的日志切割
/etc/nginx
/etc/nginx/nginx.conf
/etc/nginx/conf.d
/etc/nginx/conf.d/default.conf nginx 配置文件
/etc/nginx/fastcgi_params
/etc/nginx/scgi_params
/etc/nginx/uwsgi_params cgi配置
/etc/nginx/koi-utf
/etc/nginx/koi-win
/etc/nginx/win-utf 编码转换映射转化文件
/etc/nginx/mime.types 设置http协议的Content- ...
网络知识笔记
网络层的四个协议
ARP
IP
0-126 A类地址
128-191 B类地址
192-223 C类地址
127.0.0.1 本地回环地址
保留的私网地址
10.0.0.0
172.16.0.0–172.31.0.0
192.168.0.0–192.168.255.0
ICMP
IGMP
docker配置
docker开机启动systemctl enable docker.service
docker-compose开机启动容器vim /etc/rc.d/rc.local
/usr/local/bin/docker-compose -f /www/docker/trace_fecshop/docker-compose.yml up -d
#/www/docker/trace_fecshop 是你的docker-compose的目录
docker-compose-volumes说明#docker-compose里两种设置方式都是可以持久化的
#第一种情况路径直接挂载到本地,比较直观,但需要管理本地的路径,而第二种使用卷标的方式,比较简洁,但你不知道#数据存在本地什么位置,下面说明如何查看docker的卷标
#1.
ghost:
image: ghost
volumes:
- ./ghost/config.js:/var/lib/ghost/config.js #yml文件所在路径
#2.卷标
services:
mysql:
image: ...