Java 如何解析servlet生成的XML
这是我的简单Java servlet,它生成XML代码,从一个简单的数据库检索它:Java 如何解析servlet生成的XML,java,xml,parsing,servlets,xml-parsing,Java,Xml,Parsing,Servlets,Xml Parsing,这是我的简单Java servlet,它生成XML代码,从一个简单的数据库检索它: import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.*;
import java.io.*
@WebServlet("/XML")
public class XML extends HttpServlet {
private static final long serialVersionUID = 1L;
public XML() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Connection connection;
Statement statement;
response.setContentType("application/xml");
PrintWriter printwriter = response.getWriter();
printwriter.println("<?xml version=\"1.0\"?>");
printwriter.println("<document>");
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/AppDB", "***", "****");
statement = connection.createStatement();
String SQL = "SELECT first_name, last_name FROM contacts";
ResultSet resultset = statement.executeQuery(SQL);
while(resultset.next()) {
printwriter.println("<first> " + resultset.getString("first_name") + " </first>");
printwriter.println("<last> " + resultset.getString("last_name") + " </last>");
}
resultset.close();
statement.close();
connection.close();
}
catch (Exception e) {
}
printwriter.println("</document>");
printwriter.close();
}
}
谁能帮我解决这个问题给我一些建议吗?
有人知道做同样事情的可能替代方法吗?那么JQuery或Ajax呢?(即使我只是读了一些关于它的东西,但我并不十分了解它们)在POST或GET之间选择 获取=>像那样使用docBuilder.parse,并在应用程序中编写doGet 您可以直接重定向到doPost
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
doPost (request,response);
}
POST=>不要更改servlet,而是更改客户端
1。带有URL的docBuilder也可以这样工作,但默认情况下使用GET:
Document doc = docBuilder.parse(new URL("http://localhost:8080/Example/XML").openStream());
请注意:
2。因此,请更改为POST
使用
但是要注意:如果你想传递数据,你必须先输入:
OutputStream out = connection.getOutputStream();
out.write(parameters and data here);
out.close();
请注意:
如果XML是一个目录而不是.XML文件,请将完整路径传递给您试图解析的XML文件。您已经在doPost()方法中编写了XML生成。如果只想通过传递URL获得xml响应,请尝试doGet()中的实现method@Prabhakaran谢谢!完美的解决方案!
URL url = new URL("http://localhost:8080/Example/XML");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
InputStream is= connection.getInputStream();
Document doc = docBuilder.parse(is);
OutputStream out = connection.getOutputStream();
out.write(parameters and data here);
out.close();