---servlet(四)Servlet和GenericServlet和HttpServlet
2016-07-10 14:20
393 查看
Servlet和GenericServlet和HttpServlet
UML图:Servlet
使用直接实现Servlet接口必须实现以下五个方法init(servletconfig config)
service(servletrequest
destroy()
getservletconfig()
getservletinfo()
public class TestServlet implements Servlet { private ServletConfig servletconfig; @Override public void init(ServletConfig config) throws ServletException { // TODO Auto-generated method stub this.servletconfig = config; } @Override public ServletConfig getServletConfig() { // TODO Auto-generated method stub return servletconfig; } @Override public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { // TODO Auto-generated method stub } @Override public String getServletInfo() { // TODO Auto-generated method stub return getServletInfo(); } @Override public void destroy() { // TODO Auto-generated method stub } }
GenericServlet
GenericServlet类是一个抽象类,提供了Servle接口的基本实现,他的子类需要实现其service方法public abstract class MyGenericServlet implements Servlet, ServletConfig { private ServletConfig servletConfig; // 以下为实现Servlet接口中的方法 @Override public void init(ServletConfig config) throws ServletException { // TODO Auto-generated method stub this.servletConfig = config; init(); } /** * 两个Init方法,如果以后在子类中想要重写init,直接重写没有参数的init(); * * 如果在子类中重写了init(ServletConfig config), * * 那么servletConfig就不能初始化,调用getServletConfig 会产生空指针异常 * * 通常在编写继承自GenericServlet的Servlet类时,只需重写不带参数的init()方法就可以了。如果覆盖了带参数的init( * ServletConfig config )方法,那么应该在子类的该方法中,包含一句super.init(config)代码调用。 * */ private void init() { // TODO Auto-generated method stub } @Override public ServletConfig getServletConfig() { // TODO Auto-generated method stub return servletConfig; } @Override public abstract void service(ServletRequest req, ServletResponse res) throws ServletException, IOException; @Override public String getServletInfo() { // TODO Auto-generated method stub return getServletInfo(); } @Override public void destroy() { // TODO Auto-generated method stub } // 以下为实现ServletConfig接口的方法 @Override public String getServletName() { // TODO Auto-generated method stub return servletConfig.getServletName(); } @Override public ServletContext getServletContext() { // TODO Auto-generated method stub return servletConfig.getServletContext(); } @Override public String getInitParameter(String name) { // TODO Auto-generated method stub return servletConfig.getInitParameter(name); } @Override public Enumeration<String> getInitParameterNames() { // TODO Auto-generated method stub return servletConfig.getInitParameterNames(); } }
HttpServlet
httpservlet类扩展了genericservlet并且提供了servlet接口中具体于http的实现,它更象一个其他所有的servlet都要扩展的类,主要使用这个类/** * 对于HTTP协议的一个Servlet基类 * * @author tuxianchao * */ public class MyHttpServlet extends MyGenericServlet { @Override public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub if (request instanceof HttpServletRequest && response instanceof HttpServletResponse) { service((HttpServletRequest) request, (HttpServletResponse) response); } } public void service(HttpServletRequest request, HttpServletResponse response) { // TODO Auto-generated method stub // 根据请求方式对应处理 String method = request.getMethod(); if ("GET".equalsIgnoreCase(method)) { doGet(request, response); } else if ("POST".equalsIgnoreCase(method)) { doPost(request, response); } } public void doGet(HttpServletRequest request, HttpServletResponse response) { // TODO Auto-generated method stub } public void doPost(HttpServletRequest request, HttpServletResponse response) { // TODO Auto-generated method stub } }
相关文章推荐
- Java Servlet生成JSON格式数据并用jQuery显示的方法
- jsp和servlet中实现页面跳转的方式实例总结
- java servlet结合mysql搭建java web开发环境
- Servlet与JSP间的两种传值情况
- JSP、Servlet中get请求和post请求的区别总结
- jsp和servlet的区别探讨
- Struts2访问servlet分享
- java中Servlet处理乱码的方法
- Servlet 过滤器详细介绍
- JSP+Servlet+JavaBean实现登录网页实例详解
- servlet中session简介和使用例子
- 在Jsp Servlet中页面重新定向总汇
- JSP使用Servlet作为控制器实现MVC模式实例详解
- JSP使用Servlet过滤器进行身份验证的方法
- Servlet动态网页技术详解
- jsp和servlet操作mysql中文乱码问题的解决办法
- 基于jsp+servlet实现的简单博客系统实例(附源码)
- js调用后台servlet方法实例
- 利用JQuery和Servlet实现跨域提交请求示例分享