-->--显示引用默认的拦截器-->
---->
--引用自定义的拦截器栈-->
ViewCode
LoginAction.java
packageinterceptor;
importjava.util.Map;
importcom.opensymphony.xwork2.ActionContext;
importcom.opensymphony.xwork2.ActionSupport;
/**
*@ClassName:
LoginAction
*@Description:
用户登录
*@author:
amosli
*@email:
amosli@
*@dateJan17,201412:
11:
35AM
*/
publicclassLoginActionextendsActionSupport{
privatestaticfinallongserialVersionUID=3514444221760688282L;
privateStringusername;
publicvoidsetUsername(Stringusername){
this.username=username;
}
publicStringloginMethod(){
//取得HTPPSession
Mapsession=ActionContext.getContext().getSession();
session.put("username",username);
returnSUCCESS;
}
}
ViewCode
LoginInterceptor.java
packageinterceptor;
importjava.util.Map;
importaction.UploadAction;
importcom.opensymphony.xwork2.ActionContext;
importcom.opensymphony.xwork2.ActionInvocation;
importcom.opensymphony.xwork2.interceptor.Interceptor;
/**
*@ClassName:
LoginInterceptor
*@Description:
登录拦截器
*@author:
amosli
*@email:
amosli@
*@dateJan17,201411:
42:
54PM
*/
publicclassLoginInterceptorimplementsInterceptor{
privatestaticfinallongserialVersionUID=8314579656513662711L;
publicLoginInterceptor(){
System.out.println("LoginInterceptor():
"+this.hashCode());
}
publicvoiddestroy(){
System.out.println("destroy()");
}
publicvoidinit(){
System.out.println("init()");
}
publicStringintercept(ActionInvocationinvocation)throwsException{
System.out.println("LoginInterceptor");
////获取此拦截器将要拦截的action
//Objectaction=invocation.getAction();
//System.out.println("action:
"+action);//action:
action.UploadAction@6522cf92
////获取action的返回值
//StringresultValue=invocation.invoke();
//System.out.println("resultValue:
"+resultValue);//resultValue:
success
//如果拦截器将要拦截的action为UploadAction,那么判断用户是否已经登录
if(invocation.getAction()instanceofUploadAction){
Mapsession=ActionContext.getContext().getSession();
if(session.get("username")!
=null){//判断用户是否已经登录
//如果返回值为"success"那么将会匹配到配置文件中为result属性为"success"的内容。
//如果返回值为invocation.invoke(),那么将会执行uploadaction方法
returninvocation.invoke();
}else{
return"toLoginJsp";
}
}
returnnull;
}
}
ViewCode
UploadAction.java
packageaction;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileOutputStream;
importjava.io.InputStream;
importjava.io.OutputStream;
importcom.opensymphony.xwork2.ActionSupport;
/**
*@ClassName:
UploadAction
*@Description:
文件上传
*@author:
amosli
*@email:
amosli@
*@dateJan14,20141:
50:
28AM
*/
publicclassUploadActionextendsActionSupport{
privatestaticfinallongserialVersionUID=-8920466592471253212L;
privateStringusername;//用户名
privateString[]uploadContentType;//上传文件的类型,(Fileupload拦截器传入的参数)
privateFile[]upload;//上传的文件,(Fileupload拦截器传入的参数)
privateString[]uploadFileName;//上传文件的真实文件名,(Fileupload拦截器传入的参数)
privateStringuploadPath;
publicvoidsetUploadPath(StringuploadPath){
this.uploadPath=uploadPath;
}
publicvoidsetUsername(Stringusername){
this.username=username;
}
publicString[]getUploadContentType(){
returnuploadContentType;
}
publicvoidsetUploadContentType(String[]uploadContentType){
this.uploadContentType=uploadContentType;
}
publicFile[]getUpload(){
returnupload;
}
publicvoidsetUpload(File[]upload){
this.upload=upload;
}
publicString[]getUploadFileName(){
returnuploadFileName;
}
publicvoidsetUploadFileName(String[]uploadFileName){
this.uploadFileName=uploadFileName;
}
publicStringgetUsername(){
returnusername;
}
publicStringuploadMethod()throwsException{
//ServletContextcontext=ServletAction