`

structs学习所得1

阅读更多

最近开始学习structs 和hibernate,陆续将心得放上来。structs 用的版本是1。2
   首先,留意到的是org.apache.structs.action.RequestProcessor类,其中真正包含了控制器在处理servlet请求时的控制逻辑。ActionServlet就是通过调用RequestProcessor对象的process()方法,来请求客户端请求。
   其中的proessPreprocess()方法,默认不执行任何操作,开发人员可以在这里进行一些相关的操作,并且扩展RequestProcessor类。比如,可以拒绝非法IP请求,这时重写proessPreprocess()方法,如下:
package kuozhan;
 import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.RequestProcessor;

import org.apache.struts.config.ForwardConfig;
import org.apache.commons.logging.Log;


public class MyRequestProcessor extends RequestProcessor {
 
 public MyRequestProcessor() {}
 
protected boolean processPreprocess( HttpServletRequest request,
                                     HttpServletResponse response ){
 
  boolean continueProcessing = true;
 
  // Get the name of the remote host and log it
  String remoteHost = request.getRemoteHost(  );
  log.info( "Request from host: " + remoteHost );
 
  // Make sure the host is from one that you expect
  if (( remoteHost == null || !remoteHost.startsWith( "127."))){
     // Not the localhost, so don't allow the host to access the site
     continueProcessing = false;
 
     try{
       response.sendRedirect( error.jsp");
     }catch( Exception ex ){
       log.error("Problem sending redirect from processPreprocess()") ;
     }
  }
  return continueProcessing;
}

}

  上面将凡是不是从本地计算机发出的请求,看作错误处理,并记录在日志上。
 注意扩展requestprocessor类时,最后要在struct-config.xml中加入<controller>元素,如下
 <controller processorClass="kuozhan.example"/>

分享到:
评论

相关推荐

    struts1_xheditor web编辑器源代码

    通过这个源代码包,开发者可以学习到如何在Struts1框架下整合JavaScript富文本编辑器,理解Web前端与后端交互的机制,以及如何处理用户提交的富文本数据。这对于提升Web开发技能,尤其是Struts1框架的应用能力非常有...

    基于SSM个人所得税服务系统源码.zip

    这个系统主要用于处理个人所得税相关的计算、申报和管理,对于学习和实践Java后端开发,尤其是SSM整合应用来说,是一个很好的实例。 **Spring框架**是整个系统的核心,它负责依赖注入(Dependency Injection,DI)...

    PayrollGeneration:一个用于工资计算的struts项目

    通过这个Struts项目,开发者不仅可以学习到如何构建一个实际的业务应用,还能深入理解Struts框架的运作机制,提升Java Web开发技能。同时,由于工资计算涉及到敏感的财务信息,项目还需要考虑数据安全和隐私保护措施...

    myvoice新闻系统

    "myvoice新闻系统"是一个基于Java Web技术构建的新闻信息发布平台。这个系统使用了经典的MVC(模型-...对于想要学习Java Web开发,尤其是Struts2和iBatis整合应用的开发者来说,myvoice新闻系统是一个很好的实践案例。

    eclipse开发java程序电子书籍(高清)

    1. **Eclipse整合开发工具.pdf**:这本书主要围绕Eclipse的基础使用展开,涵盖了Eclipse安装、界面定制、项目管理、代码编写、调试、版本控制以及插件安装等多方面的内容。对于初学者来说,理解Eclipse的各个工作...

    ireport中文版

    1. **图形化设计界面**:ireport提供了WYSIWYG(所见即所得)的设计环境,用户可以通过拖拽控件、设置样式和数据源,快速构建报表模板。这极大地降低了报表设计的学习曲线,即便是初学者也能很快上手。 2. **支持...

    Myeclipse7.0汉化包

    1. **Java开发**:MyEclipse提供了全面的Java开发工具集,包括代码编辑器、调试器、构建工具等,支持J2SE、J2EE和J2ME的开发。它对Java语法高亮、自动完成、错误检查等功能有着出色的支持。 2. **Web开发**:内置了...

    ireport讲解

    - **图形化设计界面**:iReport提供了一个WYSIWYG(所见即所得)的编辑器,用户可以通过拖放操作添加各种元素,如文本框、图表、图像等。 - **模板设计**:用户可以创建自定义的报表模板,包括列式报表、交叉表、...

    MyEclipse 6.0 注册机

    2. **项目管理**:支持多种类型的项目,如Java Web、Java EE、JSP、Struts等,便于组织和管理代码结构。 3. **数据库工具**:内置数据库管理工具,允许用户直接在IDE内创建、修改和查询数据库。 4. **调试器**:提供...

    计算机毕业设计论文题目大全.doc

    DreamWeaver 和 FrontPage 则常用于创建ASP程序,它们是所见即所得的网页编辑器,方便网页设计。Visual C++ 用于编写C++应用程序,特别适合开发桌面应用程序和系统级软件。 2. **编程语言和框架**:ASP.NET 是微软...

    iReport+jasperreports生成各种格式的报表

    iReport支持WYSIWYG(所见即所得)编辑模式,使得非程序员也能参与到报表设计中,提高了工作效率。 JasperReports则是一个用于生成报表的Java类库,它提供了一套完整的API,允许开发者在应用程序中集成报表功能。...

    MES项目源码

    该源码是购买所得,可以在Eclipse这样的集成开发环境中直接导入,意味着它是遵循标准Java或Web开发规范的,可能基于Spring、Struts等框架构建,便于开发者理解和修改。Eclipse是一个广泛使用的IDE,支持多种编程语言...

    FCKeditor例题

    1. **FCKeditor介绍**:FCKeditor是一个基于JavaScript的富文本编辑器,它可以提供WYSIWYG(所见即所得)的编辑界面,使得非技术用户也能轻松创建和编辑HTML内容。它的功能包括文本格式化、图片上传、链接管理、表格...

    ExtJS图书管理系统

    MyEclipse5.1作为开发工具,是Eclipse的扩展,专为Java开发者设计,支持包括JSP、Servlet、Struts、Spring、Hibernate等在内的多种Web开发技术。在本系统中,MyEclipse5.1提供了一个集成的开发环境,使得开发者可以...

    JasperReports研究笔记

    它支持iReport(现已并入Jaspersoft Studio)作为可视化设计工具,提供WYSIWYG(所见即所得)编辑模式。报表设计文件通常以`.jrxml`格式存储,这是一种XML文件,可以被编译成JasperReport能识别的字节码文件(`....

    java著名开源项目

    ### Java著名开源项目知识点概述 #### 一、Spring Framework - **定义与作用**:Spring是一个解决了许多在J2EE...通过学习和运用这些框架和技术,可以极大地提高开发效率,简化开发过程,增强软件的质量和可维护性。

    JAVA上百实例源码以及开源项目源代码

    Java数据压缩与传输实例 1个目标文件 摘要:Java源码,文件操作,数据压缩,文件传输 Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、...

Global site tag (gtag.js) - Google Analytics