java struts2入门学习拦截器学习Word下载.docx

上传人:b****6 文档编号:20696631 上传时间:2023-01-25 格式:DOCX 页数:15 大小:189.18KB
下载 相关 举报
java struts2入门学习拦截器学习Word下载.docx_第1页
第1页 / 共15页
java struts2入门学习拦截器学习Word下载.docx_第2页
第2页 / 共15页
java struts2入门学习拦截器学习Word下载.docx_第3页
第3页 / 共15页
java struts2入门学习拦截器学习Word下载.docx_第4页
第4页 / 共15页
java struts2入门学习拦截器学习Word下载.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

java struts2入门学习拦截器学习Word下载.docx

《java struts2入门学习拦截器学习Word下载.docx》由会员分享,可在线阅读,更多相关《java struts2入门学习拦截器学习Word下载.docx(15页珍藏版)》请在冰豆网上搜索。

java struts2入门学习拦截器学习Word下载.docx

/package>

注意:

这里interceptors与action标签同级。

其中class对应拦截器的全路径。

name对应拦截器的名称,这个可以自己随便定义,建议与类名相同,此名称要唯一。

2)引用一个拦截器:

!

--引用自定义的拦截器-->

interceptor-refname="

/interceptor-ref>

如何引用一个拦截器?

即在Action中<

标签下配置即可。

这里name名称与自定义的名称要一致。

4、自定义拦截器栈

1)声明一个拦截器栈

interceptor-stack标签中进行配置需要引用的拦截器,如下:

<

interceptor-stackname="

amosStack"

defaultStack"

/interceptor-stack>

2)引用一个拦截器栈:

--引用自定义的拦截器栈-->

二、需求分析

如图所示,访问upload.jsp进行上传文件--》LoginInterceptor拦截器进行拦截---》

1、未登录,那么跳转页面到登录页面---》进行登录页面--》登录成功---》可以点击返回到上传文件页面;

2、已登录,登录直接开始上传文件。

三、代码分析:

upload.jsp

%@pagelanguage="

java"

contentType="

text/html;

charset=UTF-8"

pageEncoding="

UTF-8"

%>

%@tagliburi="

/struts-tags"

prefix="

s"

%>

DOCTYPEhtmlPUBLIC"

-//W3C//DTDHTML4.01Transitional//EN"

"

http:

//www.w3.org/TR/html4/loose.dtd"

html>

head>

metahttp-equiv="

Content-Type"

content="

title>

Inserttitlehere<

/title>

/head>

body>

s:

formaction="

UploadAction"

enctype="

multipart/form-data"

method="

POST"

textfieldlabel="

上传用户"

name="

username"

/>

filelabel="

上传文件"

upload"

/>

%--<

--%>

submitvalue="

提交"

/s:

form>

/body>

/html>

ViewCode

upload_success.jsp

login.jsp

login<

LoginAction"

登录"

login_success.jsp

loginsuccess<

登录成功<

br>

%--${pageContext.request.contextPath}--%>

ahref="

upload.jsp"

>

返回上传页面<

/a>

sturts.xml

?

xmlversion="

1.0"

encoding="

?

DOCTYPEstrutsPUBLIC

-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.3//EN"

//struts.apache.org/dtds/struts-2.3.dtd"

struts>

--<

includefile="

config/upload.xml"

/include>

-->

--加载其他配置文件-->

config/upload-interceptor.xml"

/struts>

upload-sturts.xml

packagename="

login"

extends="

struts-default"

actionname="

interceptor.LoginAction"

loginMethod"

result>

/login_success.jsp

/result>

action.UploadAction"

uploadMethod"

paramname="

uploadPath"

/home/amosli/develop/struts2_learn/<

/param>

resultname="

success"

type="

dispatcher"

/WEB-INF/upload_success.jsp

input"

upload.jsp

toLoginJsp"

login.jsp

--对系统的拦截器进行设置-->

fileUpload"

--对单个上传文件的大小进行设置,5M-->

maximumSize"

5242880<

--对允许的文件扩展名进行设置,这里以英文逗号隔开-->

allowedExtensions"

.txt,.xml<

--对允许的文件类型进行设置,这里以英文逗号进行隔开-->

allowedTypes"

text/plain,text/xml<

--显示引用默认的拦截器-->

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

Map<

String,Object>

session=ActionContext.getContext().getSession();

session.put("

username);

returnSUCCESS;

}

LoginInterceptor.java

importaction.UploadAction;

importcom.opensymphony.xwork2.ActionInvocation;

importcom.opensymphony.xwork2.interceptor.Interceptor;

LoginInterceptor

登录拦截器

*@dateJan17,201411:

42:

54PM

publicclassLoginInterceptorimplementsInterceptor{

privatestaticfinallongserialVersionUID=8314579656513662711L;

publicLoginInterceptor(){

System.out.println("

LoginInterceptor():

"

+this.hashCode());

publicvoiddestroy(){

destroy()"

);

publicvoidinit(){

init()"

publicStringintercept(ActionInvocationinvocation)throwsException{

////获取此拦截器将要拦截的action

//Objectaction=invocation.getAction();

//System.out.println("

action:

+action);

//action:

action.UploadAction@6522cf92

////获取action的返回值

//StringresultValue=invocation.invoke();

resultValue:

+resultValue);

//resultValue:

success

//如果拦截器将要拦截的action为UploadAction,那么判断用户是否已经登录

if(invocation.getAction()instanceofUploadAction){

if(session.get("

)!

=null){//判断用户是否已经登录

//如果返回值为"

那么将会匹配到配置文件中为result属性为"

的内容。

//如果返回值为invocation.invoke(),那么将会执行uploadaction方法

returninvocation.invoke();

}else{

return"

;

returnnull;

UploadAction.java

packageaction;

importjava.io.File;

importjava.io.FileInputStream;

importjava.io.FileOutputStream;

importjava.io.InputStream;

importjava.io.OutputStream;

UploadAction

文件上传

*@dateJan14,20141:

50:

28AM

publicclassUploadActionextendsActionSupport{

privatestaticfinallongserialVersionUID=-8920466592471253212L;

//用户名

privateString[]uploadContentType;

//上传文件的类型,(Fileupload拦截器传入的参数)

privateFile[]upload;

//上传的文件,(Fileupload拦截器传入的参数)

privateString[]uploadFileName;

//上传文件的真实文件名,(Fileupload拦截器传入的参数)

privateStringuploadPath;

publicvoidsetUploadPath(StringuploadPath){

this.uploadPath=uploadPath;

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1