JSP菜鸟问题:::那位大哥给我解析一下代码?
我看到一个JSP程序,表单提交都提交到/ebseries/controller,我没找到controller,但发现与之相同的class文件,这是反编译后的代码。
请帮我解释一下其中的原理,谢谢。
// Decompiled by Jad v1.5.7f. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3)
// Source File Name: Controller.java
package net.ebseries.servlet;
import java.io.IOException;
import java.util.HashMap;
import javax.servlet.ServletException;
import javax.servlet.http.*;
// Referenced classes of package net.ebseries.servlet:
// Command, CommandResult, CommandFactory
public class Controller extends HttpServlet
{
public Controller()
{
}
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
HttpSession session = req.getSession();
javax.servlet.ServletConfig config = getServletConfig();
session.removeAttribute("_result_");
String fatal_page = getInitParameter("fatal_page");
String cmdcls = req.getParameter("_clsid_");
if(cmdcls == null)
{
resp.sendRedirect(fatal_page);
return;
}
Command cmd;
synchronized(cmdMap)
{
cmd = (Command)cmdMap.get(cmdcls);
if(cmd == null)
{
cmd = CommandFactory.create(cmdcls);
if(cmd != null)
cmdMap.put(cmdcls, cmd);
}
}
if(cmd == null)
{
resp.sendRedirect(fatal_page);
return;
}
CommandResult result = new CommandResult();
if(cmd.validateForm(config, req, resp, result))
cmd.execute(config, req, resp, result);
session.setAttribute("_result_", result);
String resultpage = result.getResultPage();
if(resultpage != null)
resp.sendRedirect(resultpage);
}
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
doPost(req, resp);
}
public static final String _CLSID_ = "_clsid_";
public static final String _RESULT_ = "_result_";
private static HashMap cmdMap = new HashMap();
}