Advertisement
Guest User

Untitled

a guest
May 22nd, 2019
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.17 KB | None | 0 0
  1. /*
  2. * To change this license header, choose License Headers in Project Properties.
  3. * To change this template file, choose Tools | Templates
  4. * and open the template in the editor.
  5. */
  6. package servlets;
  7.  
  8. import com.saxonica.xqj.SaxonXQDataSource;
  9. import java.io.IOException;
  10. import java.io.PrintWriter;
  11. import java.util.logging.Level;
  12. import java.util.logging.Logger;
  13. import javax.servlet.ServletException;
  14. import javax.servlet.http.HttpServlet;
  15. import javax.servlet.http.HttpServletRequest;
  16. import javax.servlet.http.HttpServletResponse;
  17. import javax.xml.xquery.XQConnection;
  18. import javax.xml.xquery.XQDataSource;
  19. import javax.xml.xquery.XQException;
  20. import javax.xml.xquery.XQExpression;
  21. import javax.xml.xquery.XQSequence;
  22. import org.w3c.dom.Element;
  23. import org.w3c.dom.Node;
  24.  
  25. /**
  26. *
  27. * @author Marcin
  28. */
  29. public class BooksServlet extends HttpServlet {
  30.  
  31. /**
  32. * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
  33. * methods.
  34. *
  35. * @param request servlet request
  36. * @param response servlet response
  37. * @throws ServletException if a servlet-specific error occurs
  38. * @throws IOException if an I/O error occurs
  39. */
  40. protected void processRequest(HttpServletRequest request, HttpServletResponse response, String param1, String param2)
  41. throws ServletException, IOException {
  42. response.setContentType("text/html;charset=UTF-8");
  43. try (PrintWriter out = response.getWriter()) {
  44. /* TODO output your page here. You may use following sample code. */
  45. out.println("<!DOCTYPE html>");
  46. out.println("<html>");
  47. out.println("<head>");
  48. out.println("<title>Servlet BooksServlet</title>");
  49. out.println("</head>");
  50. out.println("<body>");
  51. out.println("<h1>Servlet - BooksServlet at " + request.getContextPath() + "</h1>");
  52.  
  53. out.println("<form method='post'>");
  54. out.println("<input type='text' name='n1'>");
  55. out.println("<input type='text' name='n2'>");
  56. out.println("<input type='submit' value='search'>");
  57. out.println("</form>");
  58.  
  59.  
  60. XQDataSource ds = new SaxonXQDataSource(); //źródło xml
  61. XQConnection conn;
  62. try {
  63. conn = ds.getConnection(); //połaczenie ze źródłem
  64. XQExpression exp = conn.createExpression();
  65. //XQSequence seq = exp.executeQuery("for $n in 1 to 10 return $n*$n"); //wykonanie zapytania na pliku xml
  66.  
  67. XQSequence seq;
  68. String seqs;
  69.  
  70. seqs = "for $x in doc('https://mstepniak.ii.uph.edu.pl/air/lab06/books.xml')/catalog/book \n";
  71. if(param1 != null && !param1.equals("")){
  72. seqs += "where $x/title = \"" + param1 + "\"\n";
  73. }
  74. if(param2 != null && !param2.equals("")){
  75. seqs += "let $rok :=(substring($x/publish_date, 1, 4)) \n";
  76. seqs += "where $rok = " + "\"" + param2 + "\"" + "\n";
  77. }
  78.  
  79. seqs += "return $x ";
  80. seq = exp.executeQuery( seqs);
  81. //poruszanie się po zbiorze
  82. while (seq.next()) {
  83. Element book = (Element)seq.getNode();
  84. out.println(book.getElementsByTagName("title").item(0).getTextContent());
  85. out.println("<br/>");
  86. }
  87.  
  88. } catch (XQException ex) {
  89. ex.printStackTrace(out);
  90. }
  91.  
  92. out.println("</body>");
  93. out.println("</html>");
  94. }
  95. }
  96.  
  97. // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
  98. /**
  99. * Handles the HTTP <code>GET</code> method.
  100. *
  101. * @param request servlet request
  102. * @param response servlet response
  103. * @throws ServletException if a servlet-specific error occurs
  104. * @throws IOException if an I/O error occurs
  105. */
  106. @Override
  107. protected void doGet(HttpServletRequest request, HttpServletResponse response)
  108. throws ServletException, IOException {
  109. processRequest(request, response, null, null);
  110. }
  111.  
  112. /**
  113. * Handles the HTTP <code>POST</code> method.
  114. *
  115. * @param request servlet request
  116. * @param response servlet response
  117. * @throws ServletException if a servlet-specific error occurs
  118. * @throws IOException if an I/O error occurs
  119. */
  120. @Override
  121. protected void doPost(HttpServletRequest request, HttpServletResponse response)
  122. throws ServletException, IOException {
  123. String s1 = request.getParameter("n1");
  124. String s2 = request.getParameter("n2");
  125. processRequest(request, response, s1, s2);
  126.  
  127. }
  128.  
  129. /**
  130. * Returns a short description of the servlet.
  131. *
  132. * @return a String containing servlet description
  133. */
  134. @Override
  135. public String getServletInfo() {
  136. return "Short description";
  137. }// </editor-fold>
  138.  
  139. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement