JavaServlet

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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值