estDispatcher () 与 response.sendRedirect() 的区别
1 .request.getRequestDispatcher () 是请求转发,前后页面共享一个 request ;
response.sendRedirect() 是重新定向,前后页面不是一个 request 。
2 .RequestDispatcher.forward() 是在服务器端运行 ;
HttpServletResponse.sendRedirect() 是通过向客户浏览器发送命令来完成 .
所以 RequestDispatcher.forward() 对于浏览器来说是 “ 透明的 ” ;
而 HttpServletResponse.sendRedirect() 则不是。
public interface RequestDispatcher;
定义一个对象,从客户端接收请求,然后将它发给服务器的可用资源(例如 Servlet 、
CGI 、 HTML 文件、 JSP 文件)。 Servlet 引擎创建 request dispatcher 对象,用于封装由一
个特定的 URL 定义的服务器资源。
这个接口是专用于封装 Servlet 的,但是一个 Servlet 引擎可以创建 request dispatcher
对象用于封装任何类型的资源。
request dispatcher 对象是由 Servlet 引擎建立的,而不是由 Servlet 开发者建立的。
方法
1 、 forward
public void forward(ServletRequest request, ServletReponse response)
throws ServletException, IOException;
被用来从这个 Servlet 向其它服务器资源传递请求。当一个 Servlet 对响应作了初步的处
理,并要求其它的对象对此作出响应时,可以使用这个方法。
当 request 对象被传递到目标对象时,请求的 URL 路径和其他路径参数会被调整为反映
目标对象的目标 URL 路径。
如果已经通过响应返回了一个 ServletOutputStream 对象或 PrintWriter 对象,这个方法
将不能使用,否则,这个方法会抛出一个 IllegalStateException 。
6 、 sendRedirect
public void sendRedirect(String location) throws IOException;
使用给定的路径,给客户端发出一个临时转向的响应( SC_MOVED_TEMPORARILY )。
给定的路径必须是绝对 URL 。相对 URL 将不能被接收,会抛出一个
IllegalArgumentException 。
这个方法必须在响应被提交之前调用。调用这个方法后,响应立即被提交。在调用这个
方法后, Servlet 不会再有更多的输出。
相关链接:
http://diegoball.javaeye.com/blog/248722
handawei.javaeye.com/blog/554002
使用 java URLEncoder 对中文进行转码处理
在 java 中要对 js 传递的 unicode 或者 uft-8 编码的参数进行解 码 ,java 中的 URLEncoder 类可以解决找个问题
java 代码 :
/** 中文转码为 utf-8 码 */
public static String getUtf8Str(String s) {
String ret = null;
try {
ret = java.net.URLEncoder.encode(s, "utf-8");
} catch (UnsupportedEncodingException ex) {
}
return ret;
}
/** utf-8 码转为中文 */
public static String getStrUtf8(String s) {
String ret = null;
try {
ret = java.net.URLDecoder.decode(s, "utf-8");
} catch (UnsupportedEncodingException ex) {
}
return ret;
}
页面的 js 对中文进行编码 :
var temp = encodeURI(param);
相关链接 : www.java3z.com/cwbwebhome/article/article2/2414.html