root/SPARQLBuilderWWW/src/java/org/biohackathon/SPARQLBuilder/www/PLServlet.java @ 228

リビジョン 221, 4.4 KB (コミッタ: atsuko, 10 年 前)

パス探索アルゴリズムを大幅変更

行番号 
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
7package org.biohackathon.SPARQLBuilder.www;
8
9import java.io.IOException;
10import java.io.PrintWriter;
11import javax.servlet.ServletException;
12import javax.servlet.annotation.WebServlet;
13import javax.servlet.http.HttpServlet;
14import javax.servlet.http.HttpServletRequest;
15import javax.servlet.http.HttpServletResponse;
16import javax.servlet.http.HttpSession;
17import org.biohackathon.SPARQLBuilder.OWL.*;
18
19/**
20 *
21 * @author atsuko
22 */
23@WebServlet(name = "PLServlet", urlPatterns = {"/plist"})
24public class PLServlet extends HttpServlet {
25
26    private static final String FILENAME = "cdata/";   
27   
28    /**
29     * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
30     * methods.
31     *
32     * @param request servlet request
33     * @param response servlet response
34     * @throws ServletException if a servlet-specific error occurs
35     * @throws IOException if an I/O error occurs
36     */
37    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
38            throws ServletException, IOException {
39        response.setContentType("text/html;charset=UTF-8");
40        try (PrintWriter out = response.getWriter()) {
41            /* TODO output your page here. You may use following sample code. */
42            out.println("<!DOCTYPE html>");
43            out.println("<html>");
44            out.println("<head>");
45            out.println("<title>Servlet PLServlet</title>");           
46            out.println("</head>");
47            out.println("<body>");
48            out.println("<h1>Servlet PLServlet at " + request.getContextPath() + "</h1>");
49            out.println("</body>");
50            out.println("</html>");
51        }
52    }
53
54    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
55    /**
56     * Handles the HTTP <code>GET</code> method.
57     *
58     * @param request servlet request
59     * @param response servlet response
60     * @throws ServletException if a servlet-specific error occurs
61     * @throws IOException if an I/O error occurs
62     */
63    @Override
64    protected void doGet(HttpServletRequest request, HttpServletResponse response)
65            throws ServletException, IOException {
66        //processRequest(request, response);
67        response.setContentType("application/json;charset=UTF-8");
68        response.setHeader("Access-Control-Allow-Origin", "*");
69        response.setHeader("Access-Control-Allow-Methods", "GET");
70        response.setHeader("Access-Control-Allow-Headers", request.getHeader("Access-Control-Request-Headers"));
71        response.setHeader("Access-Control-Max-Age", "-1");
72        PrintWriter out = response.getWriter();
73        String ep = request.getParameter("ep");
74        String st = request.getParameter("startclass");
75        String en = request.getParameter("endclass");
76       
77        HttpSession session = request.getSession();
78        QueryPathGenerator qpg = (QueryPathGenerator)session.getAttribute("qpg");
79        if ( qpg == null ){
80            qpg = new QueryPathGenerator(ep);
81        }
82        SClass[] classes = qpg.getClasses(null);
83        Path[] paths = qpg.getPaths(st, en, true);
84        String jsonstr = "[";
85        for(int i = 0; i< paths.length; i++){
86            if (i > 0 && paths[i] != null){
87                jsonstr += ",";
88            }
89            if ( paths[i] == null ){
90                continue;
91            }
92            jsonstr += paths[i].toJSONString3(classes);
93        }
94        jsonstr += "]";
95        // For debug
96        System.out.println("JSON:");
97        System.out.println(jsonstr);
98        out.print(jsonstr);
99    }
100
101    /**
102     * Handles the HTTP <code>POST</code> method.
103     *
104     * @param request servlet request
105     * @param response servlet response
106     * @throws ServletException if a servlet-specific error occurs
107     * @throws IOException if an I/O error occurs
108     */
109    @Override
110    protected void doPost(HttpServletRequest request, HttpServletResponse response)
111            throws ServletException, IOException {
112        processRequest(request, response);
113    }
114
115    /**
116     * Returns a short description of the servlet.
117     *
118     * @return a String containing servlet description
119     */
120    @Override
121    public String getServletInfo() {
122        return "Short description";
123    }// </editor-fold>
124
125}
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。