最近开始学习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框架下整合JavaScript富文本编辑器,理解Web前端与后端交互的机制,以及如何处理用户提交的富文本数据。这对于提升Web开发技能,尤其是Struts1框架的应用能力非常有...
这个系统主要用于处理个人所得税相关的计算、申报和管理,对于学习和实践Java后端开发,尤其是SSM整合应用来说,是一个很好的实例。 **Spring框架**是整个系统的核心,它负责依赖注入(Dependency Injection,DI)...
通过这个Struts项目,开发者不仅可以学习到如何构建一个实际的业务应用,还能深入理解Struts框架的运作机制,提升Java Web开发技能。同时,由于工资计算涉及到敏感的财务信息,项目还需要考虑数据安全和隐私保护措施...
"myvoice新闻系统"是一个基于Java Web技术构建的新闻信息发布平台。这个系统使用了经典的MVC(模型-...对于想要学习Java Web开发,尤其是Struts2和iBatis整合应用的开发者来说,myvoice新闻系统是一个很好的实践案例。
1. **Eclipse整合开发工具.pdf**:这本书主要围绕Eclipse的基础使用展开,涵盖了Eclipse安装、界面定制、项目管理、代码编写、调试、版本控制以及插件安装等多方面的内容。对于初学者来说,理解Eclipse的各个工作...
1. **图形化设计界面**:ireport提供了WYSIWYG(所见即所得)的设计环境,用户可以通过拖拽控件、设置样式和数据源,快速构建报表模板。这极大地降低了报表设计的学习曲线,即便是初学者也能很快上手。 2. **支持...
1. **Java开发**:MyEclipse提供了全面的Java开发工具集,包括代码编辑器、调试器、构建工具等,支持J2SE、J2EE和J2ME的开发。它对Java语法高亮、自动完成、错误检查等功能有着出色的支持。 2. **Web开发**:内置了...
- **图形化设计界面**:iReport提供了一个WYSIWYG(所见即所得)的编辑器,用户可以通过拖放操作添加各种元素,如文本框、图表、图像等。 - **模板设计**:用户可以创建自定义的报表模板,包括列式报表、交叉表、...
2. **项目管理**:支持多种类型的项目,如Java Web、Java EE、JSP、Struts等,便于组织和管理代码结构。 3. **数据库工具**:内置数据库管理工具,允许用户直接在IDE内创建、修改和查询数据库。 4. **调试器**:提供...
DreamWeaver 和 FrontPage 则常用于创建ASP程序,它们是所见即所得的网页编辑器,方便网页设计。Visual C++ 用于编写C++应用程序,特别适合开发桌面应用程序和系统级软件。 2. **编程语言和框架**:ASP.NET 是微软...
iReport支持WYSIWYG(所见即所得)编辑模式,使得非程序员也能参与到报表设计中,提高了工作效率。 JasperReports则是一个用于生成报表的Java类库,它提供了一套完整的API,允许开发者在应用程序中集成报表功能。...
该源码是购买所得,可以在Eclipse这样的集成开发环境中直接导入,意味着它是遵循标准Java或Web开发规范的,可能基于Spring、Struts等框架构建,便于开发者理解和修改。Eclipse是一个广泛使用的IDE,支持多种编程语言...
1. **FCKeditor介绍**:FCKeditor是一个基于JavaScript的富文本编辑器,它可以提供WYSIWYG(所见即所得)的编辑界面,使得非技术用户也能轻松创建和编辑HTML内容。它的功能包括文本格式化、图片上传、链接管理、表格...
MyEclipse5.1作为开发工具,是Eclipse的扩展,专为Java开发者设计,支持包括JSP、Servlet、Struts、Spring、Hibernate等在内的多种Web开发技术。在本系统中,MyEclipse5.1提供了一个集成的开发环境,使得开发者可以...
它支持iReport(现已并入Jaspersoft Studio)作为可视化设计工具,提供WYSIWYG(所见即所得)编辑模式。报表设计文件通常以`.jrxml`格式存储,这是一种XML文件,可以被编译成JasperReport能识别的字节码文件(`....
### Java著名开源项目知识点概述 #### 一、Spring Framework - **定义与作用**:Spring是一个解决了许多在J2EE...通过学习和运用这些框架和技术,可以极大地提高开发效率,简化开发过程,增强软件的质量和可维护性。
Java数据压缩与传输实例 1个目标文件 摘要:Java源码,文件操作,数据压缩,文件传输 Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、...