Advertisement
Guest User

Login

a guest
Mar 26th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.46 KB | None | 0 0
  1.  
  2. package controller;
  3.  
  4. import model.CounterBean;
  5. import model.DbManager;
  6. import model.UtenteBean;
  7. import sun.rmi.server.Dispatcher;
  8.  
  9. import java.io.IOException;
  10. import javax.servlet.RequestDispatcher;
  11. import javax.servlet.ServletContext;
  12. import javax.servlet.ServletException;
  13. import javax.servlet.annotation.WebServlet;
  14. import javax.servlet.http.*;
  15.  
  16.  
  17.  
  18. @WebServlet(name="Login")
  19.  
  20. public class Login extends HttpServlet {
  21. private static final long serialVersionUID = 1L;
  22.  
  23. // questo counter รจ visibile solo in questa servlet
  24. // e conta il numero di accessi totale da parte di chiunque accede a questa servlet
  25. // da quando viene deployed sul server
  26. private int servletCount;
  27.  
  28. public void init() throws ServletException {
  29. // inizializzazione
  30. servletCount = 0;
  31. }
  32.  
  33. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  34.  
  35. UtenteBean utente = new UtenteBean();
  36.  
  37. utente = loginIsPresent(request,utente);
  38.  
  39. if(utente == null){
  40. response.sendRedirect("login.jsp");
  41.  
  42. }
  43.  
  44. else{
  45. utente = retrieveUserData(utente);
  46. if(utente == null)
  47. {
  48. request.setAttribute("denied", true);
  49. RequestDispatcher requestDispatcher = request.getRequestDispatcher("login.jsp");
  50. requestDispatcher.forward(request, response);
  51. }
  52. else{
  53. Cookie[] cookies = new Cookie[2];
  54. cookies[0] = new Cookie("username",utente.getUsername());
  55. cookies[1] = new Cookie("password",utente.getPassword());
  56.  
  57. response.addCookie(cookies[0]);
  58. response.addCookie(cookies[1]);
  59.  
  60. RequestDispatcher dispatcher = request.getRequestDispatcher("index.jsp");
  61.  
  62. dispatcher.forward(request,response);
  63.  
  64. }
  65. }
  66.  
  67. }
  68.  
  69.  
  70. private UtenteBean loginIsPresent(HttpServletRequest request, UtenteBean utente) {
  71.  
  72.  
  73. utente = checkCookiesCredentials(request,utente);
  74.  
  75. if(utente == null)
  76. {
  77. utente = checkParametersCredentials(request,utente);
  78. }
  79.  
  80. return utente;
  81. }
  82.  
  83. private UtenteBean checkCookiesCredentials(HttpServletRequest request,UtenteBean utenteBean){
  84.  
  85. Cookie[] cookies = request.getCookies();
  86.  
  87. if(cookies != null){
  88. for (int i = 0; i < cookies.length; i++) {
  89.  
  90. Cookie c = cookies[i];
  91.  
  92. if(c.getName().equals("username")) utenteBean.setUsername(c.getValue());
  93. if(c.getName().equals("password")) utenteBean.setPassword(c.getValue());
  94.  
  95. }
  96. }
  97.  
  98. System.out.println(utenteBean);
  99. return utenteBean;
  100.  
  101. }
  102.  
  103. private UtenteBean checkParametersCredentials(HttpServletRequest request, UtenteBean utenteBean){
  104.  
  105. utenteBean.setUsername(request.getParameter("username"));
  106. utenteBean.setPassword(request.getParameter("password"));
  107.  
  108. return utenteBean;
  109. }
  110.  
  111. private UtenteBean retrieveUserData(UtenteBean utenteBean){
  112.  
  113. DbManager db = new DbManager();
  114.  
  115. return db.userLogin(utenteBean);
  116. }
  117.  
  118.  
  119. private CounterBean updateCounters(HttpServletRequest request) {
  120.  
  121. servletCount++; // aggiornamento livello di scoping -> servlet
  122. Integer sessionCount; // livello di scoping -> session
  123. Integer applicationCount; // livello di scoping -> application (servletContext)
  124.  
  125. HttpSession session=request.getSession(); // lettura ed aggiornamento -> session
  126. sessionCount = (Integer)session.getAttribute("counter");
  127. if (sessionCount != null)
  128. sessionCount++;
  129. else
  130. sessionCount = 1;
  131. session.setAttribute("counter", sessionCount);
  132.  
  133. ServletContext application = getServletContext(); // lettura ed aggiornamento -> application
  134. applicationCount = (Integer)application.getAttribute("counter");
  135. if (applicationCount != null)
  136. applicationCount++;
  137. else
  138. applicationCount = 1;
  139. application.setAttribute("counter", applicationCount);
  140.  
  141. CounterBean cb = new CounterBean(servletCount, sessionCount, applicationCount);
  142.  
  143. return cb;
  144. }
  145.  
  146.  
  147. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  148.  
  149. doGet(request, response);
  150.  
  151. }
  152.  
  153. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement