给你一个servlet例子,JSP差不多

js|servlet

来源水木清华

public class UploadServlet extends HttpServlet
{
  //default maximum allowable file size is 100k
  static final int MAX_SIZE = 102400;
  //instance variables to store root and success message
  String rootPath, successMessage;
  /**
   * init method is called when servlet is initialized.
   */
  public void init(ServletConfig config) throws ServletException
  {
    super.init(config);
    //get path in which to save file
    rootPath = config.getInitParameter("RootPath");
    if (rootPath == null)
    {
      rootPath = "/";
    }
    /*Get message to show when upload is complete. Used only if
      a success redirect page is not supplied.*/
    successMessage = config.getInitParameter("SuccessMessage");
    if (successMessage == null)
    {
      successMessage = "File upload complete!";
    }
  }
  /**
   * doPost reads the uploaded data from the request and writes
   * it to a file.
   */
  public void doPost(HttpServletRequest request,
    HttpServletResponse response)
  {
    ServletOutputStream out=null;
    DataInputStream in=null;
    FileOutputStream fileOut=null;
    try
    {
      /*set content type of response and get handle to output
        stream in case we are unable to redirect client*/
      response.setContentType("text/plain");
      out = response.getOutputStream();
    }
    catch (IOException e)
    {
      //print error message to standard out
      System.out.println("Error getting output stream.");
      System.out.println("Error description: " + e);
      return;
    }
    try
    {
      //get content type of client request
      String contentType = request.getContentType();
      //make sure content type is multipart/form-data
      if(contentType != null && contentType.indexOf(
        "multipart/form-data") != -1)
      {
        //open input stream from client to capture upload file
        in = new DataInputStream(request.getInputStream());
        //get length of content data
        int formDataLength = request.getContentLength();
        //allocate a byte array to store content data
        byte dataBytes[] = new byte[formDataLength];
        //read file into byte array
        int bytesRead = 0;
        int totalBytesRead = 0;
        int sizeCheck = 0;
        while (totalBytesRead < formDataLength)
        {
          //check for maximum file size violation
          sizeCheck = totalBytesRead + in.available();
          if (sizeCheck > MAX_SIZE)
          {
            out.println("Sorry, file is too large to upload.");
            return;
          }
          bytesRead = in.read(dataBytes, totalBytesRead,
            formDataLength);
          totalBytesRead += bytesRead;
        }
        //create string from byte array for easy manipulation
        String file = new String(dataBytes);
        //since byte array is stored in string, release memory
        dataBytes = null;
        /*get boundary value (boundary is a unique string that
          separates content data)*/
        int lastIndex = contentType.lastIndexOf("=");
        String boundary = contentType.substring(lastIndex+1,
          contentType.length());
        //get Directory web variable from request
        String directory="";
        if (file.indexOf("name=\"Directory\"") > 0)
        {
          directory = file.substring(
            file.indexOf("name=\"Directory\""));
          //remove carriage return
          directory = directory.substring(
            directory.indexOf("\n")+1);
          //remove carriage return
          directory = directory.substring(
            directory.indexOf("\n")+1);
          //get Directory
          directory = directory.substring(0,
            directory.indexOf("\n")-1);
          /*make sure user didn't select a directory higher in
            the directory tree*/
          if (directory.indexOf("..") > 0)
          {
            out.println("Security Error: You can't upload " +
              "to a directory higher in the directory tree.");
            return;
          }
        }
        //get SuccessPage web variable from request
        String successPage="";
        if (file.indexOf("name=\"SuccessPage\"") > 0)
        {
          successPage = file.substring(
            file.indexOf("name=\"SuccessPage\""));
          //remove carriage return
          successPage = successPage.substring(
            successPage.indexOf("\n")+1);
          //remove carriage return
          successPage = successPage.substring(
            successPage.indexOf("\n")+1);
          //get success page
          successPage = successPage.substring(0,
            successPage.indexOf("\n")-1);
        }
        //get OverWrite flag web variable from request
        String overWrite;
        if (file.indexOf("name=\"OverWrite\"") > 0)
        {
          overWrite = file.substring(
            file.indexOf("name=\"OverWrite\""));
          //remove carriage return
          overWrite = overWrite.substring(
            overWrite.indexOf("\n")+1);
          //remove carriage return
          overWrite = overWrite.substring(
            overWrite.indexOf("\n")+1);
          //get overwrite flag
          overWrite = overWrite.substring(0,
            overWrite.indexOf("\n")-1);
        }
        else
        {
          overWrite = "false";
        }
        //get OverWritePage web variable from request
        String overWritePage="";
        if (file.indexOf("name=\"OverWritePage\"") > 0)
        {
          overWritePage = file.substring(
            file.indexOf("name=\"OverWritePage\""));
          //remove carriage return
          overWritePage = overWritePage.substring(
            overWritePage.indexOf("\n")+1);
          //remove carriage return
          overWritePage = overWritePage.substring(
            overWritePage.indexOf("\n")+1);
          //get overwrite page
          overWritePage = overWritePage.substring(0,
            overWritePage.indexOf("\n")-1);
        }
        //get filename of upload file
        String saveFile = file.substring(
          file.indexOf("filename=\"")+10);
        saveFile = saveFile.substring(0,
          saveFile.indexOf("\n"));
        saveFile = saveFile.substring(
          saveFile.lastIndexOf("\\")+1,
          saveFile.indexOf("\""));
        /*remove boundary markers and other multipart/form-data
          tags from beginning of upload file section*/
        int pos; //position in upload file
        //find position of upload file section of request
        pos = file.indexOf("filename=\"");
        //find position of content-disposition line
        pos = file.indexOf("\n",pos)+1;
        //find position of content-type line
        pos = file.indexOf("\n",pos)+1;
        //find position of blank line
        pos = file.indexOf("\n",pos)+1;
        /*find the location of the next boundary marker
          (marking the end of the upload file data)*/
        int boundaryLocation = file.indexOf(boundary,pos)-4;
        //upload file lies between pos and boundaryLocation
        file = file.substring(pos,boundaryLocation);
        //build the full path of the upload file
        String fileName = new String(rootPath + directory +
          saveFile);
        //create File object to check for existence of file
        File checkFile = new File(fileName);
        if (checkFile.exists())
        {
          /*file exists, if OverWrite flag is off, give
            message and abort*/
          if (!overWrite.toLowerCase().equals("true"))
          {
            if (overWritePage.equals(""))
            {
              /*OverWrite HTML page URL not received, respond
                with generic message*/
              out.println("Sorry, file already exists.");
            }
            else
            {
              //redirect client to OverWrite HTML page
              response.sendRedirect(overWritePage);
            }
            return;
          }
        }
        /*create File object to check for existence of
          Directory*/
        File fileDir = new File(rootPath + directory);
        if (!fileDir.exists())
        {
          //Directory doesn't exist, create it
          fileDir.mkdirs();
        }
        //instantiate file output stream
        fileOut = new FileOutputStream(fileName);
        //write the string to the file as a byte array
        fileOut.write(file.getBytes(),0,file.length());
        if (successPage.equals(""))
        {
          /*success HTML page URL not received, respond with
            generic success message*/
          out.println(successMessage);
          out.println("File written to: " + fileName);
        }
        else
        {
          //redirect client to success HTML page
          response.sendRedirect(successPage);
        }
      }
      else //request is not multipart/form-data
      {
        //send error message to client
        out.println("Request not multipart/form-data.");
      }
    }
    catch(Exception e)
    {
      try
      {
        //print error message to standard out
        System.out.println("Error in doPost: " + e);
        //send error message to client
        out.println("An unexpected error has occurred.");
        out.println("Error description: " + e);
      }
      catch (Exception f) {}
    }
    finally
    {
      try
      {
        fileOut.close(); //close file output stream
      }
      catch (Exception f) {}
      try
      {
        in.close(); //close input stream from client
      }
      catch (Exception f) {}
      try
      {
        out.close(); //close output stream to client
      }
      catch (Exception f) {}
    }
  }
}

