это мой простой Java сервлетов, которые генерируют код XML retreiving его из простой базы данных:Как разобрать 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.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();
}
}
Теперь я хочу, чтобы разобрать его на стороне клиента для отображения данных, но Я не знаю, как это сделать. Я пытался использовать файл JSP с SAX парсера, но когда сервер дает мне ошибку, когда я ставлю следующий Servlet URL:
Document doc = docBuilder.parse("http://localhost:8080/Example/XML");
Может кто-нибудь пожалуйста, помогите мне дать мне несколько советов, чтобы решить эту проблему? И может ли кто-нибудь узнать о возможном альтернативном способе сделать то же самое? Как насчет JQuery или Ajax? (Даже если я только что прочитал несколько вещь об этом, но я не знаю их очень хорошо)
Похоже, XML является каталогом а не XML-файл, передайте полный путь к файлу xml, который вы пытаетесь проанализировать. – SomeDude
вы создали генерацию xml в методе doPost(). Если вы хотите получить ответ xml, просто передав URL-адрес, попробуйте реализовать метод doGet() – Prabhakaran
@Prabhakaran Спасибо большое! Отличное решение! – marks