JSP Включить не работает
login.html
Этот файл содержит код для 2 кнопок. Кнопка входа в систему и регистрации 2 формы.
connected.jsp
Этот файл содержит код для 1 кнопки, которую пользователь может нажать и выйти из системы.
Controller.jsp
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page import="something.*" %>
<%@ page errorPage="Error.jsp" %>
<%
request.setCharacterEncoding("ISO-8859-7");
String errorMessages = "";
String username = request.getParameter("username");
String password = request.getParameter("password");
if ((password.length() > 0) && !(username.length() > 0)) {
errorMessages = ("message1");
throw new Exception(errorMessages);
}
if ((username.length() > 0) && !(password.length() > 0)) {
errorMessages = ("message2");
throw new Exception(errorMessages);
}
if (!(password.length() > 0) && !(username.length() > 0)) {
errorMessages = ("message3");
throw new Exception(errorMessages);
}
DB_something db = new DB_something ();
db.open();
if (request.getParameter("FistName") == null) {
db.authenticateUser(username, password);
session.setAttribute("login_status", "connected");
} else {
String fName = request.getParameter("FistName");
String lName = request.getParameter("LastName");
String email = request.getParameter("email");
String gender = request.getParameter("sex");
String month = request.getParameter("month");
String day = request.getParameter("day");
String year = request.getParameter("year");
String address = request.getParameter("Adress");
db.registerUser(fName, lName, email, username, password, gender, month, day, year, address);
session.setAttribute("login_status", "connected");
}
db.close();
%>
<jsp:forward page="index.jsp" />
DB_something - это класс, который открывает и закрывает соединение с базой данных и проверяет, выполнен ли вход в систему, а также регистрирует пользователя в случае регистрации.
index.jsp
<%
if (request.getParameter("login_status") == null) {
%>
<jsp:include page="login.html" />
<%
} else {
if(1==1)
throw new Exception("error...");
%>
<jsp:include page="connected.jsp" />
<%
}
%> . . . .
в моем index.jsp я попытался включить login.html, если пользователь не подключен (login_status = null), и включить connected.jsp, если пользователь подключен (login_status = "connected"), проблема в том, что он не работает.it всегда добавляет login.html.. Я даже пытаюсь добавить исключение throw (if 1==1, потому что в противном случае было сгенерировано исключение..), но вывод всегда одинаков (исключение никогда не работает) Есть идеи?
1 ответ
Вы сохраняете атрибут в сеансе, но пытаетесь извлечь его из запроса.
Вместо директивы -
<jsp:forward page="index.jsp" />
использовать этот:
<jsp:forward page="index.jsp">
<jsp:param name="login_status" value="connected" />
</jsp:forward>
Или извлеките атрибут из сеанса:
if(request.getSession().getAttribute("login_status") == null) {
...
}