X.d 笔记

小Web,大世界

0%

IE11正式版终于来了,试用了几天,体验许久之后,觉得超出预想太多,对IE有了相当大的改观。

一直用坚守 Google 阵营,当几年前 Firefox 的页面经常出现几分钟的圆圈再弹个没响应的、点图标要等半分钟窗口才出来时,Chrome 的出现貌似救我于水火之中。

虽然感觉 Google Chrome 的开发者调试公具还是没有 Firebug用起来爽,不过给我轻快的映像已经弥补了这些不足,再说了,想要调试时再开个 Firefox 也不是不可,在那时,心中已定:IE打三线非上上可的时候才打开IE,firefox为由一线变为二线,Chrome突入一线浏览器!

好歹经过多年,Firefox 受到 Chrome 冲击就干上了版本大战,每过几天就看到有新的版本,具体说来也不知道每个版本是优化了哪些,只知道搞了N个版本后,chrome新加了一些不常用的功能,换了个内核(28换成blink)、插件机制更新过N次,但速度已经大不如前,特别是对装了主题,或是书签多了,每次感觉都很慢,Firefox页面好看了很多, 而且也快了很多。不过此时IE10也已经不差了,而且Google Chrome已经使用成习惯,于是二线就变为IE10与FIREFOX并居。

IE11终于出了正式版了,毫不犹豫的把IE10升了,以下是体验两天的简单说明:

阅读全文 »

在本机开发 Java Web 的时候,总是有一个 project 带在名称后面。比如 http://localhost:8080/myporject ,如果生产环境没有这一串的项目名,还要想办法省掉。

最好的方法是生产环境怎么搞,本地就怎么搞。一般有几种方法

  1. 修改 Tomcat里面的配置文件 servrer.xml
  2. 使用 Apache的 rewrite
  3. 使用 Apache 的 proxy_http/proxy_ajp/jk 等

方法一:修改Tomcat里面的配置文件servrer.xml

这个方法最简单了,如果你的生产环境就是一个Tomcat,又看不到项目名字,那应该就是修改了path。

在本地如果你用的是Eclipse来管理Tomcat的话,去Server文件夹找到对应的tomcatconf/server.xml文件,编辑就行了。

阅读全文 »

HTML5的navigator对象有个onLine属性,可以简单判断当前浏览器是在线还是离线状态。挺有意思的,如果设置了监听事件,当你网线被拨掉时就会调用。

有些系统支持一个连接网络判定,还比较有意思,支持查看当前网络是2G还是3G。虽然说明上写的支持的系统有以下几个,但在我的android手机和ipad上都试过不行,是极少机型么?

  • iOS
  • Android
  • BlackBerry WebWorks
  • Windows Phone 7

简单的写了个DEMO,存为HTML就可以运行了,可以拿去试试

阅读全文 »

技术博客写久了,闲来无赖也写下心情,2013出了不了游戏,个人喜欢RPG,玩了碧轨古剑2仙剑5前轩辕剑6雨血3做为一个爱好者也当然玩了几个,就来小评一下,不喜勿喷…

技术博客写久了,闲来无赖也写下心情,2013出了不了游戏,做为一个爱好者也当然玩了几个,就来小评一下。游戏只是喜欢玩没有狂热,所以基本都只是买的数字版,而且都是淘宝用较低的价钱买的激活码。评价均是个人玩后的体验,不喜勿喷。

碧之轨迹

如果说有买豪华版的冲动,那就只有轨迹系列了,无奈的是这么好的游戏要等发布两年才有中文版本,而且续作“闪”已经确定没有希望了,好在有粉丝们录制了1视频正在连载,虽然玩不到,也可过个看瘾。轨迹是本人唯一能玩三周目的游戏。
评价:5星
好评:虽然发展到碧时,游戏的技术引擎,图像等已经远不如其它游戏了,而且和中文游戏比来配音量也较少(虽然确实比前做多了不少),但极高品质的音乐,有趣搞笑的任务,策略性的回合制,振奋人心的剧情,特色的技能魔法配合等,足够弥补这些不足,而且本人还觉得现在的游戏还没这种好玩呢,过份追求3D特效、光阴、锯齿等这些效果不如去玩电视游戏大作吧,老拿个PC来讲究,有多少意思呢。总之轨迹系列没一部让人失望的,除了3RD,这个不算正史。
差评:虽然不喜欢3RD,但是3RD的最优点就是人多,16个人,虽然碧比零多了两个主,但感觉都是人柱力有没有,感觉是克洲太小也没什么英雄了么。玩轨迹时,不知为什么,感觉特别喜欢打人形BOOS,一来战场用使用量小,二来又有牛B剧情 ,三来不知为什么打人就是有感觉,像SC时BOOS都是寻么一群人1,零碧就少了,虽然还是有,但还是机械魔兽多点。当然,这不是差评,只是个人墨迹一下而已。

阅读全文 »

Servlet3.0貌似已经发布很久了,由于各种原因老是不能在项目中有所用武之地。所以只有自己先研究一下。

