2016-12-27 2 views
0

Здравствуйте, я пишу страницу регистрации входа. Страница проверяет пароль пользователя с базой данных и, когда это правильно, пользователь может получить доступ к новой странице jsp. И он печатает «welcome + username». Как я могу это сделать ? Я искал в Интернете, и я громко кричал ниже кода. Но это не работает. Когда я запускаю, он возвращает «welcome null». Я хочу это в success.jspПолучение атрибута из сеанса в jsp

success.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
<body background="http://www.teamarking.com/barcode/bar_background.jpg"> 


<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>JSP Page</title> 

    </head> 
    <ul> 
    <li><% 
    out.println("<a href='music.jsp'>Music</a>"); 
    %> 
    </li> 
    <li><% 
    out.println("<a href='sport.jsp'>Sport</a>"); 
    %></li> 
    <li> <% 
    out.println("<a href='stage.jsp'>Stage</a>"); 
    %></li> 
    <li> <% 
    out.println("<a href='family.jsp'>Family</a>"); 
    %></li> 
    <li> <% 
    out.println("<a href='education.jsp'>Education</a>"); 
    %></li> 
    </ul> 
    <div class="landscape"> 
    <% 
    String username = (String) request.getSession().getAttribute("username"); 
    session.setAttribute("username", username); 

    out.println("welcome" + username); 

    out.println(
     "<a href='logout.jsp'>Log out</a>"); 

    out.println(
     "<a href='myreservations.jsp'>My Reservations</a>"); 
    %> 
    </div> 
    </body> 
    </html> 

login.jsp

<%@ page import ="java.sql.*" %> 
    <% 
    String username = request.getParameter("username"); 
    String password = request.getParameter("password"); 
    Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance(); 
    Connection con = DriverManager.getConnection("jdbc:derby://localhost:1527/users", "users", "123"); 
    Statement st = con.createStatement(); 
    ResultSet rs; 
    rs = st.executeQuery("select * from users where username='" + username + "' and password='" + password + "'"); 
    if (rs.next()) { 
    session.setAttribute("username", username); 
    response.sendRedirect("success.jsp"); 
    } else { 
    out.println("Invalid password <a href='index.jsp'>try again</a>"); 
    } 
    st.close(); 
    %> 
+0

Не могли бы вы показать код, в который вы помещаете «имя пользователя» в атрибуты сеанса? –

+0

i обновил мой код – tripley

ответ

0

Перед тем, как можно прочитать атрибут "имя пользователя", вы должны установить атрибут. Поэтому вы должны использовать функцию setAttribute().

request.getSession().setAttribute("username", nameOfUser); 

Вы должны использовать этот код после того, как вы проверили или подтвердили имя пользователя и пароль. Можете ли вы показать остальную часть своего кода (часть, где происходит проверка)?

+0

как я могу получить это имя пользователя на другой странице jsp? – tripley

+0

Это странно. Я думаю, что код 'session.setAttribute (« имя пользователя », имя пользователя);' in success.jsp не требуется. Можете ли вы попытаться изменить 'request.getSession(). GetAttribute (" username ")' to 'session.getAttribute (" username ")'. –

Смежные вопросы