JSP知识点汇总

有几种方法可以实现服务器内部跳转?

  1. 使用request对象提供的方法:request.getRequestDispatcher(String URI).forward(ServletRequest request,ServletResponse response);
  2. 使用pageContext对象提供的方法:pageContext.forward(String URI);
  3. 使用JSP动作标签:<jsp:forward  page="URI" />;

有几种方法可以实现JSP页面的包含操作?

  1. 使用JSP指令 <%@ include file="URI" />;
  2. 使用request对象提供的方法:request.getRequestDispatcher(String URI).include(ServletRequest request,ServletResponse response);
  3. 使用pageContext对象提供的方法:pageContext.include(String URI);
  4. 使用JSP动作标签:<jsp:include page="URI" />;

上述的四种方法存在以下差异:

  • 方法1实现的是静态包含,这是一种代码级的包含,在解析JSP页面时,被包含页面不会单独生成servlet,其生成的代码将会被直接集成到主页面生成的servlet中。方法2、3、4实现的是动态包含,被包含页面和主页面单独生成各自的servlet,在处理请求,输出响应时,将被包含页面的输出内容合并到主页面的输出中来。
  • 方法1、3、4中,被包含页面和主页面内容的输出顺序遵循代码顺序,在前的先输出,在后的后输出。方法2中,先输出被包含页面的内容,然后才会输出主页面的内容。

如何解决JSP页面的中文乱码问题?

  1. 解决URL中传递中文参数乱码问题:修改server配置文件,以Tomcat为例,编辑“%CATALINA_HOME%/conf/server.xml”,在对应的连接配置标签上添加属性URIEncoding=“UTF-8”。在从request对象获取parameter之前,设置request对象的编码方式为“UTF-8”;
  2. 解决表单中传递中文参数乱码问题:设置JSP页面的属性,<%@ page contentType="text/html;charset=utf-8" />,在从request对象获取parameter之前,设置request对象的编码方式为“UTF-8”;
  3. 解决Cookie中传递中文参数乱码问题:在向Cookie对象中添加中文参数时,使用java.net.URLEncoder.encoding(String value,String charset)方法对参数进行编码;在从Cookie对象中获取中文参数时,使用java.net.URLDecoder.decoding(String value,String charset)方法对参数进行解码。
原文地址:https://www.cnblogs.com/tangfly/p/5902634.html