首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用ajax在同一个servlet中实现doPost()和doGet()请求?

如何使用ajax在同一个servlet中实现doPost()和doGet()请求?
EN

Stack Overflow用户
提问于 2018-08-13 01:27:30
回答 1查看 1.1K关注 0票数 -1

我正在做一个关于jsp servlet的小项目,我想要一个示例来实现doGet()和doPost()方法,使用相同的servlet,并在jsp页面的表单中通过ajax调用发送和发布。

还要说明为什么不推荐在同一个servlet.How中使用doGet()和doPost(),以便在同一个jsp页面中使用两个不同的servlet来实现相同的功能。

提前感谢,任何帮助都是有益的。

我的jsp代码:-

代码语言:javascript
复制
 <form action="/mamababu.do" method="POST">
    <select name="command_no">
          <c:forEach var="items" items="${scriptItems}">

            <option value="${items.command}" name="command">${items.command}</option>

          </c:forEach>
       </select>
       <input type="submit" value="submit"></input>
</form> 

我的servlet类:

代码语言:javascript
复制
package com.project.mamabhagne;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.google.gson.Gson;


@WebServlet("/mamababu.do")
public class mamababu extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        //get the data from database ie the model class
        try {
            List<Script> scriptitems=modelDBUtil.getScriptList();
           // String json = new Gson().toJson(scriptitems);

            request.setAttribute("scriptItems", scriptitems);
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        /*String itemsfood[]={"biriyani","rice"};
        request.setAttribute("itemsfood",itemsfood)*/;



        //redirect to a different page
        RequestDispatcher dispatcher =request.getRequestDispatcher("scriptviewer.jsp");

        dispatcher.forward(request, response); 
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //TODO Auto-generated method stub
        System.out.println("hi");
         response.setContentType("text/html");
              PrintWriter out = response.getWriter();
              out.println("<HTML><HEAD><TITLE>Hello World!</TITLE>"+
              "</HEAD><BODY>Hello World!</BODY></HTML>");
              out.close();
              RequestDispatcher dispatcher =request.getRequestDispatcher("scriptviewer.jsp");
            dispatcher.forward(request, response); 
    }


}

我在发布表单数据时遇到此错误:-

代码语言:javascript
复制
HTTP Status 404 - /mamababu.do


type Status report

message /mamababu.do

description The requested resource is not available.


Apache Tomcat/8.0.52
EN

回答 1

Stack Overflow用户

发布于 2018-08-13 02:37:40

我不清楚你的问题,顺便说一下,据我所知,你需要一个servlet并响应GET和POST请求(通过AJAX)。

代码语言:javascript
复制
@WebServlet(name = "MyServelet", urlPatterns = {"/myservletForm"})
public class MyServlet extends HttpServlet {
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws IOException {
    response.getWriter().println("Hello This is GET Response.");
  }
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException{
response.getWriter().println("Hello This is POST Response.");
}
}

如上所述,当你发送一个“get”请求到doGet,“post”请求到doPost。您可以通过声明特定的ajax请求类型来选择需要调用GET或POST。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51811190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档