nik324 Δημοσ. 5 Απριλίου 2015 Δημοσ. 5 Απριλίου 2015 (επεξεργασμένο) Καλησπέρα, κοιτώντας τον παρακάτω κώδικα προσπαθώ στην λειτουργικότητα που δίνεται να προσθέσω κάποια επιπλέον πράγματα. Αυτό που θα ήθελα να κάνω είναι στη σελίδα welcome.jsp να προσθέσω ένα button με action κάποιο άλλο servlet. Ως εδώ όλα εύκολα. Αυτό που θέλω να μάθω είναι αν μπορώ να δώσω το username (το οποίο από ότι έχω καταλάβει έχει ''έρθει'' στην jsp σελίδα μέσω του session) στο νέο servlet που θα τρέχει με το action του button που θα φτιάξω. Δλδ το username που ''ζει'' στο loginServlet να μπορώ να έχω πρόσβαση και όταν γράφω κώδικα στο νέο servlet. Αυτό θεωρείται επικοινωνία μεταξύ των servlets; Ευχαριστώ και ελπίζω να μην μπέρδεψα. Το κάνω λίγο πιο συγκεκριμένο: LoginServlet.java public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); HttpSession session = null; RequestDispatcher dispatcher = null; if (("prasad".equalsIgnoreCase(username) && "kharkar".equals(password))) { session = request.getSession(); session.setAttribute("username", username); dispatcher = request.getRequestDispatcher("Welcome.jsp"); } else { dispatcher = request.getRequestDispatcher("failure.jsp"); } dispatcher.forward(request, response); } } LogoutServlet.java public class LogoutServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); session.invalidate(); } } login.jsp <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> <form action="LoginServlet" method="post"> username :<input type="text" name="username"> <br> password :<input type="password" name="password"><br> <input type="submit" value="Login"> </form> </body> </html> welcome.jsp <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> Welcome ${sessionScope['username']} <BR> <form method = "post" action = "TestServlet"> <input type = "submit" value = "Test"/> </form> <form method = "post" action = "LogoutServlet"> <input type = "submit" value = "Logout"/> </form> </body> </html> </body> Συγκεκριμένα όταν πατηθεί το button Test πως μπορώ να έχω πρόσβαση μέσω επικοινωνίας των Servlet στο username Επεξ/σία 6 Απριλίου 2015 από nik324
nucleus Δημοσ. 6 Απριλίου 2015 Δημοσ. 6 Απριλίου 2015 Με το παρακάτω ίσως HttpSession session = null; session = request.getSession(); session.getAttribute("username"); Περισσότερα εδώ https://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/http/HttpSession.html
πc stratos Δημοσ. 7 Απριλίου 2015 Δημοσ. 7 Απριλίου 2015 ατιμο csd ontopic εγω κανω σε mysql και αντιμετωπιζω το ιδιο προβλημα γνωριζει κανεις την λυση?
nucleus Δημοσ. 7 Απριλίου 2015 Δημοσ. 7 Απριλίου 2015 Δεν έχει σημασία πως κάνεις το authentication του χρήστη. Στον παραπάνω κώδικα String username = request.getParameter("username"); String password = request.getParameter("password"); HttpSession session = null; RequestDispatcher dispatcher = null; if (("prasad".equalsIgnoreCase(username) && "kharkar".equals(password))) { session = request.getSession(); session.setAttribute("username", username); dispatcher = request.getRequestDispatcher("Welcome.jsp"); } else { dispatcher = request.getRequestDispatcher("failure.jsp"); } Απλώς ελέγχει αν το username είναι "prasad" και το password "kharkar" καρφωτά.Εσύ στο ίδιο σημείο πρέπει να συνδεθείς στην mysql να κάνεις select για το username και το password αν υπάρχουν και αν σου φέρει αποτελέσματα να το βάλεις στο session και να κάνεις το redirect στην σωστή σελίδα ή όχι. session = request.getSession(); session.setAttribute("username", username); dispatcher = request.getRequestDispatcher("Welcome.jsp"); Αν και εσύ χρησιμοποιείς servlets/jsp και το session για αποθήκευση του username το ίδιο ισχύει με αυτό που πρότεινα πιο πάνω.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα