There is an application that connects to the database through glassfish resources and everything works. Used servlet. How this can be implemented using RESTful. I do not understand what should be transmitted and how. How REST takes form and returns. All that I found was with the return of status, not resources. It is also interesting how to implement the login and password input and receive a greeting with the username corresponding to this login and password in the database. I absolutely swim in it. (
CRUD operations:
@Stateless public class UserLogIn { @PersistenceContext(unitName = "LEADER") public EntityManager em; public UserLogIn(){} public void add(User user){ if (!user.getLogin().equals("") || !user.getPassword().equals("") || !user.getUsername().equals("")){ em.persist(user); } } public void delete(int id){ em.remove(getUser(id)); } public User getUser(int id){ return em.find(User.class, id); } public void update(User user){ em.merge(user); } public List<User> getAll(){ TypedQuery<User> namedQuery = em.createNamedQuery("User.getAll", User.class); return namedQuery.getResultList(); } } Entity:
@Entity @Table(name = "annusers") @NamedQuery(name = "User.getAll", query = "SELECT u FROM User u") public class User { @Id @SequenceGenerator(name="ad_point_gen",allocationSize=1,sequenceName="ad_points_id_ad_point_seq") @GeneratedValue(generator="ad_point_gen",strategy=GenerationType.SEQUENCE) @Column(name = "id", nullable = false) private Integer id; @Column(name = "login", nullable = false) private String login; @Column(name = "password", nullable = false) private String password; @Column(name="username", nullable = false) private String username; public User() { } public User(String login, String password, String username) { this.login = login; this.password = password; this.username = username; } public String getLogin() { return login; } public void setLogin(String login) { this.login = login; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User{" + "login='" + login + '\'' + ", password='" + password + '\'' + ", username='" + username + '\'' + '}'; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } } Servlet classes for working with CRUD operations
@WebServlet("/add") public class AddAndEditUserServlet extends HttpServlet{ @EJB private UserLogIn userLogIn; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{ resp.setContentType("text/html"); req.setCharacterEncoding("UTF-8"); if(req.getParameter("edit")!=null){ int id = Integer.valueOf(req.getParameter("edit")); User user = userLogIn.getUser(id); req.setAttribute("user",user); } req.getRequestDispatcher("/add.jsp").forward(req,resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{ resp.setContentType("text/html"); req.setCharacterEncoding("UTF-8"); String login = req.getParameter("login"); String password = req.getParameter("password"); String username = req.getParameter("username"); if(!req.getParameter("id").equals("")){ int id = Integer.valueOf(req.getParameter("id")); User user = userLogIn.getUser(id); user.setLogin(login); user.setPassword(password); user.setUsername(username); userLogIn.update(user); }else { userLogIn.add(new User(login, password,username)); } resp.sendRedirect("list"); } } package com.mkyong.rest.servlet; @WebServlet("/delete") public class DeleteUser extends HttpServlet { @EJB private UserLogIn userLogIn; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { if(req.getParameter("id") != null && req.getParameter("id") != ""){ int id = Integer.valueOf(req.getParameter("id")); userLogIn.delete(id); } resp.sendRedirect("list"); } } @WebServlet("/list") public class UserServlet extends HttpServlet{ @EJB private UserLogIn userLogIn; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{ List<User> allUsers = userLogIn.getAll(); req.setAttribute("users", allUsers); req.getRequestDispatcher("/list.jsp").forward(req,resp); } }