sjtu_chenchen
硕士毕业于上海交通大学,先后就职于各类大厂,在java、devops、大数据实时计算方向有深入的研究
展开
-
zuul RequestContext filter原理
zuul是可以认为是一种API-Gateway。zuul的核心是一系列的filters, 其作用可以类比Servlet框架的Filter,或者AOP。其原理就是在zuul把Request route到源web-service的时候,处理一些逻辑,比如Authentication,Load Shedding等 ==HttpRequest -> ‘pre’ filter -> ‘ro...原创 2018-08-02 09:49:05 · 5977 阅读 · 0 评论 -
bootatrap3下兼容ie8解决方法
bootstrap前端框架美观,而ie8是不兼容的。 兼容解决方案如下(以下改动不影响其它浏览器): 1.加上<!DOCTYPE html>2.加上<meta http-equiv="X-UA-Compatible" content="IE=edge,Chrome=1" /><meta http-equiv="X-UA-Compatible" content="IE=8" />3.加上<!--原创 2016-07-29 11:50:32 · 1224 阅读 · 0 评论 -
易宝支付开发实现
支付流程通过http请求方式向易宝支付网关发起一个支付请求,简单地说就是向https://www.yeepay.com/app-merchant-proxy/node发起请求,请求可以是get或post方式提交,页面应采用GBK/GB2312编码。下面使用表单以post方式向易宝支付网关发起一个支付请求:<form name="yeepay" action="https://www.yeepay.原创 2016-06-12 18:54:08 · 5657 阅读 · 1 评论 -
JedisConnectionException: java.net.ConnectException: Connection refused: connect
JedisConnectionException: java.net.ConnectException: Connection refused: connect 解决如下:Redis的配置文件redis.conf里bind 127.0.0.1 注释掉。 band localhost 只能本机访问,局域网内计算机不能访问Ubuntu 14.04下安装和配置redis数据库 1) 以root权原创 2016-05-03 22:00:51 · 9416 阅读 · 0 评论 -
Webservice理解
原文:http://blog.csdn.net/zhuizhuziwo/article/details/8153327WebServices简介 先给出一个概念 SOA ,即Service Oriented Architecture ,中文一般理解为面向服务的架构, 既然说是一种架构的话,所以一般认为 SOA 是包含了运行环境,编程模型, 架构风格和相关方法论等在内的一整套新的分布式软件系统构转载 2016-04-27 10:46:15 · 623 阅读 · 0 评论 -
搭建nginx与安装vsftpd提示530 Login incorrect
最近要搭建nginx服务器和ftp服务nginx服务器 在线安装 $sudo apt-get install nginx安装nginx依赖包运行命令: sudo apt-get install libssl-dev sudo apt-get install libpcre3 libpcre3-dev启动Nginx $sudo /etc/init.d/nginx startubuntu 14.原创 2016-04-25 16:06:46 · 1296 阅读 · 0 评论 -
ajax缓存与浏览器差异
在编写ajax时遇到问题,部署到服务器上和本地是一样的webapps,但运行服务器上代码出错,是缓存原因。 在大神教导下,原因总结如下:编写ajax时尽量使用jquery ajax, 它帮程序员屏蔽了浏览器的差异性IE浏览器空为”“,谷歌浏览器空为null function cellphone_show() { var cellphone = docume原创 2016-04-26 13:57:57 · 951 阅读 · 1 评论 -
Spring 简单IOC实现
PersonDao.javapackage cn.cc.pack;public interface PersonDao { public void add();}PersonDaoBean.javapackage cn.cc.pack;public class PersonDaoBean implements PersonDao { public void add(){原创 2016-04-11 22:21:50 · 401 阅读 · 0 评论 -
Leetcode || Longest Valid Parentheses
Given a string containing just the characters ‘(’ and ‘)’, find the length of the longest valid (well-formed) parentheses substring.For “(()”, the longest valid parentheses substring is “()”, which has原创 2016-02-01 14:13:53 · 444 阅读 · 0 评论 -
mybatis -- helloworld
加入jar包 加入mybatis核心包、依赖包、数据驱动包。 log4j.properties 在classpath下创建log4j.properties如下:# Global logging configurationlog4j.rootLogger=DEBUG, stdout# Console output...log4j.appender.stdout=org.apache.log原创 2016-01-12 10:11:08 · 383 阅读 · 0 评论 -
BeanCreationException及java.lang.IllegalArgumentException: Page directive: invalid value for import
错误1Error creating bean with name ‘mySessionFactory’ defined in class path resource [applicationContext.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiatio原创 2016-01-27 19:12:08 · 541 阅读 · 0 评论 -
javaWeb乱码解析
jsp从编写到浏览器显示经历四个阶段 1,编写完按下ctrl+s,jsp文件将保存到硬盘,在windows中文系统中将以GB2312保存。 2,jsp引擎以ISO8859-1解析为servlet 3,javac以utf-8编译 4,浏览器以GB2312展示。 因为ISO8859的存在,只要jsp有中文,必定乱码。JSP页面中加入pageEncoding和contentType两种属性:原创 2017-05-11 20:09:17 · 338 阅读 · 0 评论 -
angularjs请求头中x-requested-with XHR
XSS跨站脚本攻击见:http://blog.csdn.net/he90227/article/details/51491997 为增加安全性,服务器为cookie设置HttpOnly属性。对于Tomcat 7.0.x以上的版本,可以在应用的web.xml文件中增加如下配置:<session-config> <cookie-config> <http-only>true</原创 2017-05-04 19:04:15 · 1532 阅读 · 0 评论 -
servlet过滤器实现跨域Access-Control-Allow-Origin
1.定义过滤器接口Filter的实现类,实现类中修改respone的头信息,把 “Access-Control-Allow-Origin” 的域名修改问请求方的域名,如下:package filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; im原创 2017-05-16 16:25:50 · 12465 阅读 · 0 评论 -
springboot 启动原理
SpringApplication.run(GunsApplication.class, args);分为两步1. 创建SpringApplication对象initialize(sources);private void initialize(Object[] sources) { //保存主配置类 if (sources != null && sour...原创 2018-07-05 18:51:00 · 341 阅读 · 0 评论 -
spring IOC容器启动原理
Spring容器的refresh()【创建刷新】;1、prepareRefresh()刷新前的预处理; 1)、initPropertySources()初始化一些属性设置;子类自定义个性化的属性设置方法; 2)、getEnvironment().validateRequiredProperties();检验属性的合法等 3)、earlyApplicationEvents=...原创 2018-06-10 22:37:35 · 646 阅读 · 0 评论 -
spring 事件监听发布原理
【事件派发器】 * 1)、容器启动:refresh(); * 2)、initApplicationEventMulticaster();初始化ApplicationEventMulticaster; * 1)、先去容器中找有没有id=“applicationEventMulticaster”的组件; * 2)、如果没有this.app...原创 2018-06-10 20:49:36 · 1054 阅读 · 0 评论 -
spring 事务 @EnableTransactionManagement原理
@EnableXXX原理:注解上有个XXXRegistrar,或通过XXXSelector引入XXXRegistrar,XXXRegistrar实现了 ImportBeanDefinitionRegistrar的registerBeanDefinitions方法,给容器注册XXXCreator。这个Creator实现了后置处理器, 后置处理器在对象创建以后,包装对象,返回一个代理对象,代理对象...原创 2018-06-10 16:41:42 · 13994 阅读 · 1 评论 -
spring AOP @EnableAspectJAutoProxy原理
@EnableAspectJAutoProxy原理原创 2018-06-10 15:23:48 · 1347 阅读 · 0 评论 -
Druid连接池的testQuery/validationQuery
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <!-- 基本属性 url、user、password --> <property name="url" value="${jdb原创 2017-08-27 10:42:38 · 17428 阅读 · 0 评论 -
JMS与MDB实例
JMS和消息驱动Bean(MDB) 1.Java消息服务(JMS)编程: 应用程序A发送一条消息到消息服务器的某个目的地,然后消息服务器把消息转发给应用程序B,由于JMS允许消息发送方和接收方不同时在线,没有代码关联,从而实现应用程序的解耦,JMS的过程如下: 应用程序A——>消息——>JMS消息服务器——>消息——>应用程序B 2.JMS消息的传递模型: JMS支持两种消息传递模型:点对原创 2017-05-18 18:42:52 · 805 阅读 · 0 评论 -
Java RMI实例
RMI:远程方法调用(Remote Method Invocation)。能够让在某个Java虚拟机上的对象像调用本地对象一样调用另一个java 虚拟机中的对象上的方法。下面是实例: 首先为服务建立一个Model层,注意因为此对象需要现实进行远程传输,所以必须继承Serializablepackage rmi.model;import java.io.Serializable;//注意对象必须继承原创 2017-05-17 18:51:15 · 362 阅读 · 0 评论 -
jsf入门实例
百科上定义:引入了基于组件和事件驱动的开发模式,使开发人员可以使用类似于处理传统界面的方式来开发Web应用程序。提供了行为与表达的清晰分离。 不用特别的脚本语言或者标记语言来连接UI组件和Web层。JSF技术API被直接分层在Servlet API的顶端。 技术为管理组件状态提供一个丰富的体系机构、处理组件数据、确认用户输入和操作事件。如果之前使用过Struts或者SpringMVC那么就应该很清楚原创 2017-05-17 16:27:34 · 424 阅读 · 0 评论 -
CAS框架单点登录原理解析
单点登录:Single Sign On,简称SSO,SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。CAS框架:CAS(Central Authentication Service)是实现SSO单点登录的框架。CSA中包括三个:A系统,B系统,CAS认证中心 用户首次登录时流程如下: 1)、用户浏览器访问系统A需登录受限资源,此时进行登录检查,发现未登录,然后进行原创 2017-05-16 19:35:33 · 8970 阅读 · 2 评论 -
Spring AOP动态代理
由jdk实现动态代理类,在方法执行前判断是否有权限执行。注:为贴代码方便,所有类在一个package.User.javapackage pack;public class User { String name = null; String password = null; User(String name, String password) { this.nam原创 2016-01-09 11:15:56 · 376 阅读 · 0 评论 -
spring mvc --@
ItemList1.javapackage cc.sjtu.controller;import java.util.ArrayList;import java.util.List;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMappin原创 2016-01-22 16:32:23 · 419 阅读 · 0 评论 -
spring mvc --xml
springmvc框架 第一步:发起请求到前端控制器(DispatcherServlet) 第二步:前端控制器请求HandlerMapping查找 Handler 可以根据xml配置、注解进行查找 第三步:处理器映射器HandlerMapping向前端控制器返回Handler 第四步:前端控制器调用处理器适配器去执行Handler 第五步:处理器适配器去执行Handler 第六原创 2016-01-22 15:38:36 · 868 阅读 · 1 评论 -
Tomcat
Tomcat的目录结构1) bin:该目录下存放的是二进制可执行文件,如果是安装版,那么这个目录下会有两个exe文件:tomcat6.exe、tomcat6w.exe,前者是在控制台下启动Tomcat,后者是弹出UGI窗口启动Tomcat;如果是解压版,那么会有startup.bat和shutdown.bat文件,startup.bat用来启动Tomcat,但需要先配置JAVA_HOME环境变量才能原创 2015-10-09 10:27:28 · 374 阅读 · 0 评论 -
request和response
请求响应流程图response对象1. response response是响应对象,用来在Servlet的service()方法中向客户端响应数据。 response的功能如下: * 设置响应头 * 发送状态码 * 设置响应正文 * 重定向2. response响应正文 * ServletOutputStream getOutputStream():用来向客户端响应字节原创 2015-10-09 11:10:24 · 456 阅读 · 0 评论 -
Struts-国际化
准备资源文件,资源文件的命名格式如下: baseName_language_country.properties baseName_language.properties baseName.properties 其中baseName是资源文件的基本名,我们可以自定义,但language和country必须是java支持的语言和国家。如: 中国大陆: baseName_zh_CN.prope原创 2015-10-18 17:03:18 · 412 阅读 · 0 评论 -
Struts-自定义拦截器
//要自定义拦截器需要实现com.opensymphony.xwork2.interceptor.Interceptor接口:public class PermissionInterceptor implements Interceptor { public void destroy() { } public void init() { } public String原创 2015-10-18 16:37:01 · 413 阅读 · 0 评论 -
Struts-文件上传
文件上传第一步:在WEB-INF/lib下加入commons-fileupload-1.2.1.jar、commons-io-1.3.2.jar。这两个文件可以从http://commons.apache.org/下载。第二步:把form表的enctype设置为:“multipart/form-data“,如下<form enctype="multipart/form-data" action="$原创 2015-10-18 16:30:33 · 352 阅读 · 0 评论 -
struts-helloworld
struts.xml <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"><stru原创 2015-10-16 23:23:14 · 439 阅读 · 0 评论 -
Struts-输入校验
在struts2中,我们可以实现对action的所有方法进行校验或者对action的指定方法进行校验。对于输入校验struts2提供了两种实现方法: 1. 采用手工编写代码实现。 2. 基于XML配置方式实现。手工编写代码实现对action中所有方法输入校验通过重写validate() 方法实现, validate()方法会校验action中所有与execute方法签名相同的方法。当某个数据校验原创 2015-10-18 16:49:56 · 484 阅读 · 0 评论 -
Struts自定义类型转换器
自定义类型转换器java.util.Date类型的属性可以接收格式为2009-07-20的请求参数值。但如果我们需要接收格式为20091221的请求参数,我们必须定义类型转换器,否则struts2无法自动完成类型转换。import java.util.Date;public class HelloWorldAction { private Date createtime; publi原创 2015-10-18 16:15:03 · 468 阅读 · 0 评论 -
Struts-Action
Action名称的搜索顺序1.获得请求路径的URI,例如url是:http://server/struts2/path1/path2/path3/test.action2.首先寻找namespace为/path1/path2/path3的package,如果不存在这个package则执行步骤3;如果存在这个package,则在这个package中寻找名字为test的action,当在该package原创 2015-10-17 09:09:04 · 428 阅读 · 0 评论 -
Struts2的处理流程
StrutsPrepareAndExecuteFilter是Struts 2框架的核心控制器,它负责拦截由<url-pattern>/*</url-pattern>指定的所有用户请求,当用户请求到达时,该Filter会过滤用户的请求。默认情况下,如果用户请求的路径不带后缀或者后缀以.action结尾,这时请求将被转入Struts 2框架处理,否则Struts 2框架将略过该请求的处理。当请求转入St原创 2015-10-17 09:25:03 · 490 阅读 · 0 评论 -
HTTP协议请求与响应
GET请求HttpWatch截下代码:GET /hello/index.jsp HTTP/1.1 Host: localhost User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0 Accept: text/html,application/xhtml+xml,application/xml;原创 2015-10-09 10:43:13 · 1531 阅读 · 0 评论 -
Servlet
1. 什么是Servlet * Servlet是JavaWeb三大组件之一(Servlet、Filter、Listener) * Servlet是用来处理客户端请求的动态资源 * Servlet的任务有: > 获取请求数据 > 处理请求 > 完成响应 * Servlet接口方法: > void init(ServletConfig) > voi原创 2015-10-09 10:53:35 · 415 阅读 · 0 评论 -
请求响应编码
请求编码 * 客户端发送的数据编码:由浏览器来决定: 1). 如果是在地址栏中直接给出url,那么一般都是默认为GBK,但这个可能不太大。 2). 如果是通过页面上的表单或超链接发出请求,那么由当前页面的编码来决定发送的参数的编码。 * 无论浏览器发送过来的是什么编码的数据,Tomcat都默认使用ISO-8859-1来解码 1). POST:可以使用request.setCharacte原创 2015-10-09 11:17:54 · 2640 阅读 · 0 评论