栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Servlet中的Service、get、post方法的区别

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Servlet中的Service、get、post方法的区别

Servlet类中有init、Service、destroy等几个方法。其中,Service方法又封装了doget方法和dopost方法。也就是说,在重写Servlet类的时候,只需要重写Service方法即可,不需要重写doget或dopost方法去处理请求。

在Service方法中,如果浏览器是通过post请求,会自动调用Service方法中的dopost方法去处理请求。

比如,在index.jsp文件中,使用get方法发送请求:

 

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>



    JSP - Hello World


<%= "Hello World!" %>


Hello Servlet
<%-- --%>

@WebServlet(name = "helloServlet", value = "/hello-servlet")
public class HelloServlet extends HttpServlet {
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("这是init方法");
    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

//    @Override
//    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        req.setCharacterEncoding("utf-8");              // post请求从网页传过来的中文参数会乱码
//        System.out.println("这是service方法");
//        String str = req.getRequestURI() + "";
//        System.out.println("请求链接" + str);
//
//
//        String str1 = req.getParameter("username");       // 获取客户端传递的参数
//        System.out.println(str1);
//    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("doget方法被启动");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("dopost方法被启动");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {
        System.out.println("这是destroy方法");
    }
}

传入参数: 小鹿

 

这时候,控制台中会自动调用doget方法,输出doget方法(没有实现service方法)

 

而如果同时重写Service、get和post方法,最后输出的是: 这是Service方法。

 

 

说明当Service方法存在的时候,不管是否重写doget或者dopost方法,都会优先执行Service方法,然后Service方法调用自身内部的get方法或者post方法去处理请求。

所以一般处理请求只需要重写Service方法即可,不需要单独再写doget和dopost方法

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/760119.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号