org.apache.wiki.attachment
Class AttachmentServlet

java.lang.Object
  extended by javax.servlet.GenericServlet
      extended by javax.servlet.http.HttpServlet
          extended by org.apache.wiki.attachment.AttachmentServlet
All Implemented Interfaces:
Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig

public class AttachmentServlet
extends javax.servlet.http.HttpServlet

This is the chief JSPWiki attachment management servlet. It is used for both uploading new content and downloading old content. It can handle most common cases, e.g. check for modifications and return 304's as necessary.

Authentication is done using JSPWiki's normal AAA framework.

This servlet is also capable of managing dynamically created attachments.

Since:
1.9.45.
See Also:
Serialized Form

Field Summary
protected static long DEFAULT_EXPIRY
          Default expiry period is 1 day
 
Constructor Summary
AttachmentServlet()
           
 
Method Summary
 void doGet(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res)
          Serves a GET with two parameters: 'wikiname' specifying the wikiname of the attachment, 'version' specifying the version indicator.
protected  void doOptions(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res)
          Implements the OPTIONS method.
 void doPost(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res)
          Grabs mime/multipart data and stores it into the temporary area.
protected  boolean executeUpload(WikiContext context, InputStream data, String filename, String errorPage, String parentPage, String changenote, long contentLength)
           
 void init(javax.servlet.ServletConfig config)
          Initializes the servlet from WikiEngine properties.
protected  String upload(javax.servlet.http.HttpServletRequest req)
          Uploads a specific mime multipart input set, intercepts exceptions.
 
Methods inherited from class javax.servlet.http.HttpServlet
doDelete, doHead, doPut, doTrace, getLastModified, service, service
 
Methods inherited from class javax.servlet.GenericServlet
destroy, getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_EXPIRY

protected static final long DEFAULT_EXPIRY
Default expiry period is 1 day

See Also:
Constant Field Values
Constructor Detail

AttachmentServlet

public AttachmentServlet()
Method Detail

init

public void init(javax.servlet.ServletConfig config)
          throws javax.servlet.ServletException
Initializes the servlet from WikiEngine properties.

Specified by:
init in interface javax.servlet.Servlet
Overrides:
init in class javax.servlet.GenericServlet
Throws:
javax.servlet.ServletException

doOptions

protected void doOptions(javax.servlet.http.HttpServletRequest req,
                         javax.servlet.http.HttpServletResponse res)
Implements the OPTIONS method.

Overrides:
doOptions in class javax.servlet.http.HttpServlet
Parameters:
req - The servlet request
res - The servlet response

doGet

public void doGet(javax.servlet.http.HttpServletRequest req,
                  javax.servlet.http.HttpServletResponse res)
           throws IOException,
                  javax.servlet.ServletException
Serves a GET with two parameters: 'wikiname' specifying the wikiname of the attachment, 'version' specifying the version indicator.

Overrides:
doGet in class javax.servlet.http.HttpServlet
Throws:
IOException
javax.servlet.ServletException

doPost

public void doPost(javax.servlet.http.HttpServletRequest req,
                   javax.servlet.http.HttpServletResponse res)
            throws IOException,
                   javax.servlet.ServletException
Grabs mime/multipart data and stores it into the temporary area. Uses other parameters to determine which name to store as.

The input to this servlet is generated by an HTML FORM with two parts. The first, named 'page', is the WikiName identifier for the parent file. The second, named 'content', is the binary content of the file.

Overrides:
doPost in class javax.servlet.http.HttpServlet
Throws:
IOException
javax.servlet.ServletException

upload

protected String upload(javax.servlet.http.HttpServletRequest req)
                 throws RedirectException,
                        IOException
Uploads a specific mime multipart input set, intercepts exceptions.

Parameters:
req - The servlet request
Returns:
The page to which we should go next.
Throws:
RedirectException - If there's an error and a redirection is needed
IOException - If upload fails
org.apache.commons.fileupload.FileUploadException

executeUpload

protected boolean executeUpload(WikiContext context,
                                InputStream data,
                                String filename,
                                String errorPage,
                                String parentPage,
                                String changenote,
                                long contentLength)
                         throws RedirectException,
                                IOException,
                                ProviderException
Parameters:
context - the wiki context
data - the input stream data
filename - the name of the file to upload
errorPage - the place to which you want to get a redirection
parentPage - the page to which the file should be attached
changenote - The change note
contentLength - The content length
Returns:
true if upload results in the creation of a new page; false otherwise
Throws:
RedirectException - If the content needs to be redirected
IOException - If there is a problem in the upload.
ProviderException - If there is a problem in the backend.


Copyright © {inceptionYear}-2014 The Apache Software Foundation. All rights reserved.