Bilgi almak için JSP sayfalarında oturum nasıl kullanılır?

Bazı kullanıcı bilgilerini düzenlemek için kullanılan bir JSP sayfam var. Bir kullanıcı web sitesine giriş yaptığında, bilgileri oturumda tutuyorum, ardından düzenleme sayfamda aşağıdakileri deniyorum:

<%! String username=session.getAttribute("username"); %>
<form action="editinfo" method="post">
    <table>
        <tr>
            <td>Username: </td><td> <input type="text" value="<%=username %>" /> </td>
        </tr>
    </table>
</form>

ancak oturum çözümlenemiyor diyerek hata veriyor. Bu konuda ne yapabilirim?

Çözüm

JSP implicit nesneleri session, request vb. gibi JSP bildirimi içinde mevcut değildir `` etiketleri içinde kullanılamaz.

Bunu doğrudan ifadenizde şu şekilde kullanabilirsiniz

<td>Username: </td>
<td><input type="text" value="" /></td>

Diğer bir not, JSP'de scriptlet kullanımı uzun süredir kullanımdan kaldırılmıştır. EL (ifade dili) ve JSTL etiketlerinin kullanılması şiddetle tavsiye edilir. Örneğin, burada EL'yi şu şekilde kullanabilirsiniz

<td>Username: </td>
<td><input type="text" value="${username}" /></td>

En iyi yanı ise kapsam çözümlemesinin otomatik olarak yapılmasıdır. Yani, burada kullanıcı adı sırasıyla sayfa, istek, oturum veya uygulama kapsamlarından gelebilir. Belirli bir örnek için bir isim çakışması nedeniyle bunu geçersiz kılmanız gerekiyorsa, kapsamı açıkça şu şekilde belirtebilirsiniz

<td><input type="text" value="${requestScope.username}" /></td> or,
<td><input type="text" value="${sessionScope.username}" /></td> or,
<td><input type="text" value="${applicationScope.username}" /></td>
Yorumlar (1)

Kullanım

Kullanımınızda `sınıf düzeyine çevrilir, ancak istek yalnızca çevrilen servletinservice()` yönteminde kullanılabilir.

JSP kodunun bir servlete nasıl çevrildiğini görün

Yorumlar (2)

form action="editinfo" method="post">

    <table>
        <tr>
            <td>Username: </td><td> <input type="text" value="" /> </td>
        </tr>

    </table>

ekle ``

Yorumlar (0)