📄 helper.java
字号:
package accp.help;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import accp.command.ICommand;
import accp.factory.CmdFactory;
public class Helper implements IHelper {
private HttpServletRequest req;
private HttpServletResponse res;
private Map data;
public Helper(HttpServletRequest req, HttpServletResponse res) {
this.req = req;
this.res = res;
}
public HttpServletRequest getReq() {
return this.req;
}
public HttpServletResponse getRes() {
return this.res;
}
public Map getData() {
// Map map = req.getParameterMap();
// Set<Entry> set = map.entrySet();
// for(Entry e : set) {
// System.out.println(e.getKey()+"\t"+((String[])e.getValue())[0]);
// }
data = new HashMap();
Map<String, String[]> map1 = (Map<String, String[]>) req.getParameterMap();
Set<String> set1 = map1.keySet();
for (String s : set1) {
String[] ss = map1.get(s);
if (ss != null && ss.length == 1) {
//不用每次将Object转为String[]后又取[0]个
data.put(s, ss[0]);
} else {
//如果超过长度,直接放原来的
data.put(s, ss);
}
}
return data;
}
public ICommand getCommand() {
String cmdClass = null;
//路径即command.do第一判断,对应command.do传值
String path = req.getRequestURI();
//表单隐藏域优先,对应hidden传command
if(req.getParameter("command")!=null) {
path = (String)req.getParameter("command");
}
//设置command在request时最优先,对应循环command调用
if(req.getAttribute("command")!=null) {
path = (String)req.getAttribute("command");
}
System.out.println("path="+path);
int start = path.lastIndexOf("/");
start= start<=0?-1:start;
int end = 0;
if(path.indexOf(".do")!=-1)
end = path.length()-3;
else
end = path.length();
cmdClass = path.substring(start+1,end);
System.out.println("cmdClass="+cmdClass);
return (ICommand) CmdFactory.getInstance().createCmd(cmdClass);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -