JavaServlet

来源:互联网 发布:那个新闻软件最好 编辑:程序博客网 时间:2024/05/23 12:52

Servlet的三种模式

1.1实现Servlet接口

一个类要实现Servlet接口需要重写所有方法

package li.test;import java.io.IOException;import javax.servlet.Servlet;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;public class ServletTest implements Servlet {    //获取请求信息,并设置响应信息    @Override    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {        System.out.println("Hello Servlet");    }    //Servlet实例从服务器中移除时,或者释放内存或容器关闭的时候调用    @Override    public void destroy() {    } //    //从web.xml中获取Servlet配置信息    @Override    public ServletConfig getServletConfig() {        return null;    }    //获取容器信息    @Override    public String getServletInfo() {        return null;    }    //初始化    @Override    public void init(ServletConfig config) throws ServletException {    }}

1.2继承GenericServlet抽象类(适配器模式)

实现了Servlet接口可以直接调用
只用自己重写service

package li.test;import java.io.IOException;import javax.servlet.GenericServlet;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;public class ServletTest2 extends GenericServlet {    private static final long serialVersionUID = 1L;    @Override    public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {        System.out.println("Hello");    }}

1.3继承HttpServlet抽象类(模板方法设计模式) 最常使用

实现了Servlet接口
只用重写doPost和doGet,二者都是处理http请求和返回信息给webserver,实际上最终都是重写了Servlet的service方法

package li.test;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 ServletTest3 extends HttpServlet {    private static final long serialVersionUID = 1L;    public ServletTest3(){        super();    }    //处理浏览器的doGet请求    @Override    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        resp.getOutputStream().print("get");    }    //处理浏览器的doPost请求    @Override    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        resp.getOutputStream().print("post");    }}

get浏览器向服务器申请内容
post一般是提交请求,但是不绝对
如图中基本全是get获取服务器的内容,只有回复的内容是post,即提交的请求。
get也可以提交请求只要改变html提交的方式即可。
这里写图片描述

get和post提交数据的一些区别

  • Get提交把提交数据写在url后面, 而Post提交不会
  • Get提交有数据容量限制(4K), 而Post提交原则上是没有数据大小限制的, 但是不建议超过64k
  • Get提交是即时相应, 所以反应快, 而Post提交会被WebServer放入队列, 所以有时相应会慢点.
1 0
原创粉丝点击