B、继承RequestProcessor类RequestProcessor类处理ActionServlet接收到的所有请求。根据它的处理方式,可将每个请求分解为多个小任务,分别由不同的方法执行。这就允许针对请求的各个单独部分自定义处理。RequestProcessor类的部分方法如下:processPath(): 获取客户端请求的路径URIprocessMapping(): 根据请求URI获取所需的映射信息processRoles(): 检查用户的角色是否允许他访问请求的资源processActionForm(): 新建一个Form Bean或从请求会话中检索Form BeanprocessForward(): 处理元素forward以匹配当前的请求路径processValidate(): 调用Form Bean的validate()方法processPreprocess(): 告诉请求处理器调用此方法后,是否应继续处理请求processLocale(): 为请求选择一个语言环境processActionCreate(): 实例化当前ActionMapping指定的类的实例processActionPerform(): 将调用action的perform()或execute()方法呵呵,发没发现RequestProcess类的所有方法都有一个前缀proess,接着往下看吧。RequestProcessor在action之前,所以我们应着手RequestProcessor,要开发自己的RequestProcessor类,步骤如下:(1) 创建一个继承org.apache.struts.action.RequestProcessor的类,在改类中显示定义一个无参,方法体为空的构造器。(2) 重写所需的方法,加入我们的功能。具体代码如下所示:package servlets; import java.io.UnsupportedEncodingException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.RequestProcessor; public class EncodingHandler extends RequestProcessor {public boolean processPreprocess(HttpServletRequest servletRequest,HttpServletResponse serveltResponse) {try {servletRequest.setCharacterEncoding("GBK"); System.out.println("请求被处理."); } catch (UnsupportedEncodingException ex) {ex.printStackTrace(); }
(编辑:aniston)
·2024年12月目录 ·2024年11月目录 ·2024年10月目录 ·2024年9月目录 ·2024年8月目录 ·2024年7月目录 ·2024年6月目录 ·2024年5月目录 ·2024年4月目录 ·2024年3月目录 ·2024年2月目录 ·2024年1月目录 ·2023年12月目录 ·2023年11月目录