实验六 Struts2开发二Word格式文档下载.docx
- 文档编号:20007498
- 上传时间:2023-01-15
- 格式:DOCX
- 页数:15
- 大小:52.11KB
实验六 Struts2开发二Word格式文档下载.docx
《实验六 Struts2开发二Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《实验六 Struts2开发二Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
{
privateStringusername;
privateStringpassword;
//username的setter和getter方法
publicvoidsetUsername(Stringusername)
{
this.username=username;
}
publicStringgetUsername()
returnusername;
//password的setter和getter方法
publicvoidsetPassword(Stringpassword)
this.password=password;
publicStringgetPassword()
returnpassword;
publicStringexecute()throwsException
System.out.println("
进入execute方法执行体.........."
);
Thread.sleep(1500);
if(getUsername().equals("
SE"
)
&
&
getPassword().equals("
student"
))
{
returnSUCCESS;
}
else
returnERROR;
}
(4)创建包org.crazy.app.interceptor包,其下建立拦截器类SimpleInterceptor。
用于拦截LoginAction,计算该Action的开始执行时刻、结束执行时刻和执行时间。
其代码如下:
packageorg.crazyit.app.interceptor;
importcom.opensymphony.xwork2.ActionInvocation;
importcom.opensymphony.xwork2.interceptor.AbstractInterceptor;
importjava.util.*;
importorg.crazyit.app.action.*;
publicclassSimpleInterceptor
extendsAbstractInterceptor
//简单拦截器的名字
privateStringname;
//为该简单拦截器设置名字的setter方法
publicvoidsetName(Stringname)
this.name=name;
publicStringintercept(ActionInvocationinvocation)
throwsException
//取得被拦截的Action实例
LoginActionaction=(LoginAction)invocation.getAction();
//打印执行开始的实现
System.out.println(name+"
拦截器的动作---------"
+
"
开始执行登录Action的时间为:
"
+newDate());
//取得开始执行Action的时间
longstart=System.currentTimeMillis();
//执行该拦截器的后一个拦截器
//如果该拦截器后没有其他拦截器,则直接执行Action的execute方法
Stringresult=invocation.invoke();
//打印执行结束的时间
执行完登录Action的时间为:
longend=System.currentTimeMillis();
执行完该Action的事件为"
+(end-start)+"
毫秒"
returnresult;
(5)编写配置文件struts.xml,该文件用于配置拦截器、配置Action和引用拦截器。
代码如下:
<
?
xmlversion="
1.0"
encoding="
GBK"
>
!
DOCTYPEstrutsPUBLIC
"
-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.1.7//EN"
http:
//struts.apache.org/dtds/struts-2.1.7.dtd"
struts>
<
--通过常量配置Struts2的国际化资源信息-->
constantname="
struts.custom.i18n.resources"
value="
mess"
/>
--通过常量配置Struts2所使用的解码集-->
struts.i18n.encoding"
--配置本系统所使用的包-->
packagename="
lee"
extends="
struts-default"
<
--应用所需使用的拦截器都在该元素下配置-->
interceptors>
<
--配置mysimple拦截器-->
interceptorname="
mysimple"
class="
org.crazyit.app.interceptor.SimpleInterceptor"
<
--为拦截器指定参数值-->
paramname="
name"
简单拦截器<
/param>
/interceptor>
/interceptors>
actionname="
loginPro"
class="
org.crazyit.app.action.LoginAction"
resultname="
error"
/error.jsp<
/result>
success"
/welcome.jsp<
--配置系统的默认拦截器,由于为Action指定了特定的拦截器,因而默认拦截器将失效,必须手动设置-->
interceptor-refname="
defaultStack"
--应用自定义的mysimple拦截器-->
改名后的拦截器<
/interceptor-ref>
/action>
/package>
/struts>
(6)编写配置文件web.xml。
配置Struts2的核心过滤器。
web-appxmlns="
xmlns:
xsi="
//www.w3.org/2001/XMLSchema-instance"
xsi:
schemaLocation="
version="
3.0"
--定义Struts2的核心Filter-->
filter>
filter-name>
struts2<
/filter-name>
filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter<
/filter-class>
/filter>
--让Struts2的核心Filter拦截所有请求-->
filter-mapping>
url-pattern>
/*<
/url-pattern>
/filter-mapping>
/web-app>
(7)开发物理视图页面login.jsp,供用户输入用户名和密码,系统中默认用户名是SE、密码student。
%@pagelanguage="
java"
import="
java.util.*"
pageEncoding="
%>
%@taglibprefix="
s"
uri="
/struts-tags"
html>
head>
title>
登录页面<
/title>
/head>
body>
s:
formaction="
textfieldname="
username"
label="
用户名"
/s:
textfield>
br>
passwordname="
password"
密码"
password>
submitvalue="
登录"
form>
/body>
/html>
(8)开发物理视图welcome.jsp,显示登录成功信息。
DOCTYPEHTMLPUBLIC"
-//W3C//DTDHTML4.01Transitional//EN"
欢迎页面<
欢迎来到这里!
(9)开发物理视图error.jsp,显示没有正常登录的信息。
错误页面<
对不起,你的用户名或密码不正确。
(10)发布应用到Tomcat服务器,在浏览器中访问login.jsp页面,进行登录,并观察Tomcat服务器控制台窗口的显示信息。
注意:
Struts2应用程序,如果出现如下错误:
“严重ErrorfilterStart”,进一步发现是找不到StringUtil类,将commons-lang-2.5.jar复制到WEB_INF\lib即可。
(二)文件上传
(1)建立Web工程autoFilterFileUpload。
实现文件上传,并拦截文件大小、文件格式不符合要求的文件。
(2)建立org.crazyit.app.action包,在其中建立Action类UploadAction.java。
importcom.opensymphony.xwork2.Action;
importorg.apache.struts2.ServletActionContext;
importjava.io.File;
importjava.io.*;
publicclassUploadActionextendsActionSupport
//封装文件标题请求参数的属性
privateStringtitle;
//封装上传文件域的属性
privateFileupload;
//封装上传文件类型的属性
privateStringuploadContentType;
//封装上传文件名的属性
privateStringuploadFileName;
//直接在struts.xml文件中配置的属性
privateStringsavePath;
//接受struts.xml文件配置值的方法
publicvoidsetSavePath(Stringvalue)
this.savePath=value;
//返回上传文件的保存位置
privateStringgetSavePath()throwsException
returnServletActionContext.getServletContext()
.getRealPath(savePath);
//文件标题的setter和getter方法
publicvoidsetTitle(Stringtitle)
this.title=title;
publicStringgetTitle()
return(this.title);
//上传文件对应文件内容的setter和getter方法
publicvoidsetUpload(Fileupload)
this.upload=upload;
publicFilegetUpload()
return(this.upload);
//上传文件的文件类型的setter和getter方法
publicvoidsetUploadContentType(StringuploadContentType)
this.uploadContentType=uploadContentType;
publicStringgetUploadContentType()
return(this.uploadContentType);
//上传文件的文件名的setter和getter方法
publicvoidsetUploadFileName(StringuploadFileName)
this.uploadFileName=uploadFileName;
publicStringgetUploadFileName()
return(this.uploadFileName);
//以服务器的文件保存地址和原文件名建立上传文件输出流
FileOutputStreamfos=newFileOutputStream(getSavePath()
+"
\\"
+getUploadFileName());
FileInputStreamfis=newFileInputStream(getUpload());
byte[]buffer=newbyte[1024];
intlen=0;
while((len=fis.read(buffer))>
0)
fos.write(buffer,0,len);
fos.close();
returnSUCCESS;
(3)建立配置文件struts.xml。
--设置该应用使用的解码集-->
--配置处理文件上传的Action-->
uploadPro"
org.crazyit.app.action.UploadAction"
--配置fileUpload的拦截器-->
fileUpload"
--配置允许上传的文件类型-->
allowedTypes"
image/png
image/gif,image/jpg<
--配置允许上传的文件大小-->
maximumSize"
2000000000<
--配置系统默认的拦截器-->
--动态设置Action的属性值-->
savePath"
/uploadFiles<
--配置Struts2默认的视图页面-->
result>
/succ.jsp<
input"
/upload.jsp<
(4)编辑配置文件web.xml,其代码如下:
(5)建立物理视图页面upload.jsp,实现文件上传操作。
%@pagecontentType="
text/html;
charset=GBK"
language="
errorPage="
%>
DOCTYPEhtmlPUBLIC"
-//W3C//DTDXHTML1.0Transitional//EN"
//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
htmlxmlns="
//www.w3.org/1999/xhtm
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验六 Struts2开发二 实验 Struts2 开发