Отправка / получение запроса GET с параметрами - PullRequest
0 голосов
/ 10 июля 2019

У меня есть ситуация, в которой я хочу выбрать все записи из базы данных с определенным идентификатором.Сначала запрос отправляется из JavaScript, который получен сервлетом, который обращается к DAO, которая, в свою очередь, запрашивает базу данных.Затем данные, очевидно, вернутся во внешний интерфейс.Я просто немного пасмурно при передаче этих параметров, чтобы база данных запрашивалась правильно.

В настоящее время я получаю ошибку 500 из-за неправильной передачи моих параметров.

Начиная с JavaScript с первоначальным запросом:

let xhr = new XMLHttpRequest();
xhr.open('GET', 'http://localhost:8080/project1attempt/reimbursement? 
employee_id=' + x._id, true);
xhr.send();

Получение параметров в сервлете - моя самая большая путаница , поэтому код здесь неполный (rs являетсяВозмещение расходов):

protected void doGet(HttpServletRequest req, HttpServletResponse resp) 
throws ServletException, IOException {

    resp.setContentType("application/json");
    int id = ;
    List<Reimbursement> reimbursements = rs.findAllReimbursements(id);
    String json = new ObjectMapper().writeValueAsString(reimbursements);
    resp.getWriter().write(json);
}

И запрос:

public List<Reimbursement> findAllReimbursements(int id) {
    List<Reimbursement> reimbursements = new ArrayList<>();

    try
        (Connection c = manager.getConnection()) {

        String sql = "SELECT reimbursement_id, date, description, amount, 
typing_id, employee_id" +
                "FROM reimbursements" +
                "WHERE reimbursement_id = ?";

        PreparedStatement ps = c.prepareStatement(sql);
        ps.setInt(1, id);
        ResultSet rs = ps.executeQuery();

        Reimbursement r = null;
        while (rs.next()) {
            r = new Reimbursement();
            r.setId(rs.getInt("reimbursement_id"));
            r.setDate(rs.getDate("date"));
            r.setDescription(rs.getString("description"));
            r.setAmount(rs.getDouble("amount"));
            r.setTypingId(rs.getInt("typing_id"));
            r.setEmployeeId(rs.getInt("employee_id"));
            reimbursements.add(r);
        }
        return reimbursements;
    } catch (SQLException e) {
        throw new BlabApplicationDataException("Could not connect to 
Reimbursement Repository" + id);
    }
 }

1 Ответ

2 голосов
/ 10 июля 2019

Вы можете использовать getParameter метод HttpServletRequest, чтобы получить нужный параметр URL.

Возможно, это линия, которую вы ищете.

String idStr = req.getParameter('employee_id');
if(idStr != null) { 
   int id = Integer.parseInt(idStr);
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...