<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2016/10/6
Time: 14:20
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>upload</title>
</head>
<body>
<form method="post" action="/upload" enctype="multipart/form-data">
文件名:<input type="text" id="name" name="name"><br/>
选择文件:<input type="file" id="file" name="file"><br/>
<input type="submit" value="上传">
</form>
</body>
</html>
 package sanglp.servlet;

 import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Collection; /**
* Created by Administrator on 2016/10/6.
*/
@WebServlet(name = "upload",urlPatterns = {"/upload"})
@MultipartConfig
public class UploadServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//super.service(req, resp);
resp.setContentType("text/html;charset=GBK");
PrintWriter out=resp.getWriter();
//获取普通请求参数
String fileName=req.getParameter("name");
//获取上传文件的上传域
Part part=req.getPart("file");
out.println("上传文件的类型为"+part.getContentType()+"<br/>");
out.println("上传文件的大小为"+part.getSize()+"<br/>");
//获取文件上传的Header Name
Collection<String> headerNames=part.getHeaderNames();
for(String headerName:headerNames){
out.println(headerName+"-->"+part.getHeader(headerName)+"<br/>");
}
//将上传的文件写入服务器
part.write(getServletContext().getRealPath("/uploadFiles")+"/"+fileName);
}
}

【JavaEE企业应用实战学习记录】servlet3.0上传文件的更多相关文章

  1. Servlet学习:(三)Servlet3.0 上传文件

    转: Servlet学习:(三)Servlet3.0 上传文件 2018年08月03日 11:57:58 iDark_CSDN 阅读数:362   一.注意事项 客户端(浏览器) 表单的提交方法必须是 ...

  2. 【JavaEE企业应用实战学习记录】optiontransferselect实现两个列表选择框

    <%@ page contentType="text/html; charset=GBK" language="java"%> <%@tagl ...

  3. 【JavaEE企业应用实战学习记录】struts配置文件详细解析

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-/ ...

  4. 【JavaEE企业应用实战学习记录】struts2登录

    <%-- login.jsp Created by IntelliJ IDEA. User: Administrator Date: 2016/10/6 Time: 16:26 To chang ...

  5. 【JavaEE企业应用实战学习记录】struts国际化

    <%-- Created by IntelliJ IDEA. User: Administrator Date: 2016/10/6 Time: 16:26 To change this tem ...

  6. 【JavaEE企业应用实战学习记录】logFilter

    package sanglp.servlet; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import ja ...

  7. 【JavaEE企业应用实战学习记录】struts2实现登录并获取各个范围的数据

    package sanglp; import com.opensymphony.xwork2.*; /** * Created by Administrator on 2016/10/6. */ pu ...

  8. 【JavaEE企业应用实战学习记录】sessionListener

    package sanglp.servlet; import javax.servlet.ServletContext; import javax.servlet.annotation.WebList ...

  9. 【JavaEE企业应用实战学习记录】requestListener

    package sanglp.servlet; import javax.servlet.*; import javax.servlet.annotation.WebListener; import ...

随机推荐

  1. android PopupWindow使用实例

    注:点空白或菜单外隐藏popupwindow菜单: 但是,若点击有点击事件的组件则要再写代码手动隐藏: @Override public boolean onTouchEvent(MotionEven ...

  2. Android Studio中使用android:src="@drawable/ic_launcher"报错

    今天尝试着安装了Android Studio,界面确实不错,列表什么的也改了很多. 然后新建工程,习惯性在activity_main那里加上一段代码测试看看: <ImageView androi ...

  3. js中的冒泡排序以及实现一个数组中得最到最大的数字小例

    这其实是一个很简单的js就可以实现,当然一般情况就是利用for循环,从第一个跟第二个开始比较,根据大小交互位置,思路很简单. 也就是js中的冒泡排序 冒泡排序 时间复杂度为O(n^2),有两个优点: ...

  4. MarkdownPad Win10 无法预览

    软件环境 系统:windows 10 x64 软件:MarkDownPad 2 遇到问题 Markdownpad的实时预览无法显示 解决办法 安装 Awesonmium sdk后,重新打开Markdo ...

  5. Ubuntu下初学ROS时所遇小问题

    [1]运行命令$ rospack depends1 beginner_tutorials 时,提示 : [rospack] Error: no such package beginner_tutori ...

  6. luogu1207双重回文数[usaco1.2]Dual Palindromes

    题目描述 如果一个数从左往右读和从右往左读都是一样,那么这个数就叫做“回文数”.例如,12321就是一个回文数,而77778就不是.当然,回文数的首和尾都应是非零的,因此0220就不是回文数. 事实上 ...

  7. 各种AJAX方法的使用比较

    转:http://www.cnblogs.com/fish-li/archive/2013/01/13/2858599.html#_label6 AJAX技术经过这么多年的发展,出现了一些框架或类库用 ...

  8. sql server 修改表结构语法大全

    1.增加字段 ) 2.删除字段 alter table table_name drop column column_name 3.修改字段类型 alter table table_name alter ...

  9. 通俗理解T检验和F检验

    来源: http://blog.sina.com.cn/s/blog_4ee13c2c01016div.html   1,T检验和F检验的由来 一般而言,为了确定从样本(sample)统计结果推论至总 ...

  10. 微软职位内部推荐-Senior Software Engineer_Azure

    微软近期Open的职位: Job Title: Senior Software Engineer Location: Shanghai, China Have you ever imagined th ...