- 浏览: 541414 次
- 性别:
- 来自: 西安
文章分类
- 全部博客 (233)
- 设计模式 (1)
- WEBLOGIC (2)
- spring (2)
- struts (1)
- hibernate (8)
- SOA (11)
- j2ee (0)
- corba (0)
- linux (2)
- oracle (0)
- webService (17)
- javaMail (1)
- junit (3)
- java (45)
- 正则表达式 (7)
- java+xml (4)
- html (2)
- javaScript (6)
- ajax (1)
- mysql (0)
- eclipse (2)
- eclipse插件开发 (3)
- 软件工程 (5)
- ant (6)
- 开源包 (6)
- 学习网站 (7)
- Struts2 (18)
- JSP (1)
- 持续集成 (4)
- FreeMaker (6)
- 工作项目点点 (4)
- Maven2 (6)
- JQuery (1)
- 日志记录 (9)
- 工作流 (4)
- BPEL (1)
- extJs (1)
- 组件 (1)
- OSGI (10)
- ESB总线学习 (1)
- 错误解决 (2)
- JMX (3)
- 网络知识 (1)
最新评论
-
duanlongk:
这个问题解决了么?
java.lang.NoClassDefFoundError: org/apache/tuscany -
sotrip:
从上面结果来看,HelloWorld.class是由虚拟机的内 ...
如何实现自己的classloader -
zengsir2008:
哎,不太明白。。。。
OSGI DS 实例 -
ralfsumahe:
...
使用XFire开发Web Service客户端完整入门教程 -
liuqiao_0702:
...
osgi spring hibernate =
1.UploadAction.java
package lee;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class UploadAction extends ActionSupport {
private String title;
private File upload;
private String uploadContentType;
private String uploadFileName;
//接爱依赖注入的属性
private String savePath;
private String allowTypes;
public String getSavePath() {
return ServletActionContext.getRequest().getRealPath(savePath);
}
//接受依赖注入的方法
public void setSavePath(String savePath) {
this.savePath = savePath;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public File getUpload() {
return upload;
}
public void setUpload(File upload) {
this.upload = upload;
}
public String getUploadContentType() {
return uploadContentType;
}
public void setUploadContentType(String uploadContentType) {
this.uploadContentType = uploadContentType;
}
public String getUploadFileName() {
return uploadFileName;
}
public void setUploadFileName(String uploadFileName) {
this.uploadFileName = uploadFileName;
}
public String getAllowTypes() {
return allowTypes;
}
public void setAllowTypes(String allowTypes) {
this.allowTypes = allowTypes;
}
//过滤方法
public String filterType(String[] types){
String fileType=this.getUploadContentType();
for(String type:types){
if(type.equals(fileType)){
return null;
}
}
return INPUT;
}
public String execute()throws Exception{
String filterResult=filterType(this.getAllowTypes().split(","));
if(filterResult!=null){
ActionContext.getContext().put("typeError", "您要上传的文件类型不正确");
return filterResult;
}
System.out.println("文件大小---------------"+this.getUpload().length());
//以服务器的文件保存地址和原文件名建立上传文件输出流
FileOutputStream fos=new FileOutputStream(this.getSavePath()+"\\"+this.getUploadFileName());
FileInputStream fis=new FileInputStream(this.getUpload());
byte[] buffer=new byte[1024];
int len=0;
while((len=fis.read(buffer))>0){
fos.write(buffer,0,len);
}
return SUCCESS;
}
}
2.struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.custom.i18n.resources" value="globalMessages"/>
<constant name="struts.i18n.encoding" value="GBK"/>
<package name="upload" extends="struts-default">
<action name="upload" class="lee.UploadAction">
<param name="allowTypes">image/bmp,image/png,image/gif,image/jpeg</param>
<param name="savePath">/upload</param>
<result name="input">/upload.jsp</result>
<result>/succ.jsp</result>
</action>
</package>
</struts>
3.upload.jsp
<%@ page language="java" contentType="text/html; charset=GBK"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK" />
<title>利用拦截器实现文件过滤</title>
</head>
<body>
${requestScope.typeError}
<form action="upload.action" method="post" enctype="multipart/form-data">
文件标题:<input type="text" name="title" /><br>
选择文件:<input type="file" name="upload" /><br>
<input value="上传" type="submit" />
</form>
</body>
</html>
4.succ.jsp
<%@ page language="java" contentType="text/html;charset=GBK"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>上传成功!</title>
</head>
<body>
上传成功!<br>
文件标题:<s:property value="+ title"/>
文件为:<img src="<s:property value="'upload/' + uploadFileName"/>"/><br>
</body>
</html>
发表评论
-
Struts2中获取HttpServletRequest,HttpSession
2009-03-13 13:42 3560在没有使用Struts2之前,都习惯使用HttpServlet ... -
文件上传的原理:
2008-11-07 10:24 3343文件上传的原理: 表单元素的enctype属性指定的是表单 ... -
struts拦截器的使用
2008-11-07 10:13 1250http://www.java3z.com/cwbwebhom ... -
struts2与Servlet耦合
2008-11-07 10:07 1510============================= ... -
struts2中的struts.properties
2008-11-07 10:05 936struts.action.extension ... -
ActionContext和ServletActionContext区别
2008-11-07 10:03 5256ActionContextxwork框架的ActionCon ... -
struts2中的OGNL
2008-11-07 10:01 1029本人是一个EL(Expression Language,以下译 ... -
struts2简介
2008-11-07 09:43 1029• Struts 2 Action类可以实 ... -
用类代替资源文件
2008-11-01 15:13 9921 Hello.java package local;imp ... -
java国际化
2008-11-01 14:40 1116package local;import java.util. ... -
struts 主要配置文件摘要
2008-10-31 18:08 1159struts.properties 放在src下 ... -
struts2拦截器(简单)
2008-10-28 15:19 8901.LoginAction.java package le ... -
动态代理proxy
2008-10-28 14:36 8841.Dog.java package com.proxy ... -
struts2 下载
2008-10-28 11:21 944本实例下载.详见附件 -
Struts2实现文件上传多个实例...
2008-10-28 10:33 18711.UploadAction.java package ... -
struts2自动实现过滤
2008-10-27 17:35 1156只需在struts.xml 改写为: <?xml v ... -
Struts2实现文件上传实例...
2008-10-27 17:19 56271.UploadAction.java package l ...
相关推荐
本实例展示了如何在Struts2环境中实现几个关键功能:自定义过滤器、文件上传下载以及用户登录功能。这些功能是任何Web应用程序的基础组成部分,理解和掌握它们对于提升Web开发技能至关重要。 首先,我们来探讨...
- **web.xml**:在Web应用中,通常需要配置过滤器`FilterDispatcher`或`StrutsPrepareAndExecuteFilter`来启动Struts2。 3. **Struts2的生命周期** - 用户发起HTTP请求。 - Struts2 Filter捕获请求,解析请求...
Struts2的设计思路和工作流程与Struts1.x有很大的区别,这使得深入理解其源代码变得至关重要。 在分析Struts2的源代码之前,你需要首先获取Struts2的源代码,可以通过访问...
在"Struts2 拦截器过滤方法(二十八)"这个主题中,我们将深入探讨Struts2拦截器的工作原理、如何创建自定义拦截器以及它们在实际应用中的作用。 首先,拦截器是基于Java的动态代理机制实现的,它们在Action执行...
3. **Interceptor拦截器**:这是Struts2的一个重要特性,它可以像过滤器一样在Action执行前后插入自定义逻辑。例如,可以使用拦截器实现权限验证、日志记录、性能监控等功能。Struts2内置了一些常用的拦截器,如...
在Struts2中,拦截器是实现业务逻辑控制和增强功能的重要机制,它们扮演着类似于AOP(面向切面编程)的角色,允许在动作执行前后插入自定义逻辑。在这个“Struts2拦截器实现权限控制demo”中,我们将深入探讨如何...
3. **配置文件**:例如web.xml,这是Servlet容器的配置文件,通常会包含Struts2的过滤器配置。 4. **测试代码**:可能包含JUnit测试用例,帮助理解Action的正确行为和预期结果。 5. **文档**:可能包括开发者指南...
2. **StrutsPrepareAndExecuteFilter**: 从Struts2.2开始,FilterDispatcher被这个新的过滤器替代,它整合了准备和执行两个阶段,提高了性能。 3. **ActionContext**: 它在请求处理过程中起着重要作用,存储了请求...
标题“struts代码”及描述“不错的struts代码,可以使新手上路的必经之道”指向了一段关于Struts框架使用的代码示例,特别关注于Struts2实现多文件上传和下载的功能。这段代码对于初学者而言是宝贵的资源,能够帮助...
在实现原理上,Struts2 采用了一个基于过滤器(Filter)的请求处理机制。当用户发起一个HTTP请求时,请求首先会被Struts2的过滤器捕获,然后过滤器会根据配置文件(struts.xml)中的映射规则,将请求分派给相应的...
在Struts2中,可以通过实现`Filter`接口或者继承`FilterDispatcher`类来自定义过滤器。在这个过滤器的`doFilter`方法中,我们可以检查请求是否带有自动登录相关的Cookie。如果找到该Cookie,就从Cookie中解析出用户...
在Struts2中,拦截器可以看作是Action执行前后的过滤器,通过定义拦截器栈,我们可以实现如登录检查、权限验证等功能。例如,我们可以创建一个自定义的权限拦截器,确保只有已登录用户才能执行某些Action。 ```xml ...
标题中的“过滤器 Struts2全局变量 action转化do”可能指的是Struts2框架中的ActionMapping和FilterDispatcher配置,以及全局结果(Global Results)的概念。 1. **过滤器(Filter)**:在Java Web开发中,过滤器是...
在这个场景中,我们将探讨如何使用Struts2拦截器来实现输入数据的过滤,特别是去除前后空格。 首先,我们需要理解拦截器的工作原理。在Struts2中,拦截器是基于责任链模式设计的,它们按照配置的顺序形成一个链条,...
### Struts2 实现分页代码详解 #### 一、背景与目的 在Web应用程序的开发过程中,数据分页是一项非常重要的功能。特别是在处理大量数据时,为了提高用户体验及减轻服务器压力,通常需要将数据分成若干个小部分进行...
在Struts2中,可以通过拦截器和过滤器实现这一功能。拦截器可以在动作执行前检查会话中的登录信息,如果发现用户未登录,可以重定向到登录页面。过滤器则可以在请求进入应用之前检查请求路径,防止未经认证的用户...
1. **过滤器(Filter)设计模式**:Struts2采用Servlet容器中的过滤器模式作为入口点,这使得Struts2可以被部署到任何支持Servlet规范的Web容器中。 2. **动态代理**:Struts2使用动态代理技术实现了AOP(面向切面编程)...
Struts权限过滤器是Java Web开发中用于控制用户访问权限的关键组件,主要应用于基于Struts 2框架的应用程序。...理解过滤器的工作原理并掌握其配置和实现方法,是提升Struts 2应用安全性不可或缺的一部分。