2013年8月30日 星期五

response.setHeader 下載檔名遇到中文字的解決方法


response.setContentType("application/x-x509-ca-cert");
response.setContentLength(byteCert.length);
// caname 是中文字
// Safari & Firefox & Chrome
String fileName = new String(caname.getBytes(), "ISO8859-1");

String agent = request.getHeader("USER-AGENT");
if (null != agent && -1 != agent.indexOf("MSIE")) {
    // IE
    fileName = URLEncoder.encode(fileName, "UTF8").replaceAll("\\+", "%20");
}

response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + ".cer\"");

2013年8月23日 星期五

解決 Linux 主機使用 KeyStore 儲存 pfx 時非常慢的問題


在啟動的 shell script 中 (catalina.sh) 加上下列指令

export JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/./urandom"

2013年8月22日 星期四

從 web service 取得 ServletContext 物件

// ServletContextListener Class


public void contextInitialized(ServletContextEvent sce) {
  try {
    sce.getServletContext().setAttribute("myBook", "Learning java");
  } catch (Exception ex) {
  }
}


// WebService


@Resource
WebServiceContext wsContext;

@WebMethod(operationName = "test1")
public String test1() {
  ServletContext servletContext = (ServletContext) wsContext.getMessageContext().get(MessageContext.SERVLET_CONTEXT);
  String myBook = (String) servletContext.getAttribute("myBook");
}

2013年8月14日 星期三

Get viewport size (Nice)


var w = window,
d = document,
e = d.documentElement,
g = d.getElementsByTagName('body')[0],
x = w.innerWidth || e.clientWidth || g.clientWidth,
y = w.innerHeight|| e.clientHeight|| g.clientHeight;
alert(x);
alert(y);


Reference url: http://stackoverflow.com/questions/3437786/how-to-get-web-page-size-browser-window-size-screen-size-in-a-cross-browser-wa