使用Servlet上传多张图片——访问提示

  上传文件,我们在做项目中补课避免的,有时候我们需要上传单张或者单个文件,但是有时候我们就需要上传多个文件或者多张图片了,我们这里以多张(4张)图片为例,再多也都是一样的概念,接下来先看看我们的运行结果:

   首先是表单,我们在上传图片的同时,难免会顺便添加一些描述,比如说名称呢,价格呢等等



我们按照随便填的形式进行填一下:


如我们所料,上传成功

为了看看是不是真的成功了,我们就看看tomcat里面的upload下面有没有我们上传的这几张图片,果不其然,一张都不少


  现在图片已经上传成功,那么接下来我们看看是怎么实现的呢?

   先来创建个数据库:uoloadFileDB,我这里使用的是sql server的,数据库脚本如下:

CREATE TABLE [dbo].[ProductInfo]([productId] [int] IDENTITY(1,1) NOT NULL,[productName] [varchar](50) NULL,[price] [float] NULL,[details] [varchar](50) NULL,[stock] [int] NULL,[fileName] [varchar](50) NULL,[fileName_1] [varchar](50) NULL,[fileName_2] [varchar](50) NULL,[fileName_3] [varchar](50) NULL,CONSTRAINT [PK_ProductInfo] PRIMARY KEY CLUSTERED 
([productId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]


就只有一张表就行了,数据库表已经有了,那么我们就在myeclipse里面创建个web项目吧:

项目的目录结构如下:



jar包文件如下:


那么接下来我们就上源码,看了源码之后大家就知道是怎么实现的了

实体层:

ProductInfo.java


Dao层:

BaseDao.java

ProductInfoDao.java

ProductInfoDaoImpl.java


Service层:

ProductInfoService.java

ProductInfoServiceImpl.java


Servlet层:

ProductServlet.java


前台页面层:

index.jsp


web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"><display-name></display-name><servlet><servlet-name>ProductServlet</servlet-name><servlet-class>orz.treeSquirrels.web.ProductServlet</servlet-class></servlet><servlet-mapping><servlet-name>ProductServlet</servlet-name><url-pattern>/ProductServlet</url-pattern></servlet-mapping>	<welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list>
</web-app>

看不明白的欢迎留言,看到之后会及时回复的!


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/326968.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云计算设计模式(六)——命令和查询职责分离(CQRS)模式

隔离&#xff0c;通过使用不同的接口&#xff0c;从操作读取数据更新数据的操作。这种模式可以最大限度地提高性能&#xff0c;可扩展性和安全性;支持系统在通过较高的灵活性&#xff0c;时间的演变;防止更新命令&#xff0c;从造成合并在域级别上的冲突。 背景和问题 在传统的…

Intellij IDEA 那些隐藏好用的小技巧

转载自 Intellij IDEA 那些隐藏好用的小技巧 概述 之前写了一篇介绍IntellIJ IDEA的文章《 Intellij Idea非常6的10个姿势 》&#xff0c;主要是列出一些平时大家可能没用过或者没怎么用&#xff0c;但是又非常好用的IntellIJ IDEA小技巧。由于篇幅原因&#xff0c;只是列出了…

约瑟夫(环)问题(Josephu)(单向环形链表)

问题描述 代码实现 package com.atguigu.linkedlist;import com.sun.org.apache.bcel.internal.generic.NEW;/*** 创建人 wdl* 创建时间 2021/3/19* 描述*/ public class Josepfu {public static void main(String[] args) {//测试一把看看构建的环形链表和遍历是否正确Circle…

vue+vscode+nodejs 开发环境搭建

参考文献 vuevscodenodejs 开发环境搭建 - Desperador - 博客园 nodejs 指定全局安装路径和缓存路径 - Curedfisher - 博客园 安装配置nodejs并创建Vue项目 vscode下载地址&#xff1a; Documentation for Visual Studio Code nodejs安装配置 1.下载 地址&#xff1a; …

用数组模拟栈

思路分析 代码实现 package com.atguigu.stack;import com.sun.org.apache.xml.internal.dtm.ref.sax2dtm.SAX2DTM2;import java.net.ServerSocket; import java.util.ArrayList; import java.util.Scanner; import java.util.Stack;/*** 创建人 wdl* 创建时间 2021/3/20* 描述…

Redis PK Memcached,哪个更牛叉

转载自 Redis PK Memcached&#xff0c;哪个更牛叉 说到 redis 就会联想到 memcached&#xff0c;反之亦然。了解过两者的同学有那么个大致的印象&#xff1a; redis 与 memcached 相比&#xff0c;不仅支持简单的 key-value 数据类型&#xff0c;同时还提供 list,set,zset,ha…

CoreCLR源码探索(三) GC内存分配器的内部实现

在前一篇中我讲解了new是怎么工作的, 但是却一笔跳过了内存分配相关的部分.在这一篇中我将详细讲解GC内存分配器的内部实现.在看这一篇之前请必须先看完微软BOTR文档中的"Garbage Collection Design",原文地址是: https://github.com/dotnet/coreclr/blob/master/Doc…

vue学习1

P1 01_Vue学习目标03:50 P2 02_前端知识体系16:27 P3 03_前后端分离的演变史17:13 P4 04_前端MVVM模式09:31 P5 05_Vue是什么07:23 P6 06_第一个Vue应用程序07:06 P7 07_Vue实例声明周期05:35 P8 08_条件渲染06:59 P9 09_列表渲染03:34 P10 10_事件处理03:44…

Tomcat 的 Server 文件配置详解

转载自 Tomcat 的 Server 文件配置详解 前言 Tomcat隶属于Apache基金会&#xff0c;是开源的轻量级Web应用服务器&#xff0c;使用非常广泛。server.xml是Tomcat中最重要的配置文件&#xff0c;server.xml的每一个元素都对应了Tomcat中的一个组件&#xff1b;通过对xml文件中…

.Net基础体系和跨框架开发普及

.net体系经过十几年发展&#xff0c;发生了很多变化。特别是在最近两年&#xff0c;随着开源和跨平台的发展&#xff0c;衍生出很多概念&#xff0c;像标准库&#xff0c;可移植库&#xff0c;.Net Core等&#xff0c;相信有不少同学对他们之间的关系是有一些困惑的&#xff0c…

‘1‘ VS 1

‘1’-481; 把字符转换为数字&#xff0c;利用ASCALL表

一次恐怖的 Java 内存泄漏排查实战

转载自 一次恐怖的 Java 内存泄漏排查实战 最近在看《深入理解Java虚拟机&#xff1a;JVM高级特性与最佳实践》&#xff08;第二版&#xff09;这本书&#xff0c;理论实践结合&#xff0c;深入浅出&#xff0c;强烈推荐给大家。 这两天对JVM内容进行了一个讨论&#xff0c;…

ASP.NET与ASP.NET Core用户验证Cookie并存解决方案

在你将现有的用户登录&#xff08;Sign In&#xff09;站点从ASP.NET迁移至ASP.NET Core时&#xff0c;你将面临这样一个问题——如何让ASP.NET与ASP.NET Core用户验证Cookie并存&#xff0c;让ASP.NET应用与ASP.NET Core应用分别使用各自的Cookie&#xff1f;因为ASP.NET用的是…

vue学习2

P1 01_Vue学习目标03:50 P2 02_前端知识体系16:27 P3 03_前后端分离的演变史17:13 P4 04_前端MVVM模式09:31 P5 05_Vue是什么07:23 P6 06_第一个Vue应用程序07:06 P7 07_Vue实例声明周期05:35 P8 08_条件渲染06:59 P9 09_列表渲染03:34 P10 10_事件处理03:44…

一道非常棘手的 Java 面试题:i++ 是线程安全的吗

转载自 一道非常棘手的 Java 面试题&#xff1a;i 是线程安全的吗 i 是线程安全的吗&#xff1f; 相信很多中高级的 Java 面试者都遇到过这个问题&#xff0c;很多对这个不是很清楚的肯定是一脸蒙逼。内心肯定还在质疑&#xff0c;i 居然还有线程安全问题&#xff1f;只能说…

Microsoft规划了.NET的未来发展

Microsoft的Mads Torgersen分享了.NET语言家族的更新策略&#xff0c;给出了对公司未来的功能考虑的深刻理解。虽然C#、VB.NET和F#的开发是通过GitHub公开进行的&#xff0c;但是Microsoft的长远规划却经常是保密的。公众如果对Microsoft目前思考问题的方式有相关的意见和建议的…

逆波兰计算器实现

逆波兰计算器 思路分析 代码实现 package com.atguigu.stack;import java.security.AlgorithmConstraints; import java.util.ArrayList; import java.util.List; import java.util.Stack;/*** 创建人 wdl* 创建时间 2021/3/20* 描述*/ public class PolandNotation {public …

逆波兰表达式中缀表达式转换为后缀表达式

中缀表达式转换为后缀表达式 思路分析 代码实现 package com.atguigu.stack;import javax.swing.plaf.nimbus.State; import java.security.AlgorithmConstraints; import java.util.ArrayList; import java.util.List; import java.util.Stack;/*** 创建人 wdl* 创建时间 20…