HttpServlet
来源:互联网 发布:结构体中的数组赋值 编辑:程序博客网 时间:2024/04/28 22:59
什么是HttpServlet
sun公司为Servlet定义了一个抽象类HttpServlet
HttpServlet指能够处理HTTP请求的servlet,它在原有Servlet接口上添加了一些与HTTP协议处理方法,它比Servlet接口的功能更为强大。因此开发人员在编写Servlet时,通常应继承这个类,而避免直接去实现Servlet接口。
HttpServlet在实现Servlet接口时,覆写了service方法,该方法体内的代码会自动判断用户的请求方式,如为GET请求,则调用HttpServlet的doGet方法,如为Post请求,则调用doPost方法。因此,开发人员在编写Servlet时,通常只需要覆写doGet或doPost方法,而不要去覆写service方法
封装的service方法可以看下,不需要记
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String method = req.getMethod(); if (method.equals("GET")) { long lastModified = getLastModified(req); if (lastModified == -1L) { doGet(req, resp); } else { long ifModifiedSince = req.getDateHeader("If-Modified-Since"); if (ifModifiedSince < lastModified) { maybeSetLastModified(resp, lastModified); doGet(req, resp); } else { resp.setStatus(304); } } } else if (method.equals("HEAD")) { long lastModified = getLastModified(req); maybeSetLastModified(resp, lastModified); doHead(req, resp); } else if (method.equals("POST")) { doPost(req, resp); } else if (method.equals("PUT")) { doPut(req, resp); } else if (method.equals("DELETE")) { doDelete(req, resp); } else if (method.equals("OPTIONS")) { doOptions(req, resp); } else if (method.equals("TRACE")) { doTrace(req, resp); } else { String errMsg = lStrings.getString("http.method_not_implemented"); Object[] errArgs = new Object[1]; errArgs[0] = method; errMsg = MessageFormat.format(errMsg, errArgs); resp.sendError(501, errMsg); } }
HttpServlet的实现
package com.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class Servlet2 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { }}
0 0
- HttpServlet
- HTTPServlet
- HttpServlet
- httpServlet
- httpservlet
- HttpServlet
- HttpServlet
- HttpServlet
- HttpServlet
- HttpServlet
- HttpServlet
- HttpServlet
- HttpServlet
- httpServlet
- HttpServlet
- httpservlet
- HttpServlet
- HttpServlet
- hdu4035 概率DP求期望
- MyEclipse2014破解
- POJ 3320 (尺取法 map)
- 2016年,文本分析、情感分析和社交分析的10大趋势
- android点击ListView的item后变色
- HttpServlet
- uva 10440 Ferry Loading II
- 纵观设计模式
- 4--静态链表
- spring框架之AOP
- 数据库适当添加索引进行查询优化
- 简易引导图的实现
- 关于View的onMeasure()、onSizeChanged()、onLayout()、onDraw()调用顺序
- CocoaPods安装和使用及问题:Setting up CocoaPods master r