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

📄 commonservlet.java

📁 一个人才简历资源中心系统
💻 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 + -