详解Java的Struts框架中上传文件和客户端验证的实现

yizhihongxing

详解Java的Struts框架中上传文件和客户端验证的实现

上传文件的实现

在 Struts 框架中,文件上传可以通过使用第三方库来实现,如:commons-fileupload 和 commons-io。

下面是文件上传的实现步骤:

  1. 导入文件上传相关的 jar 包:

commons-fileupload-x.x.jar
commons-io-x.x.jar

  1. 在 Struts.xml 配置文件中配置上传路径和文件大小:

xml
<constant name="struts.multipart.saveDir" value="/tmp"/>
<constant name="struts.multipart.maxSize" value="10000000000"/>

  1. 在 Action 类中编写文件上传的方法:

java
public String upload() {
HttpServletRequest request = ServletActionContext.getRequest();
File saveDir = new File("/tmp"); // 设置上传文件保存路径
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setRepository(saveDir);
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setSizeMax(10000000000L); // 设置上传文件最大大小为 10G
try {
List<FileItem> items = upload.parseRequest(request); // 获取所有的上传文件
for (FileItem item : items) {
if (!item.isFormField()) { // 如果是上传文件
String fileName = item.getName(); // 获取上传文件的文件名
if (StringUtils.isNotEmpty(fileName)) { // 如果文件名不为空
File uploadedFile = new File(saveDir, fileName);
item.write(uploadedFile); // 将上传的文件保存到指定路径中
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return SUCCESS; // 返回上传成功页面
}

  1. 在 JSP 页面中添加文件上传表单:

```html



```

客户端验证的实现

在 Struts 框架中,客户端验证可以通过使用第三方库来实现,如:jquery-validation。

下面是客户端验证的实现步骤:

  1. 导入 jquery-validation 和 jquery 库:

```html

```

  1. 在 JSP 页面中,添加需要验证的表单:

```html





```

  1. 在 JSP 页面中,添加客户端验证的 JS 代码:

```html

```

至此,上传文件和客户端验证的实现已经完成。

示例1

实现功能

该示例演示如何上传图片并在客户端验证表单。

实现步骤

  1. 创建 upload.jsp 页面,添加上传表单和客户端验证代码:

```html






```

  1. 创建 FileAction.java 类,添加文件上传的方法:

java
public String upload() {
HttpServletRequest request = ServletActionContext.getRequest();
File saveDir = new File("/tmp"); // 设置上传文件保存路径
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setRepository(saveDir);
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setSizeMax(10000000000L); // 设置上传文件最大大小为 10G
try {
List<FileItem> items = upload.parseRequest(request); // 获取所有的上传文件
for (FileItem item : items) {
if (!item.isFormField()) { // 如果是上传文件
String fileName = item.getName(); // 获取上传文件的文件名
if (StringUtils.isNotEmpty(fileName)) { // 如果文件名不为空
File uploadedFile = new File(saveDir, fileName);
item.write(uploadedFile); // 将上传的文件保存到指定路径中
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return SUCCESS; // 返回上传成功页面
}

  1. 在 Struts.xml 配置文件中添加上传文件的 Action 映射:

xml
<action name="file/upload" class="com.example.FileAction" method="upload">
<result name="success">/success.jsp</result>
</action>

  1. 运行项目,访问上传页面,并进行表单验证和文件上传。

示例2

实现功能

该示例演示如何使用 Struts 框架实现文件上传和客户端验证功能,并在成功上传文件后显示文件列表。

实现步骤

  1. 创建 upload.jsp 页面,添加上传表单和客户端验证代码:

```html






```

  1. 创建 FileAction.java 类,添加文件上传的方法:

java
public String upload() {
HttpServletRequest request = ServletActionContext.getRequest();
File saveDir = new File("/tmp"); // 设置上传文件保存路径
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setRepository(saveDir);
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setSizeMax(10000000000L); // 设置上传文件最大大小为 10G
try {
List<FileItem> items = upload.parseRequest(request); // 获取所有的上传文件
for (FileItem item : items) {
if (!item.isFormField()) { // 如果是上传文件
String fileName = item.getName(); // 获取上传文件的文件名
if (StringUtils.isNotEmpty(fileName)) { // 如果文件名不为空
File uploadedFile = new File(saveDir, fileName);
item.write(uploadedFile); // 将上传的文件保存到指定路径中
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return SUCCESS; // 返回上传成功页面
}

  1. 在 Struts.xml 配置文件中添加上传文件的 Action 映射:

xml
<action name="file/upload" class="com.example.FileAction" method="upload">
<result name="success">/list.jsp</result>
</action>

  1. 创建 list.jsp 页面,显示上传的文件列表:

```html

文件列表

    <% File[] files = new File("/tmp").listFiles(); %>
    <% if (files != null && files.length > 0) { %>
    <% for (File file : files) { %>

  • <%= file.getName() %>
  • <% } %>
    <% } else { %>

  • 暂无文件
  • <% } %>

```

  1. 运行项目,上传文件并成功显示文件列表。

至此,文件上传和客户端验证的实现已经完成。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Java的Struts框架中上传文件和客户端验证的实现 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • java计算两个日期之前的天数实例(排除节假日和周末)

    下面是详细讲解计算两个日期之间天数的攻略: 1. 计算基本思路 首先,获取两个日期的时间戳,可使用 java.util.Date 类的 getTime() 方法将日期转换为 Timestamp 形式。 然后,将两个日期之间的时间戳相减,得到两个日期之间的毫秒数差。 最后,将毫秒数差转换为天数,并排除掉节假日和周末。 2. 排除节假日和周末 排除掉节假日和周末…

    Java 2023年5月20日
    00
  • Scala文件操作示例代码讲解

    我们来详细讲解一下“Scala文件操作示例代码讲解”的完整攻略。 概述 在Scala程序中,文件操作是非常常见的操作。Scala提供了一些简单易用的API帮助我们在程序中进行文件操作。本攻略将会详细讲解如何在Scala程序中进行简单的文件操作,包括如何读取文件、写入文件、拷贝文件和删除文件。 读取文件 Scala的io包中提供了File类,可以用来表示文件或…

    Java 2023年5月20日
    00
  • Java定义栈结构,并实现入栈、出栈操作完整示例

    下面是完整的Java定义栈结构,并实现入栈、出栈操作攻略。 什么是栈 栈是一种“后进先出”(Last In First Out,LIFO)的数据结构,典型的例子是一个子弹夹或一个餐盘堆叠。栈结构在计算机科学中有广泛的应用,例如在函数调用栈、表达式求值、语法分析等领域都有着重要的作用。 Java定义栈结构 在Java中,可以使用数组或链表来实现栈结构。下面是使…

    Java 2023年5月19日
    00
  • 什么是软引用?

    软引用是一个在Java中用于动态管理内存的概念。它是一种弱化的引用,被设计成用于指向那些后备缓存数据的对象。Java垃圾回收器通常会尽可能长的保留软引用指向的对象,但当系统内存不足时,垃圾回收器会自动释放这些软引用指向的对象。 常见的使用场景包括图片缓存、数据库缓存等,使用软引用可以更灵活地管理缓存数据,同时也可以防止OOM(Out of Memory)错误…

    Java 2023年5月10日
    00
  • Java Http请求传json数据乱码问题的解决

    下面是关于Java Http请求传json数据乱码问题的解决攻略。 问题描述 在Java的Http请求中,当请求中传递json数据时,有时候会出现乱码问题,导致接收方无法正确解析数据,这是因为json数据中可能包含着非ASCII字符,而HTTP请求使用的是ISO-8859-1编码格式,无法正确解析含有非ASCII字符的数据。 解决方案 为了解决这个问题,我们…

    Java 2023年5月26日
    00
  • java+mysql实现登录和注册功能

    准备工作 在实现登录和注册功能之前,需要确保Java和MySQL都已经安装好。同时,还需要使用Java的一些开发环境,比如Eclipse或者IntelliJ IDEA,以及MySQL的一些管理工具,如phpMyAdmin或者Navicat。 创建数据库和数据表 首先,需要在MySQL中创建一个名为“mydb”的数据库。可以通过以下命令来实现: CREATE …

    Java 2023年5月19日
    00
  • Java Spring项目国际化(i18n)详细方法与实例

    让我们来详细讲解一下“Java Spring项目国际化(i18n)详细方法与实例”的完整攻略。 什么是国际化(i18n) 国际化(i18n)指的是将程序中的可变文本提取出来,以便能够在不同的地区和语言中进行翻译。国际化是软件开发中非常重要的一环,它可以帮助你更好的定位产品,并更好的满足用户的需求。Java Spring作为一个web框架,提供了一些方便易用的…

    Java 2023年5月19日
    00
  • J2EE验证码图片如何生成和点击刷新验证码

    生成验证码图片是常见的防止机器恶意攻击的安全策略之一,J2EE技术栈中也针对这个问题提供了解决方案。下面,我将为大家详细讲解如何生成验证码图片并实现点击刷新验证码的功能。 一、生成验证码图片 生成验证码图片一般可以借助第三方库或自己编写代码实现。下面我们来讲解一种使用第三方库生成验证码图片的方法:使用Kaptcha。 1.1 引入Kaptcha依赖 在Mav…

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部