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

📄 addsubmissionservlet.java.svn-base

📁 远程学生作业提交系统,所用技术JSP,Servelet,Ajax,Web Services,MySql
💻 SVN-BASE
字号:
/*
 * AddSubmissionServlet.java
 * Created on October 18, 2006, 11:49 PM
 */

package com.sixtwenty.servlet;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.ArrayList;
import java.util.*;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
import java.net.*;

import org.apache.commons.fileupload.*;
import org.apache.commons.*;
import org.apache.commons.fileupload.disk.*;
import org.apache.commons.fileupload.servlet.*;

import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;

import com.sixtwenty.SubmitFiles;
import com.sixtwenty.Submissions;
import com.sixtwenty.Submit;
import com.sixtwenty.SubmitServiceLocator;
import com.sixtwenty.*;

/**
 * This servlet allows the student's to submit the assignments
 * @author grp-e
 */
public class AddSubmissionServlet extends HttpServlet {

	//String endpoint = "http://172.23.96.22:8180/axis/services/submit";
	String endpoint = "http://localhost:8080/axis/services/submit";

	/**
	 * Handles the get request
	 * @param request
	 * @param response
	 */
	public void doGet(HttpServletRequest request, HttpServletResponse response)
	throws IOException, ServletException
	{
		doPost(request, response);
	}

	/**
	 * Handles the post request
	 * @param request
	 * @param response
	 */
	public void doPost(HttpServletRequest request, HttpServletResponse response)
	throws IOException, ServletException {
		response.setContentType("text/html");
		PrintWriter out = response.getWriter ();

		try {
			Submit submit = null;

			try {

				//Instantiate the SubmitServiceLocator
				SubmitServiceLocator ssl = new SubmitServiceLocator();

				submit = ssl.getsubmit();
			} catch(Exception e) {
				throw new ServletException(e.toString());
			}

			// Get the type of action to do
			String action = new String(request.getParameter("action"));

			String ipAddress = (String)request.getSession().getAttribute("ipAddress");	//The ip address
			if (ipAddress == null) ipAddress = "Unknown";
			String username = (String)request.getSession().getAttribute("username"); //The username

			if (action.equals("submit")) {
				String projId = new String(request.getParameter("projId"));	//The project id 

				//set the project id in session
				request.getSession().setAttribute("projId", projId);
				
				//Forwarding it to next jsp
				RequestDispatcher requestDispatcher = getServletContext().getRequestDispatcher("/jsp/submitassignment.jsp");
				requestDispatcher.forward(request, response);
				return;
			}

			if (action.equals("save")) {
				String projectId = (String)request.getSession().getAttribute("projId");	//The project id


				//Preparing to submit the file
				//File Upload processing
				FileUpload fup = new FileUpload();

				// Create a factory for disk-based file items
				FileItemFactory factory = new DiskFileItemFactory();

				// Create a new file upload handler
				ServletFileUpload upload = new ServletFileUpload(factory);

				// Parse the request
				List items = upload.parseRequest(request);

				// Process the uploaded items
				Iterator iter = items.iterator();
				while (iter.hasNext()) {
					FileItem item = (FileItem) iter.next();

					// Process a file upload
					if (!item.isFormField()) {
						String fieldName = item.getFieldName();	//The field name
						String fileName = item.getName();	//The file name
						String contentType = item.getContentType();	//The content type
						boolean isInMemory = item.isInMemory();	//check whether the item is in memory
						long sizeInBytes = item.getSize(); 	//The size in bytes

						//Get the file input stream
						InputStream uploadedStream = item.getInputStream();
						byte[] contents = new byte[(int)sizeInBytes];
						uploadedStream.read(contents, 0, (int)sizeInBytes);

						SubmitFiles sf = new SubmitFiles(contents, fileName, (int)sizeInBytes, username);

						Vector<SubmitFiles> submitFiles = (Vector<SubmitFiles>)request.getSession().getAttribute("listOfSubmitFiles");

						// If it is the first file we add
						if (submitFiles == null) {
							submitFiles = new Vector<SubmitFiles>();
							submitFiles.addElement(sf);

							//set the submitFiles in the session
							request.getSession().setAttribute("listOfSubmitFiles", submitFiles);
						} else {
							submitFiles.addElement(sf);

							//set the submitFiles in the session
							request.getSession().setAttribute("listOfSubmitFiles", submitFiles);
						}
					}
				}
				
				//Forwarding to next jsp
				RequestDispatcher requestDispatcher = getServletContext().getRequestDispatcher("/jsp/submitassignment.jsp");
				requestDispatcher.forward(request, response);
				return;
			}

			if (action.equals("complete")) {
				String projId = (String)request.getSession().getAttribute("projId");	//The project id

				Vector<SubmitFiles> sflist = (Vector<SubmitFiles>)request.getSession().getAttribute("listOfSubmitFiles");

				//Get the list of SubmitFiles from session
				request.getSession().setAttribute("listOfSubmitFiles", new Vector<SubmitFiles>());

				if (sflist != null) {

					//Populate the array of SubmitFiles
					SubmitFiles[] submitFilesArray = new SubmitFiles[sflist.size()];
					for (int i=0; i < sflist.size(); i++) {
						submitFilesArray[i] = new SubmitFiles();
						submitFilesArray[i].setFileContents(sflist.elementAt(i).getFileContents());
						submitFilesArray[i].setFilename(sflist.elementAt(i).getFilename());
						submitFilesArray[i].setFileuser(sflist.elementAt(i).getFileuser());
						submitFilesArray[i].setFilesize(sflist.elementAt(i).getFilesize());
					}

					//set the time
					java.util.Date date = new java.util.Date();
					Calendar cal = Calendar.getInstance();
					cal.setTime(date);
					
					//Create a Submissions object
					Submissions subs = new Submissions(submitFilesArray, "", ipAddress, submitFilesArray.length, cal, username);
					
					//call to the remote method addSubmission
					submit.addSubmission(projId, subs, Calendar.getInstance());
				}

				RequestDispatcher requestDispatcher = getServletContext().getRequestDispatcher("/listOfProjects");
				requestDispatcher.forward(request, response);
				return;
			}
		} catch (Exception e) {
			out.println(e.toString());
		}
	}

	/** Returns a short description of the servlet.
	 */
	public String getServletInfo() {
		return "This servlet is invoked to add submission";
	}

}

⌨️ 快捷键说明

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