doGet()和doPost()的使用

doGet()和doPost()的使用

doGet()和doPost()的使用

在页面用post传参时,后台应该用dopost(), 当用doget()传参时,会出现下面的结果:

源码:

index.jsp页面

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

登录

登录

<%-- 这里表单表示的意思,以post方式提交表单,提交到我们的login请求 --%>

用户名:

密码:

爱好:

女孩

代码

唱歌

电影


后端代码:

public class LoginServlet extends HttpServlet {

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

String username=req.getParameter("username");

String password=req.getParameter("password");

String[] hobbys=req.getParameterValues("hobbys");

System.out.println("------------------------");

System.out.println(username);

System.out.println(password);

System.out.println(Arrays.toString(hobbys));

System.out.println("-----------------------");

//通过请求转发

req.getRequestDispatcher("/success.jsp").forward(req,resp);

}

@Override

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

}

}

修改后:

index.jsp还是保持post传参

后端变更为dopost()

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

String username=req.getParameter("username");

String password=req.getParameter("password");

String[] hobbys=req.getParameterValues("hobbys");

System.out.println("------------------------");

System.out.println(username);

System.out.println(password);

System.out.println(Arrays.toString(hobbys));

System.out.println("-----------------------");

//System.out.println(req.getContextPath());

//通过请求转发

req.getRequestDispatcher("/success.jsp").forward(req,resp);

}

测试结果为:

*************************************************************************************************************************************************************************************************************

从名字上来看可以很容易的有一个直观感觉,do即“处理”,所以doGet()用于处理Get请求,而doPost()用于处理Post请求,查看API(http://tomcat.apache.org/tomcat-5.5-doc/servletapi/)可以看到servlet接口中有5个方法:init()、destroy()、getServletConfig()、getServletInfo()和service(),根据API可知其中的方法service()的作用是:“Called by the servlet container to allow the servlet to respond to a request”,也就是说“由servlet容器调用,并允许servlet对请求作出响应”,因此service() 方法会检查 HTTP 请求类型Get、Post等,并在适当的时候调用 doGet()、doPost()等方法,而我们不需要对 service() 方法做任何动作,只重写 doGet() 或 doPost() 即可。

如何使用:当新建一个servlet时,IDEA默认会给出如下形式:

@WebServlet(name = "ServletXXX")

public class ServletXXX extends HttpServlet {

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

}

}

此时,只需要根据servlet请求的类型,重写相应的方法即可,如果是Get请求,就让doGet()方法去处理,如果是Post请求,就让doPost()方法去处理,但是通常doPost()方法更强大一些,所以如果是Post请求,就直接重写doPost()方法就好了,而如果是Get请求,也可以把方法体写在doPost()中,在doGet()中通过doPost(request,response);调用一下即可。————————————————版权声明:本文为CSDN博主「潇潇的潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/gxx_csdn/article/details/78862377

相关文章

起重吊车简笔画步骤(起重吊机简笔画)
365bet体育比分直播

起重吊车简笔画步骤(起重吊机简笔画)

📅 08-21 👁️ 5028
原创《弹弹岛2》如何快速升级? 《弹弹岛2》快速升级方法攻略汇总!
春城在哪里?是哪个城市的别称?中国春城的名称由来
365bet体育在线大陆

春城在哪里?是哪个城市的别称?中国春城的名称由来

📅 08-25 👁️ 8548