📄 commonservlet.java
字号:
/*
* This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/).
*/
package ch06.servlet;
import java.io.*;
import java.util.*;
import java.lang.reflect.*;
import javax.servlet.*;
import javax.servlet.http.*;
import ch06.*;
/**
* 针对所有页面的共同父类Servlet
* 执行一些共通异常处理的功能
* @author ShenYK
* @version 1.0
*/
public class CommonServlet extends HttpServlet
{
//保存各页面Id对应的Controller类
public Hashtable hPageHandler = null;
//保存各页actionId对应的Controller类的方法名
public Hashtable hActionHandler = null;
public void init()
{
//各页面对应的类名
hPageHandler = new Hashtable();
hPageHandler.put( "S000", "ch06.controller.CGuestRegister" );
hPageHandler.put( "S001", "ch06.controller.CLogin" );
hPageHandler.put( "S002", "ch06.controller.CMenu" );
hPageHandler.put( "S011", "ch06.controller.CRegister" );
hPageHandler.put( "S021", "ch06.controller.CProcessList" );
hPageHandler.put( "S022", "ch06.controller.CProcessDetail" );
hPageHandler.put( "S031", "ch06.controller.CExpireList" );
hPageHandler.put( "S032", "ch06.controller.CExpireDetail" );
hPageHandler.put( "S041", "ch06.controller.CViewSearch" );
hPageHandler.put( "S042", "ch06.controller.CViewList" );
hPageHandler.put( "S043", "ch06.controller.CViewDetail" );
hPageHandler.put( "S051", "ch06.controller.CSetting" );
//各页面对应动作的方法名
hActionHandler = new Hashtable();
hActionHandler.put( "S000register", "registerResume" );
hActionHandler.put( "S001login", "login" );
hActionHandler.put( "S002register", "registerResume" );
hActionHandler.put( "S002process", "processResume" );
hActionHandler.put( "S002expire", "expireResume" );
hActionHandler.put( "S002view", "viewResume" );
hActionHandler.put( "S002setting", "setting" );
hActionHandler.put( "S011register", "registerResume" );
hActionHandler.put( "S021goto", "gotoPage" );
hActionHandler.put( "S021resume", "viewResume" );
hActionHandler.put( "S022process", "processResume" );
hActionHandler.put( "S022delete", "deleteResume" );
hActionHandler.put( "S031goto", "gotoPage" );
hActionHandler.put( "S031resume", "viewResume" );
hActionHandler.put( "S032expire", "expireResume" );
hActionHandler.put( "S032delete", "deleteResume" );
hActionHandler.put( "S041search", "searchResume" );
hActionHandler.put( "S042goto", "gotoPage" );
hActionHandler.put( "S042resume", "viewResume" );
hActionHandler.put( "S043delete", "deleteResume" );
hActionHandler.put( "S043return", "returnList" );
hActionHandler.put( "S051register", "setting" );
}
public void doGet ( HttpServletRequest request,
HttpServletResponse response )
throws ServletException, IOException
{
//设置提交表单的中文编码
request.setCharacterEncoding("GBK");
HttpSession mySession = request.getSession(true);
//清空错误消息
mySession.setAttribute("errMsg","");
//得到用户输入信息
String sPageId = request.getParameter("pageId");
String sActionId = request.getParameter("actionId");
if ( sPageId == null || sPageId.equals("")
|| sActionId == null || sActionId.equals("") )
{
//非法进入页面,跳转到首页
mySession.invalidate();
response.sendRedirect("../index.htm");
return;
}
//如果非法进入页面
if ( !sPageId.equals("S000") && !sPageId.equals("S001")
&& mySession.getAttribute("username") == null )
{
//非法进入页面,跳转到首页
mySession.invalidate();
response.sendRedirect("../index.htm");
return;
}
//根据pageId和actionId获得要调用的方法
String sClassName = (String)hPageHandler.get( sPageId );
String sMethodName = (String)hActionHandler.get( sPageId + sActionId );
if ( sClassName == null || sClassName.equals("")
|| sMethodName == null || sMethodName.equals("") )
{
//页面传递的pageId等不对,跳转到首页
mySession.invalidate();
response.sendRedirect("../index.htm");
return;
}
try
{
//利用反射调用对应的方法
Class invokeClass = Class.forName( sClassName );
Object invokeObject = invokeClass.newInstance();
Class[] paraType = { Class.forName("javax.servlet.http.HttpServletRequest"),
Class.forName("javax.servlet.http.HttpServletResponse") };
Object[] paraObj = { request, response };
Method invokeMethod = invokeClass.getMethod( sMethodName, paraType );
String sNextPage = (String) invokeMethod.invoke( invokeObject, paraObj );
if ( sNextPage != null && !sNextPage.equals("") )
{
response.sendRedirect( "../" + sNextPage );
return;
}
}
catch(Exception e)
{
//页面处理出错,跳转到首页
mySession.invalidate();
response.sendRedirect("../index.htm");
return;
}
}
public void doPost ( HttpServletRequest request,
HttpServletResponse response )
throws ServletException, IOException
{
doGet( request, response );
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -