j2ee-j2me tips

类别:Java 点击:0 评论:0 推荐:

1. 在J2EE的Servlet中定位resource的绝对地址:
 getServletContext().getResource("/WEB-INF/xml/requestmappings.xml").toString();

2. ServletContext 概念:
 ServletContext定义了一套用于servlet与servlet 容器通信的方法函数,如获取一个文件的MIME type, 分发请求,或是写日志
一个JAVA虚机的一个web应用具有一个context。
在DD(deploy描述)中标志为"distributed"的web应用,一个JAVA虚机只有一个context实例。在这种情况下,context就不能用于保存global的信息。这是应考虑使用外部资源如database来保存信息
3. IE的encoding 自动选择来源
      来自于header的 charset 选项
        <META HTTP-EQUIV="content-type" CONTENT="text/html; charset=utf-8">
4. 在有些JSP中为了显示中文字符,必须将字符作如下转变: 
       String result = new String(transDate.getBytes("utf8"), "iso-8859-1");
5. Lost update问题(两个instance同时在看某个记录,并可能同时进行更改操作,如何避免第一个用户由于第二个用户的修改而导致的更改丢失现象)
有两种方法:
 
 1. Soft lock.(Optimistic Concurrency)
 2. Hard lock(Pessimistic Concurrency)
 
 1. Soft lock.

 In the case of Soft lock you have use an extra field called timestamp in your 
 database table. When you are retrieving a record from the database, you need to 
 store its timestamp in a temporary variable and when user hits the update link 
 you have to compare this timestamp with the timestamp of most recent record 
 available in the database. If the timestamp matches  you should allow that user 
 to update the record (because during this spawn of time nobody has updated the 
 reocrd) otherwise you should display a message stating that "Record is already 
 updated by somone"
 
 2. Hard lock
 In the case of hardlock, while retrieving a record from the database you should
use the query in the form of "SELECT ..FOR .. UPDATE". This will prevent
another user to modify the record until the first user completes the updation.
The query I mentioned above puts a lock on that record.
 
In most of the cases people prefer to use the first approach.

6. 如何将数据导出到excel文件
   下面这个函数可以把table输出转成excel格式
   response.setHeader("content-disposition","attachment; filename=stats.xls");
7. 特殊字符转换
 & 替换为 &amp;
 < 替换为 & l t;
 > 替换为 & g t;
 " 替换为 &q u ot;
 \ 替换为 &a pos;

8.  用下面的格式在jsp中封装java代码,这样可以避免<?xml...必须从头开始的限制,另外在wml中,1. url中的&必须用& a m p;代替, contenttype必须为text/vnd.wap.wml

<?xml version="1.0" encoding="utf-8"?>
<%
response.setContentType("text/vnd.wap.wml");
%>

<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">


本文地址:http://com.8s8s.com/it/it9747.htm