在 doPost() 响应中发送数据?
Send data in the doPost() response?
我是网络编程的初学者。我在本地主机中使用 Eclipse Java EE 和 Tomcat 服务器 运行 创建了一个应用程序。
应用程序的目标是从客户端获取信息并发回其他信息。
我开发了一个 servlet 并实现了一个完美运行的 doPost() 方法。我得到保存在名为 USSDPull 的 bean 中的信息,并写入名为 log.txt.
的文本文件中
public void doPost( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException{
USSDPull ussdpull = new USSDPull();
ussdpull.setUssdstring(request.getParameter("ussdstring"));
ussdpull.setSessionid(Integer.parseInt(request.getParameter("sessionid")));
ussdpull.setMsisdn(request.getParameter("msisdn"));
ussdpull.setUssdcode(request.getParameter("ussdcode"));
ussdpull.setEncoding(Integer.parseInt(request.getParameter("encoding")));
response.setContentType("text/text");
response.setCharacterEncoding( "UTF-8" );
PrintWriter out = response.getWriter();
out.flush();
out.println("POST received : " + ussdpull.getUssdstring()+" "+ussdpull.getSessionid()+" "+ussdpull.getMsisdn()+" "+ussdpull.getUssdcode()+" "+ussdpull.getEncoding());
//WRITE IN FILE
FileWriter fw = new FileWriter("D:/Users/Username/Documents/log.txt", true);
BufferedWriter output = new BufferedWriter(fw);
output.write(dateFormat.format(date)+";"+ussdpull.getUssdstring()+";"+ussdpull.getSessionid()+";"+ussdpull.getMsisdn()+";"+ussdpull.getUssdcode()+";"+ussdpull.getEncoding()+"\n");
output.flush();
output.close();
}
我需要 servlet 将 2 个特定的布尔值和 1 个字符串发送回客户端。我不知道如何进行。是否可以使用 HttpServletResponse 发送数据?还是我需要找到 "call" doGet() 方法的方法?
HttpServletResponse
本身并没有提供将数据写回客户端的方法,除了一些 headers,例如响应代码。
但是,它有一个名为 getOutputStream
and a method getWriter()
的方法,可以为您提供响应。一个 OutputStream
或一个 PrintWriter
。您可以使用它们将数据写入响应。
我是网络编程的初学者。我在本地主机中使用 Eclipse Java EE 和 Tomcat 服务器 运行 创建了一个应用程序。
应用程序的目标是从客户端获取信息并发回其他信息。
我开发了一个 servlet 并实现了一个完美运行的 doPost() 方法。我得到保存在名为 USSDPull 的 bean 中的信息,并写入名为 log.txt.
的文本文件中public void doPost( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException{
USSDPull ussdpull = new USSDPull();
ussdpull.setUssdstring(request.getParameter("ussdstring"));
ussdpull.setSessionid(Integer.parseInt(request.getParameter("sessionid")));
ussdpull.setMsisdn(request.getParameter("msisdn"));
ussdpull.setUssdcode(request.getParameter("ussdcode"));
ussdpull.setEncoding(Integer.parseInt(request.getParameter("encoding")));
response.setContentType("text/text");
response.setCharacterEncoding( "UTF-8" );
PrintWriter out = response.getWriter();
out.flush();
out.println("POST received : " + ussdpull.getUssdstring()+" "+ussdpull.getSessionid()+" "+ussdpull.getMsisdn()+" "+ussdpull.getUssdcode()+" "+ussdpull.getEncoding());
//WRITE IN FILE
FileWriter fw = new FileWriter("D:/Users/Username/Documents/log.txt", true);
BufferedWriter output = new BufferedWriter(fw);
output.write(dateFormat.format(date)+";"+ussdpull.getUssdstring()+";"+ussdpull.getSessionid()+";"+ussdpull.getMsisdn()+";"+ussdpull.getUssdcode()+";"+ussdpull.getEncoding()+"\n");
output.flush();
output.close();
}
我需要 servlet 将 2 个特定的布尔值和 1 个字符串发送回客户端。我不知道如何进行。是否可以使用 HttpServletResponse 发送数据?还是我需要找到 "call" doGet() 方法的方法?
HttpServletResponse
本身并没有提供将数据写回客户端的方法,除了一些 headers,例如响应代码。
但是,它有一个名为 getOutputStream
and a method getWriter()
的方法,可以为您提供响应。一个 OutputStream
或一个 PrintWriter
。您可以使用它们将数据写入响应。