返回单个数据库条目

时间:2018-01-10 18:10:51

标签: regex servlets conditional

当我调用URL 1时,以下代码段能够将我数据库中的所有汽车作为JSON返回,并且我可以在浏览器中显示它们。但是,当我使用URL 2时,我什么也得不到,浏览器显示404错误。但奇怪的是,错误没有显示消息" Car not found"。它显示"原始服务器没有找到目标资源的当前表示,或者不愿意透露它存在。"。

我测试了RegexUtil类,当我调用URL 2时,它确实将Long返回为1,当我调用URL 1时,它将Long返回null。

我做错了什么?

1)http://localhost:8080/Cars/cars 2)http://localhost:8080/Cars/cars/1

    String requestUri = request.getRequestURI();
    Long id = RegexUtil.matchId(requestUri);
    if (id != null) {
        //this if test is never executed even when id != null
        // id was informed
        Car car = carService.getCar(id);
        if (car != null) {
            Gson gson = new GsonBuilder().setPrettyPrinting().create();
            String json = gson.toJson(car);
            ServletUtil.writeJSON(response, json);
        } else {
            response.sendError(404, "Car not found");
        }
    } else {
        //this else executes fine
        // Show car list
        List<Car> cars = carService.getCars();
        Gson gson = new GsonBuilder().setPrettyPrinting().create();
        String json = gson.toJson(cars);
        ServletUtil.writeJSON(response, json);
    }

1 个答案:

答案 0 :(得分:0)

问题已解决。

servlet注释不正确。

星号丢失了

@WebServlet(urlPatterns = { "/cars/*" },