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

📄 mainservlet.java.svn-base

📁 一个timesheet程序,用来统计开发人员的度量衡web在线程序.用于软件行业
💻 SVN-BASE
字号:
package com.nsi.control.web.servlets;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.nsi.constants.AppConstants;
import com.nsi.control.exceptions.NsiEventException;
import com.nsi.control.web.ModelManager;
import com.nsi.control.web.ReqProcessor;
import com.nsi.control.web.ScreenManager;

/**
 * @author Chris Ye, created on Oct 10, 2008
 *
 * MainServlet
 */
public class MainServlet extends HttpServlet
{
	private static final long serialVersionUID = -3296429255877485172L;
	private static Log log = LogFactory.getLog(MainServlet.class);
	/**
	 * @see javax.servlet.http.HttpServlet#doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
	 */
	public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
	{
		performTask(req, res);
	}
	/**
	 * @see javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
	 */
	public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
	{
		performTask(req, res);
	}
	private ReqProcessor getReqProcessor()
	{
		ReqProcessor rp = (ReqProcessor)getServletContext().getAttribute(AppConstants.RequestProcessorKey);
		if(rp == null)
		{
			rp = new ReqProcessor();
			rp.init(getServletContext());
			getServletContext().setAttribute(AppConstants.RequestProcessorKey, rp);
		}
		log.debug("getReqProcessor() -- ReqProcessor[" + rp + "]");
		return rp;
	}
	private ScreenManager getScreenManager()
	{
		ScreenManager screenManager = (ScreenManager)getServletContext().getAttribute(AppConstants.ScreenManagerKey);
		if(screenManager == null)
		{
			screenManager = new ScreenManager();
			screenManager.init(getServletContext());
			getServletContext().setAttribute(AppConstants.ScreenManagerKey, screenManager);
		}
		log.debug("getScreenManager() -- screenManager[" + screenManager + "]");
		return screenManager;
	}
	private void performTask(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
	{
		getScreenManager();
		getReqProcessor();
		HttpSession session = req.getSession();
		ModelManager mm = (ModelManager)req.getSession().getAttribute(AppConstants.ModelManagerKey);
		if(mm == null)
		{
			try
			{
				mm = (ModelManager)getClass().getClassLoader().loadClass("com.nsi.control.web.ModelManager").newInstance();
			}
			catch(Exception exc)
			{
				log.error("ModelManager init caught exception : ", exc);
				throw new ServletException(" cannot load the modelmanager");
			}
			session.setAttribute(AppConstants.ModelManagerKey, mm);
			mm.init(session);
		}
		log.debug("performTask() -- modelManager[" + mm + "]");
		try
		{
			getReqProcessor().processRequest(req,res);
			if( !res.isCommitted())
			{
				getScreenManager().setNextScreen(req);
			}
		}
		catch(NsiEventException nsiex)
		{
			log.error("performTask() -- caught NsiEventException: " + nsiex);
			req.setAttribute("javax.servlet.jsp.jspException", nsiex);
			session.setAttribute("currentScreen", "ERROR");
		}
		if( !res.isCommitted())
		{
			getServletConfig().getServletContext().getRequestDispatcher(getScreenManager().getTemplate()).forward(req, res);
		}
	}
}

⌨️ 快捷键说明

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