Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

Καλησπέρα, 

 

κοιτώντας τον παρακάτω κώδικα προσπαθώ στην λειτουργικότητα που δίνεται να προσθέσω κάποια επιπλέον πράγματα.

 

Αυτό που θα ήθελα να κάνω είναι στη σελίδα 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
Επεξ/σία από nik324
Δημοσ.

Δεν έχει σημασία πως κάνεις το 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 το ίδιο ισχύει με αυτό που πρότεινα πιο πάνω.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...