Подтвердить что ты не робот

Как установить атрибут session в java?

Я могу установить атрибут session в scriptlet, но когда я пытаюсь установить атрибут session внутри класса java, он показывает ошибку, например, "сеанс не может быть разрешен". Итак, как установить сеанс в java?

<%String username = (String)request.getAttribute("un");
session.setAttribute("UserName", username);%>
4b9b3361

Ответ 1

По Java-классу я предполагаю, что вы имеете в виду класс Servlet, поскольку параметр атрибута сеанса в произвольном Java-классе не имеет смысла. Вы можете сделать что-то подобное в своих методах doGet/doPost в сервлете

public void doGet(HttpServletRequest request, HttpServletResponse response) {

    HttpSession session = request.getSession();
    String username = (String)request.getAttribute("un");
    session.setAttribute("UserName", username);
}

Ответ 2

По умолчанию объект сеанса доступен на странице jsp (неявный объект). Он не будет доступен в обычном классе Java POJO. Вы можете получить ссылку на объект HttpSession на Servelt, используя HttpServletRequest

HttpSession s=request.getSession()
s.setAttribute("name","value");

Вы можете получить сеанс в Action POJO на основе ActionSupport следующим образом

 ActionContext ctx= ActionContext.getContext();
   Map m=ctx.getSession();
   m.put("name", value);

посмотреть: http://ohmjavaclasses.blogspot.com/2011/12/access-session-in-action-class-struts2.html

Ответ 3

Попробуйте это.

<%@page language="java" session="true" %>

Ответ 4

Я пытаюсь поймать вашу точку. Надеюсь, это полезно.....

if (session.isNew()){
     title = "Welcome to my website";
     session.setAttribute(userIDKey, userID);

Ответ 5

Файл Java: Jclass.java

package Jclasspackage

public class Jclass {

    public String uname ;
    /**
     * @return the uname
     */
    public String getUname() {
        return uname;
    }

    /**
     * @param uname the uname to set
     */
    public void setUname(String uname) {
        this.uname = uname;
    }

    public Jclass() {
        this.uname = null;
    }

    public static void main(String[] args) {

    }
}

JSP файл: sample.jsp

    <%@ page language="java"
    import="java.util.*,java.io.*"
    pageEncoding="ISO-8859-1"%>

<jsp:directive.page import="Jclasspackage.Jclass.java" />   
<% Jclass jc = new Jclass();
String username = (String)request.getAttribute("un")
jc.setUname(username);
%>

-----------------

Таким образом, вы можете получить доступ к имени пользователя в java файле, используя "this.username" в классе