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

リビジョン 251, 4.7 KB (コミッタ: atsuko, 9 年 前)

コスト関数導入

行番号 
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        String ask = request.getParameter("ask");
77       
78        HttpSession session = request.getSession();
79        QueryPathGenerator qpg = (QueryPathGenerator)session.getAttribute("qpg");
80        if ( qpg == null ){
81            qpg = new QueryPathGenerator(ep);
82        }
83        SClass[] classes = qpg.getClasses(null);
84        Path[] paths = null;
85        //if ( ask == null ){
86        //    paths = qpg.getPaths(st, en, false);
87        //}else if ( ask.equalsIgnoreCase("true")){
88            paths = qpg.getPaths(st, en, true);           
89        //}else{
90        //    paths = qpg.getPaths(st, en, false);           
91        //}
92           
93        String jsonstr = "[";
94        for(int i = 0; i< paths.length; i++){
95            if (i > 0 && paths[i] != null){
96                jsonstr += ",";
97            }
98            if ( paths[i] == null ){
99                continue;
100            }
101            jsonstr += paths[i].toJSONString3(classes);
102        }
103        jsonstr += "]";
104        // For debug
105        System.out.println("JSON:");
106        System.out.println(jsonstr);
107        out.print(jsonstr);
108    }
109
110    /**
111     * Handles the HTTP <code>POST</code> method.
112     *
113     * @param request servlet request
114     * @param response servlet response
115     * @throws ServletException if a servlet-specific error occurs
116     * @throws IOException if an I/O error occurs
117     */
118    @Override
119    protected void doPost(HttpServletRequest request, HttpServletResponse response)
120            throws ServletException, IOException {
121        processRequest(request, response);
122    }
123
124    /**
125     * Returns a short description of the servlet.
126     *
127     * @return a String containing servlet description
128     */
129    @Override
130    public String getServletInfo() {
131        return "Short description";
132    }// </editor-fold>
133
134}
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。