Как правильно общаться с сервлетами из Angular - PullRequest
0 голосов
/ 17 апреля 2019

Я пытаюсь получить данные из сервлета и вызвать такой сервлет из углового контроллера. Однако контроллер, похоже, не достигает сервлета.

Я установил пару сообщений об ошибках (вместо отладки) и вижу, что функция выполняется, но сервлет не достигнут (всегда получая сообщение «неспособен найти»).

Возможно ли, что путь, который я использую, неверен? Я тестировал с / в начале, а также используя полный путь (localhost / project / servlet).

Угловой контроллер


app.controller("userController", function($scope, $http){

    $scope.error = "NOT EXECUTED";
    var onSuccess = function(response){
        $scope.users = response.data;
        $scope.error = "EXECUTED BUT NOT PROPERLY";
    };
    var onError = function(response){
        $scope.error = "unable to find the record";
    }
    var con = $http.get("UserListServlet");
    con.then(onSuccess, onError);

})

Servlet

package servlets;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;

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 org.json.JSONArray;

import com.google.gson.Gson;

import elementos.Usuario;


@WebServlet(value="/UserListServlet")
public class UserListServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;


    public UserListServlet() {
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        Database db = Database.getInstance();
        ArrayList<Usuario> usersList = db.getUsuarios();

        JSONArray arrayObj = new JSONArray(usersList);
        String jObj = new Gson().toJson(arrayObj);

        response.setContentType("text/html");
        response.setCharacterEncoding("UTF-8");
        response.getWriter().write(jObj);


    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}

Моя цель - получить данные из сервлета, чтобы их можно было легко отобразить на моей домашней странице.

UPDATE:

Из браузера я могу получить доступ к другим сервлетам (Логин, процесс) через имя "сопоставления" (@WebServlet (value = "/ login"), но не это. Я также создал это с другим именем и не работает Я не могу найти различий между теми, кто работает, и теми, кто не работает.

1 Ответ

0 голосов
/ 19 апреля 2019

Нашел проблему (мечтал на самом деле).

Сервлеты, которые "работают", были созданы под управлением tomcat 8.0 на моем школьном ПК. Дома я использовал tomcat 8.5, но так как я не удалил зависимость от tomcat 8.0, он вообще не собирался (eclipse не показывал мне ошибки idk, почему). Технически, сервлеты никогда не были построены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...