- 浏览: 464561 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
chexiazi:
一样的xml代码 报这个错 <ns1:XMLFault ...
CXF 通过用户名和密码进行验证 -
di1984HIT:
谢谢啊 ~~~
通过JavaCompiler进行编译java文件(转载) -
aa00aa00:
'%${userName}%' 这种是可以的,是可以模糊查询的 ...
mybatis 模糊查询 -
一棵杨柳的地盘:
我把你的代码不了一遍 但是汇报错首先:static { ...
CXF 通过用户名和密码进行验证 -
shangmin1990:
转 IntelliJ IDEA 编辑器生成 Hibernate 实体映射文件
public void process(public void process(
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
throws java.io.IOException, javax.servlet.ServletException{ … }
RequestProcessor类中还定义了多个processXXX()方法,process()方法正是通过调用他们来具体的处理工作的。下表中对其中重要的几个做简单介绍:
表1 RequestProcessor类的主要处理方法
方 法 功 能
protected String processPath() | 获取客户端请求的路径URI |
protected ActionForm processActionForm() | 获取当前请求表单所映射的ActionForm Bean |
protected ActionMapping processMapping() | 根据请求URI获取所需的映射信息 |
protected Action processActionCreate() | 初始化相应的ActionBean |
protected ActionForward processActionPerform() | 调用Action Bean的execute()方法处理请求 |
protected void processForwardConfig() | 处理由Action Bean的execute()方法返回的ActionForward对象。 |
如果要定制ActionServlet的行为规则,其实应从RequestProcessor这个RequestProcessor类着手。要开发自己的RequestProcessor类以实现定制的控制逻辑,应遵循以下步骤:
1) 创建一个子类继承org.apache.struts.action.RequestProcessor类,在该子类中显式定义(或使用缺省的)无参、方法体为空的构造方法。
2) 重写所需要的方法,加入定制功能。
3) 将该子类编译后得到的class文件保存到Struts应用程序的WEB-INF/class/目录下
4) 修改配置文件struts-config.xml,在其中加入一个名为<controller>的元素,用以指定客户定制的RequestProcessor类。
在展示一个具体的实现定制功能的例子之前,有必要介绍一下RequestProcessor类中定义的另外几个有关方法:
protected void log(java.lang.String message){…}
功能:将参数String对象message的内容存入当前应用程序日志文件。
protected void log(java.lang.String message, java.lang.Throwable exception) {…}
功能:将参数String对象message和异常对象exception所封装的信息存入当前应用程序日志文件。
protected boolean processPreprocess(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response) {…}
功能:专门用于在子类中被重写,加入由开发者定制的预处理功能。
在RequestProcessor类中定义的processPreprocess()方法什么也不做,只是简单返回一个boolean类型值true,用以告知RequestProcessor继续后续处理程序。在定制RequestProcessor类时通常会重写此方法,注意一定要在方法的结尾返回true,如果重写如果返回值为false,则RequestProcessor对象终止对请求的处理,将控制权送回给ActionServlet的doPost()或doGet()方法。
下面给出用户定制RequestProcessor组件的具体实现步骤:
1)为已有的Struts应用程序创建用户自己的RequestProcessor类,重写其中的processPreprocess()方法,加入所需的控制逻辑。范例源代码如下:
源文件:MyRequestProcessor.java
package test;
import java.util.Enumeration;
import javax.servlet.http.*;
import org.apache.struts.action.RequestProcessor;
public class MyRequestProcessor extends RequestProcessor {
public MyRequestProcessor() {}
public boolean processPreprocess(HttpServletRequest request,
HttpServletResponse response) {
log("-------------- My Logging Start--------------");
log("Request URI = " + request.getRequestURI());
log("Context Path = " + request.getContextPath());
Enumeration headerNames = request.getHeaderNames();
log("Request Header:");
while (headerNames.hasMoreElements()) {
String headerName =(String)headerNames.nextElement();
Enumeration headerValues = request.getHeaders(headerName);
while (headerValues.hasMoreElements()) {
String headerValue =(String)headerValues.nextElement();
log("\t" + headerName + " = " + headerValue);
}
}
log("Locale = " + request.getLocale());
log("Method = " + request.getMethod());
log("Path Info = " + request.getPathInfo());
log("Protocol = " + request.getProtocol());
log("Remote Address = " + request.getRemoteAddr());
log("Remote Host = " + request.getRemoteHost());
log("Remote User = " + request.getRemoteUser());
log("Requested Session Id = "
+ request.getRequestedSessionId());
log("Scheme = " + request.getScheme());
log("Server Name = " + request.getServerName());
log("Server Port = " + request.getServerPort());
log("Servlet Path = " + request.getServletPath());
log("Secure = " + request.isSecure());
log("-------------- My Logging End --------------");
return true;
}
}
2)编译源文件MyRequestProcessor.java,将所生成的字节码文件(包括所在的package子目录)保存到Struts 应用程序的"WEB-INF/classes/"目录下。
3)修改此Struts应用程序配置文件struts-config.xml,在其中加入<controller>元素:
源文件:struts-config.xml
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
……
<controller processorClass="test.MyRequestProcessor" />
</struts-config>
说明:其他组成页面、类设计和应用程序配置均不需做改变。
4)发布Struts应用程序,并通过客户端浏览器访问该应用程序。
5)打开Web服务器日志文件<WAS_HOME>/logs/localhost_log.<当天日期>.txt,可以看到新加入的用户定制信息:
2004-09-24 00:30:28 StandardContext[/myStrutsApp3]action:
-------------- My Logging Start--------------
Request URI = /myStrutsApp3/regist.do
Context Path = /myStrutsApp3
Request Header:
accept = image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,
application/vnd.ms-powerpoint, application/vnd.ms-excel,
application/msword , application/x-shockwave-flash, */*
referer = http://localhost:8080/myStrutsApp3/
accept-language = zh-cn
content-type = application/x-www-form-urlencoded
accept-encoding = gzip, deflate
user-agent = Mozilla/4.0 (compatible; MSIE 6.0;
Windows NT 5.1; .NET CLR 1.1.4322)
host = localhost:8080
content-length = 20
connection = Keep-Alive
cache-control = no-cache
cookie = JSESSIONID=FD8A69F16E329A362DB219596897D6DA
Locale = zh_CN
Method = POST
Path Info = null
Protocol = HTTP/1.1
Remote Address = 127.0.0.1
Remote Host = 127.0.0.1
Remote User = null
Requested Session Id = FD8A69F16E329A362DB219596897D6DA
Scheme = http
Server Name = localhost
Server Port = 8080
Servlet Path = /regist.do
Secure = false
-------------- My Logging End --------------
发表评论
-
java 位运算总结
2018-10-23 11:14 0<div class="iteye-blog- ... -
java sort 排序中的自然序排序总结
2018-10-23 11:07 5777<div class="iteye-blo ... -
Java内存分析工具
2012-11-24 11:16 2237Java运行时数据区包含:Method area, heap, ... -
转 StringUtils.isBlank()函数(分享一下)
2012-02-15 10:23 2957StringUtils的isBlank与isEmply ... -
jquery 使用ajax 提交整个表单的数据
2012-01-06 14:52 5888在使用Struts开发项目的时候发现很爽的一件事就是可以不使用 ... -
struts2 通配符
2011-12-31 16:25 1256在使用struts2时,如果想定义action的话可以这样做 ... -
Maven Web项目部署到Tomcat下
2011-12-30 17:28 19502通过Maven来搭建项目是 ... -
velocity与servlet的整合
2011-12-28 21:07 1420第一天学习velocity,参考别人的blog写了一个与Se ... -
ibatis 与spring3整合
2011-12-28 13:01 5701spring与ibates整合,使用 ... -
ibatis 入门
2011-12-28 12:48 1248昨天学习了一下ibatis ... -
转 JTA简介
2011-12-26 17:47 1043Java Transaction API(Java事务 ... -
转 IntelliJ IDEA 编辑器生成 Hibernate 实体映射文件
2011-12-23 16:03 23334很多人不知道怎么用 IntelliJ IDEA 编辑器 ... -
转 IntelliJ IDEA 使用基础篇 Java IDE编辑器
2011-12-23 15:02 8487IntelliJ IDE ... -
转在CXF中用JAXB数据绑定支持Map类型
2011-12-05 16:38 5189一些java类型不能自然映射成xml,例如,HashMap ... -
cxf wsdltojava 构造方法报错
2011-12-05 14:23 1295I'm marking this as "n ... -
(转)Struts2学习笔记--Internationalization
2011-11-21 18:13 1266Struts2 的国际化 ======== ... -
单例模式
2011-11-18 20:47 983单例模式(SINGLETON):单例模式确保某一个类只有一个实 ... -
类加载的顺序
2011-11-17 21:40 1158写道 package com.wang; public cl ... -
socket实现客户端与客户端通信
2011-11-17 19:34 3017最近闲来无聊,看了一下socket通信,实现了一个最简版的客户 ... -
接口设计的 11 种原则
2011-05-02 21:02 27127种设计坏味道 1.僵化性: 很难对系统进行改动,因为每个改动 ...
相关推荐
Struts ActionServlet控制器对象 8 Struts Action Classes 8 Struts Action Mapping 9 使用ActionForward导航 10 Struts ActionForm Bean捕获表单数据 11 Struts的其他组件 12 Validation Framework for ...
Struts ActionServlet控制器对象 8 Struts Action Classes 8 Struts Action Mapping 9 使用ActionForward导航 10 Struts ActionForm Bean捕获表单数据 11 Struts的其他组件 12 Validation Framework for Struts 12 ...
Struts ActionServlet控制器对象 8 Struts Action Classes 8 Struts Action Mapping 9 使用ActionForward导航 10 Struts ActionForm Bean捕获表单数据 11 Struts的其他组件 12 Validation Framework for Struts 12 ...
Struts ActionServlet控制器对象 8 Struts Action Classes 8 Struts Action Mapping 9 使用ActionForward导航 10 Struts ActionForm Bean捕获表单数据 11 Struts的其他组件 12 Validation Framework for Struts 12 ...
Struts 2.0框架中出现的许多特性旨在让Struts更容易使用: · 改进的设计: 与Struts 1相比,...· 易于定制的控制器: Struts 1允许请求处理程序可按照模块来定制,在Struts 2中,需要的话,可以按照动作来定制请求处理
它是开源框架:Struts 是 Apache 软件基金会资助的一个为开发基于MVC模式的Web应用而设计的一个开源框架.Struts框架中的各种Web组件:它是利用Servlet、JavaBean和JSP、定制标签库等Web组件、XML等方面的技术来实现...
Struts 2 框架的主要特点在于其 MVC(Model-View-Controller)架构,它将应用程序划分为三个核心组件,分别是模型(Model)、视图(View)和控制器(Controller)。这种分层结构有助于代码的组织和维护,同时也促进...
概述...................................................................组件.........................................................................6 Struts ActionServlet控制器对象.......................
2.2.3. Struts控制器组件................................................................................................39 2.2.4. 用 Struts 开发Web 应用...................................................
2.2.3. Struts 控制器组件................................................................................................39 2.2.4. 用Struts 开发Web 应用....................................................
Struts2 Struts2核心控制流程、Ognl、Action、Interceptor、Result、FreeMarker、Struts2标记库、Struts2扩展、Struts2应用技巧(输入验证、消息国际化、文件上传和下载、防止重复提交等)。 熟练掌握Struts2核心...
如果你是一个程序员,则会对第三部分详细介绍的高级主题倍加推崇,例如如何使用流行的Apache Struts MVC(模型-视图-控制器)框架将Servlet和JavaBeans组件与JSP集成,以及如何使用JSP API开发定制标记库,在此还...
MVC是一种软件架构的思想, 将软件按照模型、视图、控制器来划分 M:Model,模型层,指工程中的JavaBean,作用是处理数据 V:View,视图层,指工程中的html或jsp等页面,作用是与用户进行交互,展示数据 C:...
6.2.1 回顾MVC-控制器 6.2.2 Navigation HandleI-幕后主管 6.2.3 Faces动作方法说明 6.3 构建导航规则 6.3.1 静态导航示例 6.3.2 动态导航示例 6.4 更复杂的导航示例 6.4.1 使用通配符 6.4.2 使用条件导航 6.4.3 ...
优点: 架构简单——易于扩展 标记库很容易利用FreeMarker或者Velocity来定制 基于控制器或者基于页面的导航 缺点: 文档组织得很差 对新特征过分关注 Tapestry 优点: 一旦学会它,将极大地提高生产率 HTML模板...
2.3.3 定制编辑器 36 2.3.4 定制工作台公共设置 36 2.4 MyEclipse中常用操作 36 2.4.1 配置JRE 36 2.4.2 设置编译路径 37 2.4.3 设置项目属性 38 2.5 本章小结 39 第3章 Java程序的开发 40 3.1 使用JDT编写Java项目 ...
6.2.1 回顾MVC-控制器 6.2.2 Navigation HandleI-幕后主管 6.2.3 Faces动作方法说明 6.3 构建导航规则 6.3.1 静态导航示例 6.3.2 动态导航示例 6.4 更复杂的导航示例 6.4.1 使用通配符 6.4.2 使用条件导航 6.4.3 ...
MySQL提供了一系列安全措施,如用户账户管理、访问权限控制、SSL/TLS加密连接、审计日志等功能,确保数据的安全性和合规性。同时,MySQL附带了一系列管理工具,如MySQL Server、MySQL Workbench、MySQL Shell等,...