时间: 2024-08-03 06:05:19

给你一个servlet例子,JSP差不多的相关文章

Java Servlet 和 JSP教程(2)

js|servlet|教程 2 安装 2.1 安装Servlet和JSP开发工具 要学习Servlet和JSP开发,首先你必须准备一个符合Java Servlet 2.1/2.2和JavaServer Pages1.0/1.1规范的开发环境.Sun提供免费的JavaServer Web Development Kit(JSWDK),可以从http://java.sun.com/products/servlet/下载. 安装好JSWDK之后,你还要告诉javac,在编译文件的时候到哪里去寻找Ser

快速建立Servlet和JSP的运行、调试和编译环境

js|servlet|编译 相信很多刚开始学习Servlet和JSP的朋友都有一个困扰,就是如何快速方便的建立一个Servlet和JSP的运行.调试和编译环境.本人现在正在国外攻读MIT(Master of Information Technology),现在选修的这一科是WBIS(Web Based Information Systems),其包含了许多种技术,如Java,Perl,CGI,Servlet,ASP,Java Script,JSP,OO,UML等等.下面的这篇文章是学校所提供的相

Java Servlet 和 JSP入门教程(2)

js|servlet|教程|入门教程 Java Servlet 和 JSP教程(2) 2 安装 2.1 安装Servlet和JSP开发工具 要学习Servlet和JSP开发,首先你必须准备一个符合Java Servlet 2.1/2.2和JavaServer Pages1.0/1.1规范的开发环境.Sun提供免费的JavaServer Web Development Kit(JSWDK),可以从http://java.sun.com/products/servlet/下载. 安装好JSWDK之后