Servlet3.0主要特性 。

  1. 热插拨,注解,编程式插入 Servlet, Filter, Listener 等
  2. 支持异步,比较重要的特性(有点像 多线程 + Servlet的组合,个人感觉使用2.4的 Servlet + Thread 也可可以硬着头皮实现)
  3. 自定义 HTTP,自定方法机制等,高端用户可以去了解,发竟这并不是一个非标准的东西。
  4. 自定义权限管理。可以使用自己的应用创一个 Tomcat 页面上的 Manager, Host-manager 出来,也是高端用户用的吧。
  5. HttpServletRequest 对文件上传文件的支持.
  6. 个人关注的一个小特性,Cookie终于支持httpOnly了,如果是在大公司做项目,肯定会有安全部门介意这个。(每次的安全检查都会让人头痛)
  7. Websocket,当然这个不算Servlet3.0特性,

Servlet3.1主要特性 :非阻塞IO,暂时还没有研究过,不过看起来好像是以异步为基础的,听说在某些场景上性能会好很多。

阅读全文 »

响应式这个概念目前很火,是目前智能手机、平板普遍后的一个概念。由于智能手机,平板都对 html 支持相当良好,老套的 wml,wap 等编码被淘汰是必然之势,HTML终迎统一!

随之问题来了,手机即使支持 HTML 但屏幕太小,初期的手机一般就 320480,480800 等,发展到现在虽然都1000以上了,但屏幕才 4-5 寸,只能说 DPI 很高,内容还是放不了多少。

响应式布局就是开发一个页面,用户不管在什么设置上打开都能看到满意的效果。不管是手机还是电脑什么的,都能适配。

智能手机一般都支持 HTML5 了,响应式布局是利用 CSS3 的媒体查询特性,先看看 CSS3 对媒体查询的特性、就知道大体原理了:

媒体特性 取值 必须 说明
width length yes 定义输出设备中的页面可见区域宽度
height length yes 定义输出设备中的页面可见区域高度
device-width length yes 定义输出设备的屏幕可见宽度
device-height length yes 定义输出设备的屏幕可见高度
orientation portrait/landscape no 定义’height’是否大于或等于’width’。值portrait代表是,landscape代表否
aspect-ratio ratio yes 定义’width’与’height’的比率
device-aspect-ratio ratio yes 定义’device-width’与’device-height’的比率。如常见的显示器比率:4/3,   16/9, 16/10
color integer yes 定义每一组输出设备的彩色原件个数。如果不是彩色设备,则值等于0
color-index integer yes 定义在输出设备的彩色查询表中的条目数。如果没有使用彩色查询表,则值等于0
monochrome integer yes 定义在一个单色框架缓冲区中每像素包含的单色原件个数。如果不是单色设备,则值等于0
resolution resolution yes 定义设备的分辨率。如:96dpi,   300dpi, 118dpcm
scan progressive/interlace no 定义电视类设备的扫描工序
阅读全文 »

通常使用一些 http 的客户端工具包,如 apache 等,无法访问 https 的链接(使用 HTTPS 专用的Client ),主要是因为底层实现本身就是两套通信。

而且 https 一般需要有证书信任才行,实际上这个是客户端的限制,由于项目中需要同时调用 http 和 https(连证书都没有的,没办法),所以只有自己写一个了。

记录一下,同时支持HTTP和HTTPS访问。

基本上访问一个HTTP的代码如下,兼容了HTTPS访问(没有证书认证的,如果想访问支付宝等,需要配置一个访问的公钥)

阅读全文 »

HTTP根据响应头进行缓存。有很多种、区别网上面也说的很清楚,也很全面,不懂的可以去google一下,有etag,expires等等很多,基本都是通过响应头里面进行设置。

不过在实际应用里面,可以打开firebug等,不管你写多少个response.setHeader,想破脑袋也不能把页面缓存。总是一个个的200,服务器端的代码每刷一次就执行一次,半点用都没有。

即使是使用了response.setStatus(304),那又怎样,服务器代码还是照样运行了。呵呵,研究了一下last-modified这种头,讲解一下。

首先,要知道浏览器的缓存机制,如果发出一个GET请求,收到响应后发现响应头里面有个last-modified参数,会记录下来,下次再发送同样的GET请求时,会把这个值在请求头里面带进去,请求头为If-Modified-Since(只有GET请求,而且URL也要相同,cache?a和cache?b是不同的,浏览器不会带这个请求头)

有没有发现 Servlet 里面有个 getLastModified 方法,平时当然不怎么用了,如果用的话,会发现这个方法永远返回-1,这是关键,看方法是返回long型,如果想使用就返回上次更新的时间,servlet里面的service方法有用到(一般不用重写service方法,重写getLastModified就够了)

总之,就两步,就可以实现缓存了:

  1. doGet方法里面响应一个头last-modified
  2. 写getLastModified,以long型返回last-modified响应时间

先在web.xml里面配置一个 /cache 到servlet映射 ,再修改如下代码

阅读全文 »