1.重写了Servlet的doPost和doGet方法如何被调用?
2.如何使servlet既能处理get请求又能处理post请求?
2.如何使servlet既能处理get请求又能处理post请求?
解决方案 »
- 如何在共用方法中终止action执行?
- 关于HttpClient的问题,请各位大虾帮帮忙!
- 有关<jsp:getProperty>出错,请大虾帮忙
- struts2.1.6 web.xml配置问题!!!
- 爬虫中文参数的编码问题
- 由a.jsp页面转向b.jsp页面, 然后在b.jsp页面按浏览器后退键到a.jsp页面, 为什么a.jsp页面的代码总会重新执行一次啊?
- 关于javascript数组排序的一个问题
- [求助] 我想做个导航的效果。例如:当前位置:天极论坛->编程->JSP论坛
- jsp连接MYSQL的问题
- ASP问题,asp出现故障,只有在这里发了。 初学者的问题!~!~<
- JSON解析报错
- Myeclipse中SSH中Cannot resolve reference to bean 'sessionFactory' while setting be
2.doPost可以处理doGet,doGet不能处理doPost(doGet里面直接调用doPost,doPost再写具体业务)
以下代码是源码 - 可以看到service自动会判断请求的方法进行处理,所以只需要要重写对应的请求方法doxxx()就可以了 protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
String method = req.getMethod(); if (method.equals(METHOD_GET)) {
long lastModified = getLastModified(req);
if (lastModified == -1) {
// servlet doesn't support if-modified-since, no reason
// to go through further expensive logic
doGet(req, resp);
} else {
long ifModifiedSince = req.getDateHeader(HEADER_IFMODSINCE);
if (ifModifiedSince < (lastModified / 1000 * 1000)) {
// If the servlet mod time is later, call doGet()
// Round down to the nearest second for a proper compare
// A ifModifiedSince of -1 will always be less
maybeSetLastModified(resp, lastModified);
doGet(req, resp);
} else {
resp.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
}
} } else if (method.equals(METHOD_HEAD)) {
long lastModified = getLastModified(req);
maybeSetLastModified(resp, lastModified);
doHead(req, resp); } else if (method.equals(METHOD_POST)) {
doPost(req, resp);
} else if (method.equals(METHOD_PUT)) {
doPut(req, resp);
} else if (method.equals(METHOD_DELETE)) {
doDelete(req, resp);
} else if (method.equals(METHOD_OPTIONS)) {
doOptions(req,resp);
} else if (method.equals(METHOD_TRACE)) {
doTrace(req,resp);
} else {
//
// Note that this means NO servlet supports whatever
// method was requested, anywhere on this server.
// String errMsg = lStrings.getString("http.method_not_implemented");
Object[] errArgs = new Object[1];
errArgs[0] = method;
errMsg = MessageFormat.format(errMsg, errArgs);
resp.sendError(HttpServletResponse.SC_NOT_IMPLEMENTED, errMsg);
}
}