servlet在处理form请求和ajax请求有何区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了servlet在处理form请求和ajax请求有何区别?相关的知识,希望对你有一定的参考价值。

没多少区别吧,一般来说Ajax的话会输出一些反馈信息来给反馈给用户而已,form请求的话是执行完业务需求之后进行页面的跳转吧! 参考技术A 用ajax是局部刷新 ajax你注意看页面地址栏是不会有变化的 整个页面不会刷新 你用form请求的话整个页面都会有一个刷新 注意页面下方是刷新请求变化的 参考技术B sertvlet是页面请求
响应可是是request的,可以是response的
ajax是异步请求
响应只一般用reponse
除非把整理个页面都返回到请求页面
参考技术C 一个同步一个异步
一个页面必须跳转
一个页面不跳转

通过 Ajax 处理请求的 Servlet 流

【中文标题】通过 Ajax 处理请求的 Servlet 流【英文标题】:Servlet Flow on a Request via Ajax 【发布时间】:2011-04-26 20:52:57 【问题描述】:
Ext.Ajax.request(url:'DeleteAction',success: doneFunction,failure: errorFunction,params:name:rname);

上面的代码是我发送给 DeleteAction Servelet 的 Ajax 请求。谁能告诉我下面的代码接下来会发生什么。

    调用此文件时,首先调用的是什么。 doGet 和 doPost 方法有什么作用? 如何识别这里面的doProcess方法? 是否一定要有构造函数。

    如何将响应发送回 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】:

1.调用此文件时,首先调用的是什么。 松散地说,service() 方法,假设 servlet 已经加载。否则,init() 方法。

2。 doGet 和 doPost 方法有什么作用? 它们可以通过service() 方法调用。 service() 方法检查request-methodPOSTGETPUT 或....,然后调用各自的方法。查看docs。

3.它如何识别其中的doProcess方法? 你自己在doGet()doPost() 中调用了它。

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

5.响应是如何发送回 Ajax 的。 它是一个JSON 字符串。

【讨论】:

以上是关于servlet在处理form请求和ajax请求有何区别?的主要内容,如果未能解决你的问题,请参考以下文章

AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式

AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式

AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式

payload form data 参数和附件

Servlet处理原生Ajax请求

现在webform处理ajax请求用一般处理程序ashx还是用后台去处理