powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Легкий вопрос к знатокам
10 сообщений из 10, страница 1 из 1
Легкий вопрос к знатокам
    #38798055
Здравствуйте, недавно начала изучать Java в универе, дали задание.

Одну вещь не могу решить - необходимо добавить в NoSQL БД данные через сервлет.
То есть пишешь в строке localhost8080/...path.../test и в БД должен добавиться объект, у которого рандомное содержание и id - test.
По сути должен работать:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
public class DataBaseAddServlet extends HttpServlet{
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        DatabaseManager dbManager = new DatabaseManager();
        String pathInfo = req.getPathInfo().substring(1);
        String id = dbManager.AddDocument(pathInfo);
        resp.getWriter().println(id);
    }
}




Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
public class DatabaseManager {
    ConnectionManager cm; //класс подключения к БД, он работает
    public DatabaseManager() {
        cm = new ConnectionManager();
    }
 
    public String AddDocument(String id) {
        CouchbaseClient c = cm.getClient();
        String randomId = UUID.randomUUID().toString();
        c.add(id, randomId);
        return id;
    }
}



Буду очень благодарна за помощь!
...
Рейтинг: 0 / 0
Легкий вопрос к знатокам
    #38798174
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Камиллочканедавно начала изучать Java в универе, дали задание
брехня
...
Рейтинг: 0 / 0
Легкий вопрос к знатокам
    #38798247
YamahaR1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Камиллочка,

Servlet tutorial уже пройден http://docs.oracle.com/javaee/6/tutorial/doc/bnafd.html ?
Замапьте сервлет на нужный вам url и дергайте методы вашего DB класса...
...
Рейтинг: 0 / 0
Легкий вопрос к знатокам
    #38798477
YamahaR1,

Да, читала уже, хотя с английским плохо.
В web.xml описала url:

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
		  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         version="2.5">
    <servlet>
        <servlet-name>DatabaseServlet</servlet-name>
        <servlet-class>DatabaseServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>DatabaseServlet</servlet-name>
        <url-pattern>/database/*</url-pattern>
    </servlet-mapping>
</web-app>
...
Рейтинг: 0 / 0
Легкий вопрос к знатокам
    #38798488
mr_virtus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Камиллочка,

а что за сообщение об ошибке?
...
Рейтинг: 0 / 0
Легкий вопрос к знатокам
    #38798562
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неверно замаплен сервлет !

поэтому ошибка вылетает в request.getPathInfo().substring(1) - где request.getPathInfo() == null
...
Рейтинг: 0 / 0
Легкий вопрос к знатокам
    #38798574
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Укажите какая у вас IDE , версия jdk , какой webserver итд

пример :

у меня java 8 , tomcat 8 , netbeans 8 :)

сборка и проект maven!

web.xml нет !

Мапинг /NewServlet/*

дает то - что при вызове

http://localhost:8084/mavenproject1/NewServlet

значение request.getPathInfo() == null

вызов http://localhost:8084/mavenproject1/NewServlet/1/2 дает значение

request.getPathInfo() == 1/2



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
import java.io.IOException;
import java.io.PrintWriter;
import javax.inject.Inject;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 */
@WebServlet(name = "NewServlet", urlPatterns = {"/NewServlet/*"})
public class NewServlet extends HttpServlet {


    private DatabaseManager databaseManager = new DatabaseManager();
    
    /**
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
     * methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        try (PrintWriter out = response.getWriter()) {
            /* TODO output your page here. You may use following sample code. */
            out.println("<!DOCTYPE html>");
            out.println("<html>");
            out.println("<head>");
            
            
            out.println("<title>Servlet NewServlet</title>");            
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Servlet NewServlet at " + request.getContextPath() + "</h1>");
            out.println("<h1>Servlet NewServlet at " +   request.getPathInfo().substring(1) + "</h1>");
            out.println("<h1>Servlet NewServlet at " + databaseManager.AddDocument("1")+ "</h1>");
            out.println("</body>");
            out.println("</html>");
        }
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
     * Handles the HTTP <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

}
...
Рейтинг: 0 / 0
Легкий вопрос к знатокам
    #38798603
YamahaR1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1Неверно замаплен сервлет !

поэтому ошибка вылетает в request.getPathInfo().substring(1) - где request.getPathInfo() == null

Это вы где увидели?
...
Рейтинг: 0 / 0
Легкий вопрос к знатокам
    #38798611
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YamahaR1Это вы где увидели?
Битва экстрасенсов, а не тема.
...
Рейтинг: 0 / 0
Легкий вопрос к знатокам
    #38798617
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczYamahaR1Это вы где увидели?
Битва экстрасенсов, а не тема.Обкатка ТЛП, экстрасенсы фсе в ПТ
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Легкий вопрос к знатокам
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]