frontcontroller.java

来自「稿件名称:基于JAVA的JNDI技术和反射机制 稿件作者:段谟意 」· Java 代码 · 共 49 行

JAVA
49
字号
package ddd.com.servlet;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import ddd.com.action.*;
import ddd.com.form.*;
import ddd.com.config.*;
public class FrontController extends HttpServlet
{
	public void doGet(HttpServletRequest req,HttpServletResponse res)
		throws ServletException,IOException
	{
		process(req,res);
	}
	public void doPost(HttpServletRequest req,HttpServletResponse res)
		throws ServletException,IOException
	{
		process(req,res);
	}
	public void process(HttpServletRequest req,HttpServletResponse res)
		throws ServletException,IOException
	{
		String uri="/error.jsp";
		ServletContext sct=getServletContext();
		String sTemp=req.getPathInfo();
		int index=sTemp.lastIndexOf("/");
		String path=sTemp.substring(index+1);
		
		ActionHelper helper=new ActionHelper(sct);
		ActionConfig aConfig=helper.getActionConfig(path);
		if(aConfig!=null)
		{
			ActionForm form=helper.getActionForm(aConfig,sct,req,path);
			if(aConfig.getValidate() && !form.validate(aConfig,req))
				uri=aConfig.getInput();
			else
			{
				Action action=helper.getAction(sct,req,path);
				if(action!=null)
				{
					ForwardConfig forward=action.nextView(aConfig,form,req,res);
					uri=forward.getUri();
				}
			}			
		}
		RequestDispatcher dispatcher=sct.getRequestDispatcher(uri);
		dispatcher.forward(req,res);
	}
}

⌨️ 快捷键说明

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