- 浏览: 187607 次
- 性别:
- 来自: 杭州
最新评论
-
qja:
这个classpathContainersLast 是什么意思 ...
maven-eclipse-plugin 使用示例 -
litianqwe:
楼主 我是看着你的视频学习gwt的,觉得它好生硬,我有个问题想 ...
GWT开发游戏尝试--植物大战僵尸 -
litianqwe:
楼主 我现在有个问题 那我现在用GXT如果想对某一行增加一个双 ...
2.Listener 监听器系统 -
lxzh504:
简单明了,写的非常好。
scalable io in java学习 -
ocaicai:
很有研究能力,思维清晰!
GWT中对不同浏览器兼容性实现原理
文章列表
完整文档参见:https://github.com/xuhengfei/slovef-sdk
slovef-sdk
==========
Android客户端与后台服务通过http协议进行交互时,使用slovef-sdk可以使得编程更加简单
客户端与服务端,一个http请求,我们就认为是一个API
* 发起http请求
* 实现http ...
单线程版本
reactor就是一个分发器
当收到client的accept请求时,转给acceptor来处理
当收到client socket的read请求时,转给handler处理
整个处理过程因为是单线程,都是阻塞的。
多线程版本
与单线程版本不同之处是
在handler中的read之后,write之前的业务处理部分
采用线程池来处理业务代码
整个设计不会因为业务部分太耗时而导致整个系统性能过低
多reactor版本
mainReactor单独用来处理client的连接请求,交给acceptor处理
acceptor接受了client连接后,交给subReactor来监听
...
打包目录:
tar -cvf /tmp/etc.tar /etc <==仅打包,不压缩!
tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以gzip压缩
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<version>2.3.0-1</version>
<dependencies>
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-user</artifa ...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.8</version>
<configuration>
<classpathContainersLast>true</classpathContainersLast>
<classpathContainers>
...
学习了一下JAVA的日志系统slf4j ,这是日志的一个接口。
通过这个接口,我们可以方便的切换日志的实现框架,比如log4j,commons-logging,logback,jdk-log 等等。
slf4j的API在 slf4j-api.jar中,核心接口与类是:
org.slf4j.Logger
org.slf4j.LoggerFactory
slf4j的实际调用日志在运行时才会动态绑定,基本原理是查找classpath下面的jar包,如果存在slf4j的实现框架,就采用该实现框架。参考下图:
下面分析一下slf4j如何实现运行时的动态绑定日志实现框架
以下代码是or ...
最近学习了javassist的使用方法。
javassist是一个字节码类库,可以用他来动态生成类,动态修改类等等。
下面是如果用javassist来动态创建一个类的demol
我们需要创建的目标类,如下:
public class JavassistClass{
private String name="default";
public JavassistClass(){
name="me";
}
public String getName() {
return name;
}
...
电信无耻拦截网页,弹出广告,记下url地址(实际为weibo.com),待后续有空研究
http://220.191.158.69:10003/a/s?f=adstyle_msn.html&adid=200935&tcca=MDU3MTAwNDg3NTMw&urip=2062164182&orlu=aHR0cDovL3dlaWJvLmNvbS8=&spid=296508179&area=76&ts=1327645715&aorlu=aHR0cDovLzIyMC4xOTEuMTU4LjY5OjEwMDAzLzIwMDkzNS8=&a ...
sudo yum install -y ppp
pptpd下载地址:
http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.fc16.i686.rpm
默认安全设置不允许root使用谷歌浏览器,解决方法:
用16进制编辑器编辑其可执行文件:
0x01:
root@bt5:~# hexedit /usr/lib/chromium-browser/chromium-browser
Tab键切换至右侧ASCII模式,Crtl+S打开字符串搜索,查找geteuid,将其修改为getppid即可。
(若提示只读文件无法更改,则chmod +x之,若还不行,另存之后覆盖源文件)
0x02:
root@bt5:~# chmod 4755 /usr/lib/chromium-browser/chromiu ...
GWT项目默认有内置jetty可以启动,如果是小项目,非常方便。
但是如果项目比较大,或者比较复杂,相应的项目启动环境有要求,则内置jetty不好使了。
我们需要在外部启动server,用GWT远程连接这个server来进行调试。
这里的方法全部是基于GWT的Eclipse插件的,所以需要先安装插件。
打开DEBUG管理页面:
选择WebApplication后再点击新建,来新建一个debug
下面配置右边的信息
因为我们不需要内置的server,所以反选EmbeddedServer
在Main标签手动输入com.google.gwt.dev.DevMode
在GWT标签手写你要 ...
原文:http://xuhengfei.com/notebook/2011/01/java-serialize/
当我们需要序列化一个JAVA对象时需要实现Serializable接口。这个接口仅仅是一个tag接口,并不需要你真正实现一些方法,因为这个接口没有方法。他作用仅仅是告诉默认JAVA序列化工具,这个对象是可以序列化的。
1.serialVersionUID的作用
当我们的类实现了Serializable接口后,会有一个警告,告诉你需要生成一个serialVersionUID属性。这个serialVersionUID是做什么用的呢?其实这是JAVA序列化的版本控制功能 ...
前一篇介绍了RPC大体的流程,核心方法是RemoteServiceServlet类中的processPost方法
public final void processPost(HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException,
SerializationException {
// Read the request fully.
//
String requestPayload = readCont ...
GWT中前后台交互有多种方式,包括JSON,XML,RPC
其中RPC是GWT提供给我们的功能,他能够让我们直接在前后台传递对象,而无效考虑中间的传递过程。这样的好处是大大提高了我们的开发效率。
GWT是如果后台是如果处理对象,使之序列化,网络传输,反序列化的呢。
下图是RPC过程中的几个核心类。
创建一个RPC,我们需要创建一个Servlet继承RemoteServiceServlet
当页面调用一个RPC时便进入了这个Servlet的doPost方法,此方法在AbstraceRemoteServiceServlet中
public final void doPost(HttpSe ...
最近做了一个网页版的植物大战僵尸,地址;http://web977712.host66.chinajsp.net/PVZ/
附上截图一张:
很早前就打算做这个网页版的游戏,练练手。当开始动工的时候,发现没有素材,主要是图片资源和动画资源,很难找齐。很快就放 ...