List of Files
- header.jsp
- login.jsp
- home.jsp
- logout.jsp
header.jsp
<a href="login.jsp">Login</a> <a href="home.jsp">Home</a> <a href="logout.jsp">Logout</a>
login.jsp
<%
HttpSession sess = request.getSession();
if (sess.getAttribute("sess_username") != null) { // check is session variable exist in session pool or not
response.sendRedirect("home.jsp"); // if session variable is already set then redirect it to home page else stay on login page
}
%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<%@include file="header.jsp" %>
<h1>Login</h1>
<form action="home.jsp" method="post">
Username <input type="text" name="username"/><br/>
Password <input type="password" name="password"/><br/>
<input type="submit" value="Login"/>
</form>
</body>
</html>
home.jsp
<%
HttpSession sess = request.getSession(); //get the session object from getSession() method of request object
if (sess.getAttribute("sess_username") == null) { // check whether the session variable is exist in session pool or not
sess.setAttribute("sess_username", request.getParameter("username")); // create session variable if it is not present in session pool
}
%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<%@include file="header.jsp" %>
<h1>Home</h1>
<h2>Hello <%=sess.getAttribute("sess_username")%> </h2>
</body>
</html>
logout.jsp
<%
HttpSession sess = request.getSession();
sess.invalidate(); // this will terminate the session and destroy all variables stored in session pool
%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<%@include file="header.jsp" %>
<h1>Logout</h1>
</body>
</html>
Display Session variables from pool
Console o/p:
Enumeration attributeNames = sess.getAttributeNames();
while (attributeNames.hasMoreElements()) {
String name = (String) attributeNames.nextElement();
String value = (String) sess.getAttribute(name);
out.println(name + "=" + value);
}
JSTL(Java Server Pages Standard Tag Library) o/p:
<c:forEach var="session" items="${sessionScope}">
${session.key} = ${session.value}
</c:forEach>
Тяговые аккумуляторные https://ab-resurs.ru батареи для складской техники: погрузчики, ричтраки, электротележки, штабелеры. Новые АКБ с гарантией, помощь в подборе, совместимость с популярными моделями, доставка и сервисное сопровождение.
Продажа тяговых АКБ https://faamru.com для складской техники любого типа: вилочные погрузчики, ричтраки, электрические тележки и штабелеры. Качественные аккумуляторные батареи, долгий срок службы, гарантия и профессиональный подбор.
Надежный маркет купить аккаунты с историей открывает доступ подобрать учетки под задачи. Если вам нужно купить аккаунт Facebook для рекламы, чаще всего важен не «одном логине», а в контроле и порядке: предсказуемая операционка, понятные роли внутри команды и аккуратные изменения. Мы оформили практичный чек-лист, чтобы вы сразу понимали что уточнить перед покупкой.Навигация по теме: что вы покупаете на практике. Ключевая идея: покупка — стартовая точка. Дальше решает система: кто имеет доступ, как вы ведете кампании последовательно, как документируете действия и как отделяете тесты от масштабирования. Ключевое преимущество данной площадки — это наличие масштабной базы знаний, в которой собраны практичные чек-листы по операционке. Команда сориентируем, каким образом аккуратно разделить роли, чтобы масштабирование шло спокойнее и всё было в рамках правил платформ . Покупая здесь, клиент получает не только состав, а также оперативную консультацию, прозрачные правила, гарантию на валид плюс самые адекватные цены в нише. Дисклеймер: действуйте в рамках закона и всегда с учетом правил сервисов.