快速建立Servlet和JSP的运行、调试和编译环境_JSP编程

相信很多刚开始学习Servlet和JSP的朋友都有一个困扰,就是如何快速方便的建立一个Servlet和JSP的运行.调试和编译环境.本人现在正在国外攻读MIT(Master of Information Technology),现在选修的这一科是WBIS(Web Based Information Systems),其包含了许多种技术,如Java,Perl,CGI,Servlet,ASP,Java Script,JSP,OO,UML等等.下面的这篇文章是学校所提供的相关软件的下载地址.安装方法以

jsp Servlet基础入门学习:第一个Servlet

js|servlet      3.1 Servlet基本结构 下面的代码显示了一个简单Servlet的基本结构.该Servlet处理的是GET请求,所谓的GET请求,如果你不熟悉HTTP,可以把它看成是当用户在浏览器地址栏输入URL.点击Web页面中的链接.提交没有指定METHOD的表单时浏览器所发出的请求.Servlet也可以很方便地处理POST请求.POST请求是提交那些指定了METHOD="POST"的表单时所发出的请求,具体请参见稍后几节的讨论. import java.io

做一个简单的jsp登陆界面servlet报错

问题描述 做一个简单的jsp登陆界面servlet报错 package com.demo; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import javax.servlet.Serv

servlet转发post请求给另一个servlet接受返回值处理完在传给·另一个jsp页面···

问题描述 感觉崩溃模仿别人写的··改改··好像有点问题···大体上功能是post请求给servlet,我转发给另一个servlet··解析返回值,取其中一部分,然后传给另一个jsp页面,输出ShuJuservice.javapublicclassShuJuServletextendsHttpServlet{@OverrideprotectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)throwsServletExceptio

调优servlet和JSP的程序性能

本文讲述了调整JSP和servlet的一些非常实用的方法,它可使你的servlet和JSP页面响应更快,扩展性更强.而且在用户数增加的情况下,系统负载会呈现出平滑上长的趋势.在本文中,我将通过一些实际例子和配置方法使得你的应用程序的性能有出人意料的提升.其中,某些调优技术是在你的编程工作中实现的.而另一些技术是与应用服务器的配置相关的.在本文中,我们将详细地描述怎样通过调整servlet和JSP页面,来提高你的应用程序的总体性能.在阅读本文之前,假设你有基本的servlet和JSP的知识. 方法

Servlet和JSP迈上新台阶

js|servlet 即将面世的J2EE 1.4提供用Java开发Web应用程序的新的Servlet 2.4和JavaServer Pages (JSP) 2.0技术.本文展示了这两种技术的新特性,并在适当的地方提供每个特性的示例代码.本文假设读者熟悉以前的 Servlet 2.3和JSP 1.2版本.给出的例子已用Tomcat 5(包含在Java Web Services Developer Pack 1.2中)进行了测试. Servlet和JSP毫无疑问是两种应用最广的J2EE技术.Serv