Advertisement
Guest User

Untitled

a guest
Mar 29th, 2018
240
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.93 KB | None | 0 0
  1. LoginWithServlet
  2. Web Pages
  3. WEB-INF
  4. web.xml
  5. login.xhtml
  6. registr.xhtml
  7. index.xhtml
  8. Source Packages
  9. classes
  10. User.java
  11. Database.java
  12. filters
  13. LoginFilter.java
  14. servlets
  15. LoginServlet.java
  16. RegistrServlet.java
  17.  
  18. @WebServlet(name = "LoginServlet", urlPatterns = {"/login"})
  19. public class LoginServlet extends HttpServlet {
  20.  
  21. private static final Logger logger = Logger.getLogger(LoginServlet.class.getName());
  22.  
  23. @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  24. request.getRequestDispatcher(request.getContextPath() + "/login.xhtml").forward(request, response);
  25. }
  26.  
  27. @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  28. ServletContext ctx = request.getServletContext();
  29.  
  30. String login = (String) request.getParameter("login");
  31. String password = (String) request.getParameter("password");
  32.  
  33. Database database = Database.getInstance();
  34. User user = database.find(login, password);
  35. if (user == null) {
  36. // request.getRequestDispatcher(request.getContextPath() + "/registr").forward(request, response);
  37. ctx.log("Incorrect login or password");
  38. response.sendRedirect(request.getContextPath() + "/registr");
  39. }
  40. else {
  41. ctx.log(String.format("User %s has logged in", user));
  42. request.getSession().setAttribute("user", user);
  43. request.getRequestDispatcher(request.getContextPath() + "/index.xhtml").forward(request, response);
  44. }
  45. }
  46. }
  47.  
  48. @WebServlet(name = "RegistrServlet", urlPatterns = {"/registr"})
  49. public class RegistrServlet extends HttpServlet {
  50.  
  51. private static final Logger logger = Logger.getLogger(RegistrServlet.class.getName());
  52.  
  53. @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  54. request.getRequestDispatcher(request.getContextPath() + "/registr.xhtml").forward(request, response);
  55. }
  56.  
  57. @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  58. ServletContext ctx = request.getServletContext();
  59.  
  60. Long id = Long.valueOf(request.getParameter("id"));
  61. String login = (String) request.getParameter("login");
  62. String password = (String) request.getParameter("password");
  63.  
  64. User user = new User(id, login, password);
  65. Database database = Database.getInstance();
  66. boolean inserted = database.insert(user);
  67. if(inserted) {
  68. ctx.log(String.format("New user %s has registred", user));
  69. request.getSession().setAttribute("user", user);
  70. request.getRequestDispatcher(request.getContextPath() + "/index.xhtml").forward(request, response);
  71. }
  72. else {
  73. ctx.log("Such user already exists");
  74. }
  75. }
  76.  
  77. @Override public String getServletInfo() {
  78. return "Short description";
  79. }
  80.  
  81. }
  82.  
  83. @WebFilter("/*")
  84. public class LoginFilter implements Filter {
  85.  
  86. @Override public void doFilter(ServletRequest request,
  87. ServletResponse response,
  88. FilterChain chain) throws IOException, ServletException {
  89. HttpServletRequest req = (HttpServletRequest) request;
  90. HttpServletResponse res = (HttpServletResponse) response;
  91. HttpSession session = req.getSession(false);
  92. String loginURI = req.getContextPath() + "/login";
  93.  
  94. boolean loggedIn = session != null && session.getAttribute("user") != null;
  95. boolean loginRequest = req.getRequestURI().equals(loginURI);
  96.  
  97. if(loggedIn || loginRequest) {
  98. chain.doFilter(request, response);
  99. }
  100. else {
  101. res.sendRedirect(loginURI);
  102. }
  103. }
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement