⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uploadservlet.java

📁 j2me简单实例,j2me教程加源码,希望大家喜欢
💻 JAVA
字号:
package com.j2medev.chapter4;

import java.io.*;
import java.net.URLDecoder;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.servlet.ServletRequestContext;

public class UploadServlet extends HttpServlet {
    
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        //设置编码格式为UTF-8
        request.setCharacterEncoding("UTF-8");
        //把响应的Content-Type设置为application/octet-stream,
        //以基本数据类型和String的方式向客户端传输数据
        response.setContentType("application/octet-stream");
        ServletRequestContext rc = new ServletRequestContext(request);
        //判断请求是否是multipart类型的
        boolean isMultipart = ServletFileUpload.isMultipartContent(rc);
        if(isMultipart){
            FileItemFactory factory = new DiskFileItemFactory();
            ServletFileUpload upload = new ServletFileUpload(factory);
            try {
                //解析请求,返回元素类型为FileItem的List
                List items = upload.parseRequest(request);
                Iterator i = items.iterator();
                while(i.hasNext()){
                    FileItem file = (FileItem)i.next();
                    if(file.isFormField()){
                        //是Form的字段,需要使用URLDecoder.decode方法解码
                        System.out.println("["+file.getFieldName()+"]="+URLDecoder.decode(file.getString(),"utf-8"));
                    }else{
                        //处理文件上传
                        long size = file.getSize();
                        System.out.println("the file size is "+size);
                        String path = getServletContext().getRealPath("/");
                        System.out.println(path);
                        File f = new File(path+"file.jpg");
                        try {
                            //写文件
                            file.write(f);
                        } catch (Exception ex) {
                            ex.printStackTrace();
                        }
                    }
                }
            } catch (FileUploadException ex) {
                ex.printStackTrace();
            }
            
        }else{
            //如果不是multipart类型,使用getParameter()读取即可
            Enumeration e = request.getParameterNames();
            while(e.hasMoreElements()){
                String p = (String)e.nextElement();
                System.out.println("["+p+"]"+"="+request.getParameter(p));
            }
        }
        //检查是否有Cookie发送过来
        Cookie[] cookies = request.getCookies();
        if(cookies != null){
            //显示cookie的name和value
            for(int i = 0;i<cookies.length;i++){
                System.out.println(cookies[i].getName()+"="+cookies[i].getValue());
            }
        }else{
            //如果是第一次,则向客户端发送cookie
            Cookie cookie = new Cookie("cookie","j2medev.com");
            cookie.setPath("/");
            cookie.setMaxAge((int)new Date().getTime()%(60*60));
            response.addCookie(cookie);
        }
        //向客户端发送数据
        DataOutputStream dos = new DataOutputStream(response.getOutputStream());
        dos.writeUTF("upload picture successfully");
        dos.close();
    }
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
    
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
    
    public String getServletInfo() {
        return "Short description";
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -