皮皮学web不知道第几弹——GenericServlet,HttpServlet
2017-02-24 15:21
309 查看
一、GenericServlet:
1、 是一个 Serlvet. 实现了Servlet接口和ServletConfig接口,service()方法为抽象方法,是一个抽象类。
2、继承这个类会使开发更简洁。
比如 获取初始化参数,要先声明config 然后再在service方法中,用config获取初始化参数。
但是继承这个类 就可以直接写
3、 具体实现:
二、HttpServlet:
1、 是一个 Servlet, 继承自 GenericServlet. 针对于 HTTP 协议所定制.
2、在 service() 方法中直接把 ServletReuqest 和 ServletResponse 转为 HttpServletRequest 和 HttpServletResponse.并调用了重载的 service(HttpServletRequest, HttpServletResponse)
在 service(HttpServletRequest, HttpServletResponse) 获取了请求方式: request.getMethod(). 根据请求方式有创建了doGet, doPost方法
3、直接继承 HttpServlet, 并根据请求方式复写 doGet() 或doPost()方法即可. 可以直接使用HttpServletRequest和HttpServletResponse,不需要强转。
实现方法:
1、 是一个 Serlvet. 实现了Servlet接口和ServletConfig接口,service()方法为抽象方法,是一个抽象类。
2、继承这个类会使开发更简洁。
比如 获取初始化参数,要先声明config 然后再在service方法中,用config获取初始化参数。
private ServletConfig config; @Override public void init(ServletConfig config) throws ServletException { super.init(config); //To change body of generated methods, choose Tools | Templates. this.config=config; }
service()方法中:
ServletContext context=config.getServletContext(); String user1=context.getInitParameter("user1"); String pwd1=context.getInitParameter("password1");
但是继承这个类 就可以直接写
ServletContext context=getServletConfig().getServletContext(); String user1=context.getInitParameter("user1"); String pwd1=context.getInitParameter("password1");
3、 具体实现:
public abstract class GenericServlet implements Servlet, ServletConfig { /** 以下方法为 Servlet 接口的方法 **/ @Override public void destroy() {} @Override public ServletConfig getServletConfig() { return servletConfig; } @Override public String getServletInfo() { return null; } private ServletConfig servletConfig; @Override public void init(ServletConfig arg0) throws ServletException { this.servletConfig = arg0; init(); } public void init() throws ServletException{} @Override public abstract void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException; /** 以下方法为 ServletConfig 接口的方法 **/ @Override public String getInitParameter(String arg0) { return servletConfig.getInitParameter(arg0); } @Override public Enumeration getInitParameterNames() { return servletConfig.getInitParameterNames(); } @Override public ServletContext getServletContext() { return servletConfig.getServletContext(); } @Override public String getServletName() { return servletConfig.getServletName(); }
二、HttpServlet:
1、 是一个 Servlet, 继承自 GenericServlet. 针对于 HTTP 协议所定制.
2、在 service() 方法中直接把 ServletReuqest 和 ServletResponse 转为 HttpServletRequest 和 HttpServletResponse.并调用了重载的 service(HttpServletRequest, HttpServletResponse)
在 service(HttpServletRequest, HttpServletResponse) 获取了请求方式: request.getMethod(). 根据请求方式有创建了doGet, doPost方法
3、直接继承 HttpServlet, 并根据请求方式复写 doGet() 或doPost()方法即可. 可以直接使用HttpServletRequest和HttpServletResponse,不需要强转。
实现方法:
@Override public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { HttpServletRequest request; HttpServletResponse response; try { request = (HttpServletRequest) req; response = (HttpServletResponse) res; } catch (ClassCastException e) { throw new ServletException("non-HTTP request or response"); } service(request, response); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ // TODO Auto-generated method stub } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub }
相关文章推荐
- 超全面的JavaWeb笔记day09<Servlet&GenericServlet&HttpServlet&ServletContext>
- javaWeb---GenericServlet和HttpSevlet
- Java Web Servlet GenericServlet HttpServlet-Servlet(下)
- cannot be cast to org.springframework.web.multipart.MultipartHttpServletRequest
- Java Web 开发必须了解的 HTTP 知识点和 Servlet 之间对应关系
- JavaWeb_day1-HTTP&Servlet
- Java web之 HttpServletResponse的应用
- 深入剖析Spring Web源码(五) - DispatcherServlet的实现 - 通用Servlet和HTTP Servlet
- JavaWeb:报错信息The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
- springmvc中获得HttpServletRequest request方法(org.springframework.web.context.request.RequestContextList)
- Eclipse Web应用开发过程中缺少HttpServletResponse
- Servlet,GenericServlet,HttpServelet 的关系
- 一些Servlet的东东:HttpServlet、GenericServlet、Servlet、RequestDispatcher 、getInitParameter、getInitParameterNames、Filter
- No mapping found for HTTP request with URI [/spring/WEB-INF/page/index.jsp] in DispatcherServlet with name &#39;spring&#39;
- servlet 缺省模式 <GenericServlet> <HttpServlet>
- JavaWeb-HttpServletResponse、HttpServletRequest
- jax-rs(Java API for RESTful Web Services) 实践教程 之四 —— @Context注入HttpServletRequest 使REST保持状态!
- 传智播客Java web之 HttpServletRequest的应用
- Java Web HttpServletRequest
- [Jweb] Servlet / GenericServlet / HttpServlet 及其方法示意图