`
lovehui0228
  • 浏览: 101047 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Struts2验证框架验证文件后缀名

阅读更多

做好了文件上传,当然也要做下对上传文件的校验了,我也不太清楚struts2有没有现成的验证文件后缀的方法,然后就自己写了一个,也蛮简单的~~~

 

在struts.xml同级目录下的validators.xml中加上一行配置文件

 

     <validator name="postfixcheck" class="com.validators.PostfixCheck"/>

 

然后看PostfixCheck类代码

 

package com.validators;

import com.opensymphony.xwork2.validator.ValidationException;
import com.opensymphony.xwork2.validator.validators.FieldValidatorSupport;

public class PostfixCheck extends FieldValidatorSupport{
	
	String validPostfix;

	public String getValidPostfix() {
		return validPostfix;
	}

	public void setValidPostfix(String validPostfix) {
		this.validPostfix = validPostfix;
	}

	public void validate(Object object) throws ValidationException {	
		
		String fieldName = getFieldName();
		String fileName = (String)this.getFieldValue(fieldName, object);
		
		System.out.println(fileName);
		String postfix = getExtention(fileName); 
		boolean valid = checkValid(validPostfix, postfix);
		
		if(valid != true)
		{
			addFieldError(fieldName, object);
		}
    }
	
	private static String getExtention(String fileName)  
    {
    	 int pos = fileName.lastIndexOf(".");
    	 return fileName.substring(pos + 1);
    } 
	
	private static boolean checkValid(String validPostfix, String post)
	{
		boolean valid = false;
		
		for(int i = 0, j = 0, k = 0;i < validPostfix.length();i ++)
		{	
			if(validPostfix.charAt(k) != ',' && k != validPostfix.length() - 1)
			{
				k++;
			}
			else
			{
				String postfix;
				if(k == validPostfix.length() - 1)
				{
					postfix = validPostfix.substring(j, k + 1);
				}
				else
				{
					postfix = validPostfix.substring(j, k);
				}
				if(postfix.equals(post))
				{
					valid = true;
					break;
				}
				else
				{
					j = k;
					j ++;
					k ++;
				}
			}
		}
		return valid;
	}
	
	public static void main(String[] args)
	{
		System.out.println(checkValid("jpg,gif,jpfg,jpeg", "exe"));
	}
}

 

 

最后当然是添加相应的验证文件了,依然是 Action名-validation.xml的格式

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC 
	"-//OpenSymphonyGroup//XWorkValidator1.0.2//EN" 
	"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">

	<validators>
    	
    	<field name="fileName">
        	<field-validator type="postfixcheck">
        		<param name="validPostfix">wma,mp3</param>
            	<message>文件格式错误</message>
        	</field-validator>
    	</field>

	</validators>      

 

就这么简单,应该蛮好懂的~~~

0
0
分享到:
评论

相关推荐

    struts2实现的文件上传(带文件类型和大小大小验证的)

    在这个"struts2实现的文件上传(带文件类型和大小验证的)"示例中,我们将深入探讨如何在Struts2中实现这一功能。 首先,我们需要在Struts2的配置文件(struts.xml)中添加一个或多个action配置,用于处理文件上传...

    struts入门及验证框架及国际化

    在这里,我们将深入探讨Struts的基础知识、Validator验证框架以及国际化的实现。 **一、Struts框架基础** 1. **MVC模式**:Struts是基于MVC设计模式的,将业务逻辑、数据和用户界面分离,使得开发者可以独立地修改...

    struts1实现文件上传

    - **文件格式检查**:通过字符串操作判断文件后缀名是否属于预设的合法格式列表,如果不符合,则返回错误提示。 - **文件大小计算与显示**:根据文件的实际大小,将其转换为更易读的单位(如KB或MB),并格式化...

    struts2自学文档

    - **拦截器**:Struts2的核心之一,通过拦截器可以实现诸如文件上传、输入验证等功能。 - **处理与分配流程**: - **前端请求**:用户发起的HTTP请求。 - **StrutsPrepareAndExecuteFilter**:处理请求的第一道...

    java struts如何隐藏提交后缀.action, .do.zip

    在Struts的配置文件(如struts-config.xml或struts2的struts.xml)中,可以定义动作映射来隐藏请求的后缀。例如,对于Struts1,可以将`&lt;forward&gt;`标签的路径设置为不包含`.action`的URL;对于Struts2,可以使用`...

    struts2登陆案例

    Struts2是一个强大的MVC(Model-View-Controller)框架,广泛应用于Java Web开发中,为开发者提供了构建可维护、可扩展的Web应用程序的结构。本案例主要关注如何使用Struts2实现一个基本的登录功能。 首先,我们...

    Struts2漏洞利用工具2017版.exe

    在标签“ST2”中,ST2即Struts2的缩写,进一步确认了该文件与Struts2框架及其相关的安全问题相关联。 至于压缩包中的"logs"文件,这通常表示日志文件。在安全工具中,日志文件会记录扫描过程、发现的漏洞以及任何...

    struts2学习笔记

    Struts2是一个流行的Java web应用程序框架,用于构建MVC(模型-视图-控制器)架构的应用。在深入探讨Struts2的学习笔记之前,先来理解它的核心概念。 **1. Struts2依赖的JAR包** Struts2的运行离不开一系列的依赖库...

    struts2 详解文档

    Struts2是一个强大的Java EE应用程序框架,主要用于构建Web应用程序,特别是MVC(Model-View-Controller)架构的应用。它的核心是Action,通过Action类来处理用户的请求并返回响应。本详解文档将涵盖从Struts2的基本...

    Apache Struts 2 Web Application Development

    ### Apache Struts 2 Web Application Development ...通过本书的学习,读者不仅能够掌握Struts 2 的基本用法,还能深入了解其内部原理及最佳实践,为成为一名优秀的Java Web开发者打下坚实的基础。

    实战struts2_用户登录

    创建一个名为`Logon`的类,继承自`ActionSupport`,这是Struts2提供的基础Action类,包含了一些内置的验证和国际化支持。在`execute()`方法中,我们进行简单的验证:如果用户名或密码为空,则返回`INPUT`,否则返回...

    Struts2环境.doc

    Struts2是一个流行的Java Web应用程序框架,用于构建MVC(模型-视图-控制器)架构的应用。它简化了开发过程,提供了丰富的插件和动作,以及强大的表单验证和结果映射功能。以下是对搭建Struts2环境的详细步骤的说明...

    struts2 上传图片限制.

    #### 三、Struts2文件上传配置与实现 **1. 创建上传表单** 为了实现在Struts2中上传图片的功能,首先需要创建一个HTML表单用于文件的选择和提交。示例代码如下: ```html &lt;font color="red"&gt;&lt;s:fielderror /&gt;...

    struts2个人整理文档

    4. `&lt;constant&gt;` 元素:用于设置Struts2的全局常量,例如修改默认的Action后缀名,这里将Action后缀设置为".do"。 二、Web应用配置 1. `web.xml` 文件:是Servlet容器的部署描述符,配置了过滤器和监听器来启动和...

    浪曦struts2视频源码.pdf

    总结来说,文件内容涉及了Struts2框架的Action映射、业务逻辑处理、验证机制、结果页面跳转以及JSP页面与Struts2之间的交互。这些知识点在Web应用开发中具有广泛的运用,并且是Java Web开发工程师必须掌握的核心技能...

    struts2总结

    4. **`Struts.action.extension`**:设定Struts2处理的请求后缀,默认为`action`,可以设置多个后缀,如`json`、`xml`等。 5. **`Struts.enable.DynamicMethodInvocation`**:控制Struts2是否支持动态方法调用,...

    ajax 无刷新验证

    2. **Struts2框架**: Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架。在这里,它被用来处理用户请求并返回相应的响应。Struts2提供了Action类,用户可以自定义Action类来处理业务...

    Struts终极漏洞利用工具教程.rar

    "struts普通版.rar"可能是一个没有应用安全更新的Struts 2框架的版本,用于对比和研究漏洞的存在。在安全环境中,这种行为是禁止的,因为这可能违反法律,或者无意中为攻击者提供了练习平台。 "Struts终极漏洞利用...

    三大框架ssh题库.docx

    使用struts2文件上传时,前台&lt;input&gt;name属性为myfile,则关于后台,下列说法错误的是(D)。** - **后台File类型属性命名应为file**,而不是其他形式,因为Struts2框架约定以file开头的参数作为文件上传处理。 ...

    Java知识点总结框架篇

    根据请求的后缀名(默认为.action),判断是否需要进一步处理。 3. **分发处理**:`FilterDispatcher`根据`struts.xml`配置,找到与请求匹配的Action,并调用其`execute`方法。 4. **执行业务逻辑**:Action对象...

Global site tag (gtag.js) - Google Analytics