1. RequestDispatcher 在得到 java.lang.NullPointerException 的情况,是因为 forward(url) 中的 url 错误/不正确导致的.
2. <!-- 如果是 2.3 规范可直接 taglib, 如果是 2.4 的版本要 jspconfig-->
<jsp-config>
<taglib>
<taglib-uri>http://java.sun.com/jstl/fn</taglib-uri>
<taglib-location>>/WEB-INF/fn.tld</taglib-location>
</taglib>
</jsp-config>
3. 获取 refer :
String referer = request.getHeader("Referer:relativeURL");
4. // 如果直接从其他文件 copy 过来这样的语句
String sql = "{call addBrand(?,?,?,?,?,?,?,?,?,?)";
可能导致 : java.util.NoSuchElementException 这样的错误。
5. base64编码:
一般情况下,URL 中的参数应使用 url 编码规则,即把参数字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。但是对于带有中文的参数来说,这种编码会使编码后的字符串变得很长。如果希望有短一点的方式对参数编码,可以采用 base64 编码方式对字符串进行编码,但是 base64 编码方式不能处理 JavaScript 中的中文,因为 JavaScript 中的中文都是以 UTF-16 方式保存的。而 base64 只能处理单字节字符,所以不能直接用 base64 对带有中文的 JavaScript 字符串进行编码。但是可以通过 utf.js 这个程序中提供的 utf16to8 来将 UTF-16 编码的中文先转化为 UTF-8 方式,然后再进行 base64 编码。这样编码后的字符串,在传递到服务器端后可以直接通过 base64_decode 解码成 UTF-8 的中文字符串。但是还有个问题需要注意。base64 编码中使用了加号(+),而 + 在 URL 传递时会被当成空格,因此必须要将 base64 编码后的字符串中的加号替换成 %2B 才能当作 URL 参数进行传递。否则在服务器端解码后就会出错。
2. <!-- 如果是 2.3 规范可直接 taglib, 如果是 2.4 的版本要 jspconfig-->
<jsp-config>
<taglib>
<taglib-uri>http://java.sun.com/jstl/fn</taglib-uri>
<taglib-location>>/WEB-INF/fn.tld</taglib-location>
</taglib>
</jsp-config>
3. 获取 refer :
String referer = request.getHeader("Referer:relativeURL");
4. // 如果直接从其他文件 copy 过来这样的语句
String sql = "{call addBrand(?,?,?,?,?,?,?,?,?,?)";
可能导致 : java.util.NoSuchElementException 这样的错误。
5. base64编码:
一般情况下,URL 中的参数应使用 url 编码规则,即把参数字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。但是对于带有中文的参数来说,这种编码会使编码后的字符串变得很长。如果希望有短一点的方式对参数编码,可以采用 base64 编码方式对字符串进行编码,但是 base64 编码方式不能处理 JavaScript 中的中文,因为 JavaScript 中的中文都是以 UTF-16 方式保存的。而 base64 只能处理单字节字符,所以不能直接用 base64 对带有中文的 JavaScript 字符串进行编码。但是可以通过 utf.js 这个程序中提供的 utf16to8 来将 UTF-16 编码的中文先转化为 UTF-8 方式,然后再进行 base64 编码。这样编码后的字符串,在传递到服务器端后可以直接通过 base64_decode 解码成 UTF-8 的中文字符串。但是还有个问题需要注意。base64 编码中使用了加号(+),而 + 在 URL 传递时会被当成空格,因此必须要将 base64 编码后的字符串中的加号替换成 %2B 才能当作 URL 参数进行传递。否则在服务器端解码后就会出错。