通过 Ajax 处理请求的 Servlet 流
Posted
技术标签:
【中文标题】通过 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-method
、POST
或GET
或PUT
或....,然后调用各自的方法。查看docs。
3.它如何识别其中的doProcess方法?
你自己在doGet()
和doPost()
中调用了它。
4.是不是一定要有构造函数。
不,Servlet 容器为我们实例化了 servlet。如果我们打算在创建时初始化一些东西,我们可以在init()
方法中做到这一点。这仅仅是为了类似的目的。所以,我们可以覆盖那个。
5.响应是如何发送回 Ajax 的。 它是一个JSON 字符串。
【讨论】:
以上是关于通过 Ajax 处理请求的 Servlet 流的主要内容,如果未能解决你的问题,请参考以下文章
Servlet里面request处理外部POST请求的输入流的工具类