私のプロジェクトでは、データを挿入、更新、および削除するために、サーブレット クラスに要求し、処理して応答を返します。
それはすべて jQuery ajax を介して行われます。
現在、次のように成功または失敗のみを応答します
PrintWriter out = response.getWriter();
out.println("<custom message>");
そのメッセージをもっと意味のあるものにしたい
デフォルトでは、 という 1 つのパラメータを受け入れます"format"
。形式がnull
デフォルトでその特定のサーブレット クラスがjson
形式で応答する場合、それ以外の場合は 2 つのオプションのみが存在json
しxml
ます。
次に、設定する必要がresponse.setContentType("application/json");
あります。
だから私は次のように1つのサーブレットクラスを作ります
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
}
}
}
}
そして、この上記のクラスは次のように拡張されます
java.io.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
ですか...??