Как создать веб-сервис RESTful с использованием сервлетов JUST в формате Json - PullRequest
0 голосов
/ 06 марта 2020

Хорошо, поэтому мне нужно создать веб-сервис RESTful, используя только сервлеты. Я не могу использовать весну или что-то подобное еще. Я новичок в услугах RESTful. Как бы я получить значения из GET и POST из тела, используя что-то вроде почтальона. Например, если я использую почтальон и пытаюсь сделать запрос doPOST, и я записываю username = "bob" и age = "5" в необработанном теле. Как получить эти значения и сохранить их в объекте своего профиля, а затем распечатать в формате Json?

Что у меня есть до сих пор

public class ProfileServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
 * @see HttpServlet#HttpServlet()
 */
public ProfileServlet() {
    super();
    // TODO Auto-generated constructor stub
}

/**
 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
 */
HashMap<Integer, Profile> team = new HashMap<Integer, Profile>();

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
{


    response.setContentType("application/json; charset=UTF-8");
    //String requestUrl = request.getRequestURI();
    PrintWriter out = response.getWriter(); 

    Profile test = new Profile();
    String id = request.getParameter("id");

    int x;
    if(id!=null)
    {
        x = Integer.parseInt(id);
        test = team.get(x);
    }
    else
    {
        out.println("Error no user");
    }



    if(test != null)
    {
        out.println("ID: " + test.getId());
        out.println("name: " + test.getUsername());
        out.println("lastname: " + test.getLastname());
        out.println("age: " + test.getAge());
        out.println("favTeam: " + test.getFavTeam());
    }
    else
    {
        //ERROR

    }
}

/**
 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
 */
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
{
    response.setContentType("application/json; charset=UTF-8");

    String id = (String) request.getParameter("id");
    String age  = (String) request.getParameter("id");


    int x = 0;
    if(id!=null){
      try{
        x = Integer.parseInt(id);
       }catch(Exception e){
       }

    }

    String username = (String) request.getParameter("username");
    String lastname = (String) request.getParameter("lastname");
    String favTeam = (String) request.getParameter("favTeam");

    int numage = 0;
    if(age!=null){
      try{
        numage = Integer.parseInt(age);
       }catch(Exception e){
       }

    }

    Profile profile = new Profile(x,username,lastname,favTeam,numage);

    team.put(profile.getId(),profile);

}

}

my xml

 <servlet>
  <servlet-name>ProfileServlet</servlet-name>
  <servlet-class>ntrut.ProfileServlet</servlet-class>
 </servlet>

 <servlet-mapping>
  <servlet-name>ProfileServlet</servlet-name>
  <url-pattern>/profile</url-pattern>
 </servlet-mapping>

 <servlet-mapping>
  <servlet-name>ProfileServlet</servlet-name>
  <url-pattern>/profile/id</url-pattern>
 </servlet-mapping>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...