`
rikugun
  • 浏览: 349790 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

简单的JAVA HTTP server 如何解析附件

    博客分类:
  • JAVA
阅读更多
想做一个简单的图片上传服务器,发现JDK6中有个HttpServer 可以支持简单的Server比用Socket简单多了,目前只是想获取Request中的附件.但是获取了全部的Request保存在文本中.但是如何解析请求中的附件确无从下手

/**
 *
 * @author rikugun
 */
public class Main {

    public static void main(String[] args) {
        try {
            HttpServer hs = HttpServer.create(new InetSocketAddress(8888), 0);//设置HttpServer的端口为8888
            hs.createContext("/pic", new PicHandler());//用PicHandler类内处理到/pic的请求
            hs.setExecutor(null); // creates a default executor
            hs.start();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}


PicHandler.java
/**
 *
 * @author rikugun
 */
public class PicHandler implements HttpHandler {

    public void handle(HttpExchange t) throws IOException {
        
        String response = "";
        String mt = t.getRequestMethod();
        if (t.getRequestMethod().equals("GET")) {
            response = "<h3>请使用POST提交图片!</h3>";
        } else {
            InputStream is = t.getRequestBody();
            doUpload(is);
            response = "<h3>上传成功!</h3>";
        }
        t.sendResponseHeaders(200, response.length());
        OutputStream os = t.getResponseBody();
        os.write(response.getBytes());
        os.close();
    }

    private void doUpload(InputStream is) {
        FileOutputStream fos = null;
        try {
            fos = new FileOutputStream(new File("out.txt"));
        } catch (FileNotFoundException ex) {
            Logger.getLogger(PicHandler.class.getName()).log(Level.SEVERE, null, ex);
        }
        byte b[] = new byte[8192];
        int isEnd = 0;
        while (true) {
            try {
                isEnd = is.read(b);
                if (isEnd == -1) {
                    //文件末尾
                    break;
                }
                System.out.println(b.toString());
                fos.write(b);
            } catch (IOException ex) {
                ex.printStackTrace();
                break;
            }
        }
 try {
            fos.close();
            is.close();
        } catch (IOException ex) {
            Logger.getLogger(PicHandler.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

分享到:
评论

相关推荐

    java mail server

    Java邮件服务器(Java Mail Server,简称JMailSrv)是一种基于Java技术构建的邮件服务器软件,主要用于处理电子邮件的接收、发送以及存储等任务。在Java开发环境中,它扮演着重要的角色,为开发者提供了灵活且可扩展...

    Server_Java服务器传文件_

    这里,我们将详细探讨如何利用Java实现在服务器端上传输文件,并结合提供的"Server1.java"源代码和"侠客行.txt"这个示例文件来解析相关知识点。 1. **Java服务器端开发环境** 在开始编程之前,确保你已经安装了...

    Java查询OutLook邮件代码

    通过 `MimeMultipart` 类,我们可以解析邮件的多个部分,包括正文和附件。 7. **处理附件**: 如果邮件有附件,`MimeBodyPart` 类可以帮助我们获取和保存附件。`MimeMessage.getContent()` 返回邮件内容,如果邮件...

    java中jsp上传附件的控件

    在Java Web开发中,JSP(JavaServer Pages)是一种用于创建动态网页的技术,它结合了HTML、Java代码和脚本语言。在实际应用中,我们经常需要实现文件上传功能,以便用户可以上传各种类型的附件,如文档、图片或视频...

    用java实现pop3邮件服务器.rar_java pop3 server_java 邮件服务器_pop3 java_服务器 j

    邮件通常包含多个部分,如文本、附件等,因此需要理解MIME(Multipurpose Internet Mail Extensions)格式,以便正确解析和存储邮件内容。 5. **安全考虑**:为了保护用户隐私和数据安全,服务器应该支持SSL/TLS...

    学生信息管理系统 Java+sql server

    【Java+SQL Server 学生信息管理系统】 在Java和SQL Server技术栈中开发的学生信息管理系统是一种常见的实训项目,旨在帮助开发者提升实际编程能力和项目经验。这个系统主要用于解决学校在管理大量学生信息时面临的...

    jsp,java,邮件发送器(带附件)

    首先,它提到了系统是用JSP(JavaServer Pages)和Java语言开发的,JSP是动态网页技术,用于处理服务器端逻辑,而Java则是后端编程语言,负责业务逻辑和数据处理。其次,系统具有发送附件的能力,这涉及到MIME...

    java-mail-server:服务器的java项目

    在“java-mail-server”项目中,我们可以找到一系列的Java类和配置文件,用于实现SMTP(简单邮件传输协议)和POP3(邮局协议第3版)服务,这些协议是互联网上电子邮件传输的基础。 SMTP协议主要用于将邮件从发件人...

    JAVA上百实例源码以及开源项目源代码

    Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...

    JAVA视频监视系统

    2 在MyEclipse下运行附件所带的Java源文件,web工程名称最好叫做bs。 3 启动server.mxml,会看到如下界面: 7 上述的客户端界面中,“实时”-----观看服务器端传送过来的画面。 “选择日期”---选择特定日期的异常...

    java编写的一个简单bbs网站完整代码

    1. **Java Web开发**:该BBS网站的开发基础是Java Web技术,这涉及到Servlet、JSP(JavaServer Pages)、JSTL(JavaServer Pages Standard Tag Library)等核心组件。Servlet是Java服务器端编程的基础,用于处理HTTP...

    jsp版的kindeditor附件上传组件

    该组件基于Java技术栈开发,具体而言,是通过JSP(JavaServer Pages)页面实现前端与后端的交互。JSP页面负责接收用户的上传请求,处理文件并返回响应。此外,JavaScript和jQuery库被用于实现客户端的动态效果和与...

    积分管理系统java源码-MiniHttpServer:用于Java(android)的迷你http服务器

    Server for Java (Android) 一:开发环境 Mac OS 10、Java 1.8、IDEA(Gradle工程) 二:介绍 一款基于Java Nio实现的Http解析框架,支持常见的请求解析和逻辑;采用单线程解析多线程业务处理方案,内置线程池方便...

    WAP中实现数据库附件下载

    以下是对“WAP中实现数据库附件下载”这一主题的深入解析,包括其技术背景、实现步骤、以及代码解读。 ### 技术背景 WAP是一种为移动设备设计的通信协议,旨在提供互联网服务的访问方式,特别适合于具有有限屏幕...

    webserver附件

    1. **源代码文件**:可能包括用各种编程语言(如C、C++、Java、Python)编写的Web服务器核心代码,展示了服务器如何监听端口、接收请求、解析HTTP协议、处理请求并返回响应。 2. **配置文件**:Web服务器的配置文件...

    Java做的WebMail

    Java WebMail在处理包含附件的邮件时,会用到MIME技术,以正确解析和编码附件。 5. **Session管理**: 在Web应用程序中,session用于跟踪用户状态。在Java WebMail中,当用户登录后,服务器会创建一个session,并将...

    java jdk实列宝典 光盘源代码

    聊天室服务器端,Chatserver.java;聊天室客户端,ChatClient.java; Ftp客户端,Mainframe.java; 14数据库 连接各种数据库DBconnector.java; 获得数据库和表的元数据Getmetadata.java; 查询和更新数据库...

    封装java常用工具的类

    3. **XML处理**:Java提供了DOM(文档对象模型)、SAX(简单API for XML)和StAX(流式API for XML)等多种方式解析和生成XML文档。例如,DOM将整个XML文件加载到内存中,而SAX和StAX则采用事件驱动的方式,节省内存...

    获取邮件附件.zip

    总结来说,"获取邮件附件.zip"提供的工具类对于需要处理邮件内容和附件的Java开发者非常实用,它们能够帮助我们从POP3服务器上获取邮件,解析MIME结构,提取附件,并处理各种编码问题。通过这两个源文件,我们可以...

    jsp附件上传与下载的小例子

    在Java Web开发中,JSP(JavaServer Pages)是一种用于创建动态网页的技术,它结合了HTML、脚本语言(如JavaScript)以及Java代码。在这个"jsp附件上传与下载的小例子"中,我们将深入探讨如何使用JSP实现文件的上传...

Global site tag (gtag.js) - Google Analytics