2016-03-11 6 views
0

Я пытаюсь разработать веб-приложение JavaEE 7.0 с использованием NetBeans (IDE), GlassFish 4.1.0 (веб-сервер) и MySql 5.7.11 (сервер базы данных). Моя операционная система - Windows 8.1.Как выйти из веб-страницы, реализованной в jsp - JavaEE и NetBeans

Я хотел бы реализовать очень базовую систему аутентификации. Пользователь вводит имя пользователя и пароль, уже вставленный в базу данных, и, если он верен, он сможет получить доступ к веб-странице с именем patient.jsp. Он также может выйти из этой веб-страницы. Поэтому я разработал следующую процедуру для создания этой системы аутентификации:

1- Я создал три файла patient.jsp, loginform.jsp и PatientServlet.java. Это иерархия проекта:

Project Hierarchy

2 - Код:

Для PatientServlet.java:

@WebServlet("/patient") 
public class PatientServlet extends HttpServlet {  
private static final long serialVersionUID=1L; 

    @override 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
     this.getServletContext().getRequestDispatcher("/WEB-INF/patient.jsp").forward(request,response); 
    } 
    } 

Для loginform.jsp:

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>JSP Page</title> 
</head> 
<body> 
    Sign In: 
    <form method="POST" action="j_security_check"> 
     Username:<br> 
     <input type="text" name="j_username" size="20"> 
     Password:<br> 
     <input type="password" name="j_password" size="20"> 
     <br> 
     <input type="submit" value="Sign In"> 
    </form> 
</body> 

Для logout.jsp:

<%@ page session="true"%> 

User '<%=request.getRemoteUser()%>' has been logged out. 
<% session.invalidate(); %> 

<br/><br/> 
<a href="test">Go to Log In form </a> 

Для patient.jsp:

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 
<%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%> 

    <%@page contentType="text/html" pageEncoding="UTF-8"%> 
    <!DOCTYPE html> 
    <html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>JSP Page</title> 
    </head> 
    <body> 
     <h1>Hello!</h1> 
     <a href="logout.jsp">Click here to log out </a>   
     </body> 
    </html> 

3- Поэтому я выполнил приложение, и я начал Форму Войти по желанию :

LogIn form

4- Затем я получил следующую веб-страницу, как хотелось бы:

LogIn success

5- Однако, когда я нажимаю на ссылку Отключиться, появляется следующее сообщение об ошибке:

Error webpage

Я действительно не знаю, что происходит. Не могли бы вы мне помочь, пожалуйста ?

Большое вам спасибо за помощь.

ответ

1

Logout.jsp напрямую не доступен от клиента, так как он находится в каталоге WEB-INF. Вам нужно переместить logout.jsp в корень веб-приложения.

+0

Хорошо. Большое вам спасибо за ваш ответ! –