通过Ajax对请求进行Servlet流程

时间:2010-10-18 10:18:20

标签: java ajax servlets extjs

Ext.Ajax.request({url:'DeleteAction',success: doneFunction,failure: errorFunction,params:{name:rname}});

上面的代码是我的Ajax请求,它发送到DeleteAction Servelet。任何人都可以让我知道下面代码中接下来会发生什么。

  1. 当调用此文件时,首先要调用的是什么。
  2. doGet和doPost方法有什么作用?
  3. 如何识别doProcess方法?
  4. 是否需要有构造函数。
  5. 如何将响应发送回Ajax。

    public class DeleteAction extends HttpServlet implements Servlet {
    
    
    public DeleteAction() {
        super();
    }
    
    
    protected void process(HttpServletRequest request, HttpServletResponse response) {
    
    
    
    try {
        ServletOutputStream sos = response.getOutputStream();
        response.setHeader("Cache-Control", "no-store");
        response.setHeader("Pragma", "no-cache");
        response.setContentType("text/plain");
    
    
        String name = request.getParameter("name");
    
    
        System.out.println("Name: " + name);
    
    
        String query = "DELETE from CRUD_DATA where name='" + name + "'";
        System.out.println("Query:" + query);
    
    
        OracleDataSource ods = new OracleDataSource();
        ods.setUser("abdel");
        ods.setPassword("password");
        ods.setURL("jdbc:oracle:thin:@//127.0.0.1/XE");
    
    
        Connection conn = ods.getConnection();
        Statement statement = conn.createStatement();
    
    
        statement.executeUpdate(query);
        conn.commit();
        conn.close();
    
    
        sos.print("{success:true}");
        sos.close();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    
    } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { process(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { process(request, response); } }

1 个答案:

答案 0 :(得分:2)

<强> 1。调用此文件时,首先要调用的是什么。 简而言之,service()方法,假设servlet已经加载。否则,init()方法。

<强> 2。 doGet和doPost方法有什么作用? 它们由service()方法调用。 service()方法检查request-methodPOSTGETPUT或....,然后调用相应的方法。查看docs

第3。它如何识别doProcess方法? 您自己在doGet()doPost()中自行调用了它。

<强> 4。是否需要构造函数。 没有.Servlet容器为我们实例化servlet。如果我们打算在创建时初始化一些东西,我们可以在init()方法中做到这一点。这仅仅是出于类似的目的。所以,我们可以覆盖那个。

<强> 5。如何将响应发送回Ajax。 它是一个JSON字符串。