A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qowoeo7538 中级黑马   /  2015-1-1 00:47  /  987 人查看  /  1 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

有一个抽象MainServlet类,继承了HttpServlet。又写了一个普通类AdminServlet,继承了MainServlet。当请求指向AdminServlet时,又走了MainServlet中的post方法,很是不解啊。。。另外,在post方法中打印this,竟然是AdminServlet的hash值。为什么啊???
这是代码,
MainServlet :
public abstract class MainServlet extends HttpServlet{
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doPost(req, resp);
}
@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String methodName = req.getParameter("cmd");
if(methodName==null || methodName.trim().equals("")){
methodName="execute";
}
try {
Method method = this.getClass().getMethod(methodName,
HttpServletRequest.class,HttpServletResponse.class);
method.invoke(this,req, resp);
} catch (Exception e) {
throw new RuntimeException(e.getMessage(),e);
}
}
public abstract void execute(HttpServletRequest req,HttpServletResponse resp)
throws Exception;
}

AdminServlet :
public class AdminServlet extends MainServlet {
private AdminService service = new AdminService();
public void execute(HttpServletRequest req, HttpServletResponse resp)
throws Exception {
String name = req.getParameter("name");
String password = req.getParameter("password");
Admin admin = null;
if(admin==null){
System.err.println("wrong");
}
}

评分

参与人数 1黑马币 +6 收起 理由
zmhlnrs + 6 很给力!

查看全部评分

1 个回复

倒序浏览
元旦快乐!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马