私のプロジェクトでは、サーブレットクラスにリクエストしているデータを挿入、更新、削除してから、レスポンスを処理して返します。さらにカスタマイズされたレスポンスのためにサーブレットクラスをカスタムクラスに拡張する
これはすべてjQuery ajaxで発生します。
PrintWriter out = response.getWriter();
out.println("<custom message>");
を次のように今のところ応答のみ成功したか失敗したか、今私はフォーマットが、その後null
であれば、私は、"format"
と呼ばれる1つのパラメータを受け入れますデフォルトでは
にそのメッセージをより有意義なものにしたいですデフォルトではそのサーブレットクラスはjson
形式で応答します。それ以外の場合は2つのオプションしか存在しませんjson
とxml
です。
、私はので、私は
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class myservlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
public void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException,java.io.IOException
{
String format = req.getParameter("format");
if(format == null)
{
format = "json";
}
else
{
if(format.equals("json"))
{
resp.setContentType("application/json");
}
else if(format.equals("xml"))
{
resp.setContentType("application/rss+xml");
}
else
{
//error
}
}
}
public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,java.io.IOException
{
String format = req.getParameter("format");
if(format == null)
{
format = "json";
}
else
{
if(format.equals("json"))
{
resp.setContentType("application/json");
}
else if(format.equals("xml"))
{
resp.setContentType("application/rss+xml");
}
else
{
//error
}
}
}
}
を次のように1つのサーブレットクラスを行いますと
輸入java.io.を次のように、この上のクラスが拡張されresponse.setContentType("application/json");
等
を設定する必要がありますPrintWriter;
import javax.servlet.ServletException;
public class abc extends myservlet
{
private static final long serialVersionUID = 1L;
public void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException,java.io.IOException
{
PrintWriter out = resp.getWriter();
out.println("{/"id/": /"file/"}");
//response must be converted to either json or to xml
}
}
できますか?
どのように応答をxml
またはjson
に動的に変換できますか?