servlet上传练习

一.

From表单增加enctype属性,二进制格式上传

增加这个属性后,后台无法通过request.getparameter()来取值,也就无法通过得到

OP值来执行switch的判断操作

因此通过Stuservlet无法完成上传文件操作

二.上传文件通过第三方jar包完成,主要有三类

  1. apache的commons-fileupload

主流方式,菜鸟教程也是这个,上传文件蛮方便的,但是取回其他input感觉麻烦,主要是我太菜,没能摸透吧。

  1. O‘Reilly的cos

大概看了下Demo,感觉也不方便

  1. jspsmart的SmartUpload

这个听说效率不高,但是贼方便,取值,上传文件贼轻松啊兄弟们,我们就用它了,它缺点是对中文处理不好,内部编码处理是gbk,我们需要改一下页面编码即可,放心,不影响你们数据库的编码,只是前端改gbk,当然你也可以改jar包源码,百度一下就行,好像也有改好的jar包,你们直接下载用也行,CSDN的收费,他妈的。

  1. 12种你们可以试一下,我就不试了,见好就收

三,不BB,上硬菜,上面说了无法在Stuservlet中进行文件上传操作,因此再写一个

  1. 在你的servlet文件下新建一个UploadServlet.java

代码参考UploadServlet.java

  1. 几个重点说一下

此处为数据库的插入,是不是感觉取值很方便,直接就取回来了,牛逼。

Xh1是我自己的命名方式,你们改成你们自己的xh就行。

此处的for循环作用是处理多个上传文件用的,我直接复制的Demo,没有去掉,因为我们一次只上传一张照片,所以此处的for循环是可以去掉不用的,加上也没影响

重点:saveAs()执行文件写入操作,

前面的img是你的存储文件夹的相对位置,你们根据自己的需求修改

后面的是文件名,命名规则就按我这个来,xh1改成xh即可

  1. servlet写完后去配置XML文件

  1. 去修改addStu.jsp的action这样点击增加按钮时,便不会再去执行Stuservlet了,而是现在的uploadservlet

  1. 去修改stuShow.jsp

去相对地址把图片取回来即可,宽度改成50左右,否则会占满屏幕

四 随便补充两句

  1. 改gbk编码

这么改一下就行,第一行那个其实可以不用改,我觉得,不过我没试,就全改了

只要改addStu.jsp 即可,其他的不用改。

  1. 如果按照这个步骤操作完了,还是没成功,可以刷新一下容器,就是重启或者更新一下服务器

原文地址:https://www.cnblogs.com/xiaozao/p/9733329.html

时间: 2024-10-23 18:26:28

servlet上传练习的相关文章

使用Servlet上传文件

使用浏览器向服务器上传文件其本质是打开了一个长连接并通过TCP方式传输数据.而需要的动作是客户端在表单中使用file域,并指定该file域的name值,然后在form中设定enctype的值为multipart/form-data和method值为post.其他就如同一般表单一样.示例如下: <form name="form" action="uploadbyservlet1" enctype="multipart/form-data" m

Servlet上传文件

1.准备工作 (1)利用FileUpload组件上传文件,需要到apache上下载commons-fileupload-1.3.1.jar 下载地址:http://commons.apache.org/fileupload/ (2)由于文件上传还得有IO流传输,需要到apache上下载commons-io-2.4.jar 下载地址:http://commons.apache.org/io/ 2.正式开发 (1)新建文件上传界面 file.jsp: <%@ page language="ja

servlet上传文件(四)

1.servlet上传文件 servlet上传文件就是将客户端的文件上传到服务器端. 向服务器发送数据时,客户端发送的http请求正文采用"multipart/form-data"数据类型,他表示复杂的多个子部分的复合表单. 为了简化"multipart/form-data"数据的处理过程.可以使用Apache组织提供是的两个开源包来来实现上传. fileupload软件包(commons-fileupload-1.2.1.jar),负责文件上传的软件包. io软件

java servlet上传centos服务器

前面一篇随笔说了Centos上架设javaWeb运行环境的方法,这篇主要讲打包上传服务器. 一.数据库连接文件.propeties 为了数据库安全,mysql3306端口访问我做了ip访问限制,由于mysql和网站都在一个服务器上,所以上传时我们将ip修改成-->localhost 二.webxml配置 这个截图主要说下webxml中标签的作用. webXml中主要的标签一共就三个---><servlet>  <servlet-mapping>    <welco

servlet上传多个文件(乱码解决)

首先,建议将编码设置为GB2312,并在WEB-INF\lib里导入:commons-fileupload-1.3.jar和commons-io-2.4.jar, 可百度下下载,然后你编码完成后,上传时可能会遇到"servlet Bad version number in .class file"错误. 解决: 1.Window --> Preferences -->Java --> compiler中的compiler compliance level对应的下拉菜单

Servlet上传下载

下面是一个jsp页面,表单中有4个文件输入文本框,可以同时上传4个文件:<form action="file?file=upLoadByjs" method="post" ENCTYPE="multipart/form-data"> <input type="file" name=file1" size="30"><Br> <input type=&quo

Servlet上传文件直接处理方式

在开发的过程当中,经常遇到用文件上传的方式批量处理数据的方式,以前碰到的情况是先将文件保存到本地的临时文件,然后用poi的方式来进行处理,但是实际上,操作过程只是简单的读取操作,所以就不用那么复杂,下面记录了用servlet的javax.servlet.http.Part包的方式来处理这个功能.代码如下: Part part=request.getPart("标签name"); String filename=getFileName(part.getHeader("conte

原生Servlet 上传文件

依赖jar <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.4</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <a

5.servlet 上传文件

一.maven依赖 <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>commons-io</groupId> &l