Я делаю проект с использованием структуры MVC, где я создал сеанс на нескольких страницах, и на каждой странице отображается анкерный тег (logout), где он перенаправляет пользователя на первую страницу (Страница авторизации). То, что я пытаюсь сделать, - это когда пользователь перенаправляется на страницу входа в систему, он проверяет, существует ли уже существующий сеанс, если «да», а затем сеанс Invalidate, и пользователь должен снова войти в систему. Но мой код не работает после аннулирования сеанса, когда я нажимаю кнопку «Отправить», не заполняя имя пользователя/пароль, которое по-прежнему занимает старое значение ... скажите, пожалуйста, куда я иду?Как сделать недействительным сеанс в jsp
<jsp:useBean id="theBean" class="pack.java.MyModel"/>
<jsp:setProperty name="theBean" property="name" param="userName"/>
<jsp:setProperty name="theBean" property="pass" param="userPass"/>
<%@ taglib uri="/WEB-INF/jsp2/taglib1.tld" prefix="easy" %>
<html>
<head>
</head>
<body >
<form method="post">
<h1>Login please</h1>
Enter username : <input type = text name = userName >
</br>
Enter password : <input type = password name = userPass >
</br>
<input type = submit name = submit value = submit>
</br>
<%
HttpSession session=request.getSession(false);
if(session!=null)
{
session.invalidate();
}
String btn = request.getParameter("submit");
if(btn!=null)
{
%>
<easy:myTag/>
<%
}
%>
</form>
</body>
</html>
Почему вы используете скрипты? http://stackoverflow.com/questions/3177733/how-to-avoid-java-code-in-jsp-files?rq=1 – adarshr
Я использую пользовательский тег, поэтому .. – Gaurav
Это не очень хорошая причина для написания 'session.lnvalidate()' в JSP. Напишите выделенный сервлет, который делает invalidate и просто вызовите ссылку на него в JSP. Если вы действительно хотите удостовериться, что пользователь вышел из системы, прежде чем он попытается войти в систему, напишите фильтр, который сделает это, и подключите его поток. – adarshr