Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Легкий вопрос к знатокам / 10 сообщений из 10, страница 1 из 1
07.11.2014, 04:48
    #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
07.11.2014, 09:44
    #38798174
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Легкий вопрос к знатокам
Камиллочканедавно начала изучать Java в универе, дали задание
брехня
...
Рейтинг: 0 / 0
07.11.2014, 11:21
    #38798247
YamahaR1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Легкий вопрос к знатокам
Камиллочка,

Servlet tutorial уже пройден http://docs.oracle.com/javaee/6/tutorial/doc/bnafd.html ?
Замапьте сервлет на нужный вам url и дергайте методы вашего DB класса...
...
Рейтинг: 0 / 0
07.11.2014, 13:28
    #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
07.11.2014, 13:35
    #38798488
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Легкий вопрос к знатокам
Камиллочка,

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

поэтому ошибка вылетает в request.getPathInfo().substring(1) - где request.getPathInfo() == null
...
Рейтинг: 0 / 0
07.11.2014, 14:51
    #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
07.11.2014, 15:11
    #38798603
YamahaR1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Легкий вопрос к знатокам
Atum1Неверно замаплен сервлет !

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

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


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