¿Hay un contexto de solicitud en Java?

No estoy seguro de cómo escribir exactamente el título aquí, y por eso tampoco estoy realmente seguro de cómo buscar la respuesta.

Tengo un motor de servlet java que maneja las solicitudes. Digamos que tenemos una solicitud doGet:

<code>public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //set up user data

    //do whatever the user requested
    SomeClass c = new SomeClass();
    c.doSomething();
}
</code>

Ahora, en DoSomething, quiero poder acceder a qué usuario realizó la solicitud. Ahora mismo lo estoy haciendo creando un objeto java y pasándolo a donde necesito:

<code>public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //set up user data
    MyUserObj userObj = new MyUserObj();
    userObj.setId('123');

    //do whatever the user requested
    SomeClass c = new SomeClass(userObj);
    c.doSomething();
}
</code>

Al hacer esto, tengo acceso a la instancia de MyUserObj, y se puede pasar si es necesario.

Esto se siente descuidado. En asp.net MVC3 (actualmente lo estoy aprendiendo, comencé después de que empecé a aprender java, pero encontré que esto era realmente conveniente, así que me hizo replantearme cómo lo estaba haciendo en java) puedo, por ejemplo, almacenar artículos para el hilo como este:HttpContext.Current.Items.Add("myId", "123"). HttpContext está disponible en otras funciones sin que tenga que pasar un objeto.

¿Hay una manera en java para establecer algunas variables por solicitud (o incluso establecer elMyUserObject para acceder más tarde) sin pasar el objeto como un parámetro?

Si esta es una pregunta común ya contestada, no dude en señalarme en la dirección correcta, ya que no estaba seguro de cómo expresarla.

Respuestas a la pregunta(2)

Su respuesta a la pregunta