📄 controller.java
字号:
package cn.edu.dlnu.frame.controler;
import java.io.IOException;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.ResourceBundle;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.edu.dlnu.frame.actions.BaseAction;
public class Controller extends HttpServlet {
protected HashMap<String, BaseAction> events = new HashMap<String, BaseAction>();
public void init () throws ServletException {
// get the event values and save them into events
ResourceBundle bundle = ResourceBundle.getBundle ("actions");
Enumeration<String> e = bundle.getKeys();
while (e.hasMoreElements()) {
String key = (String) e.nextElement();
String value = bundle.getString(key);
try {
BaseAction event = (BaseAction) Class.forName(value).newInstance();
System.out.print(key);
events.put (key, event);
} catch (Exception exc) {
System.out.print("init event:" + key + ", NO HANDLER FOUND! " + value);
}
}
}
public void doGet (
HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
doPost (request, response);
}
public void doPost (
HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{request.setCharacterEncoding("GBK");
String event="";
String url=request.getRequestURI();
url=url.substring(url.lastIndexOf("/")+1, url.length());
event=url.substring(0, url.indexOf(".action"));
event=event.toUpperCase();
System.err.print(event);
BaseAction handler = getEventHandler (event);
try {
handler.process (getServletContext(), request, response);
} catch (Exception e) {
e.printStackTrace();
request.setAttribute("error", e);
handler = getEventHandler("ERROR_EVENT");
}
handler.forward (request, response);
}
protected BaseAction getEventHandler (String e) {
BaseAction h=null;
h = (BaseAction) events.get(e);
if(h==null){
h = (BaseAction) events.get("UNKNOWN_ACTION");
}
return h;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -