Existe um contexto de solicitação em Java?

Eu não sei exatamente como colocar o título aqui, e por causa disso eu também não sei como procurar a resposta.

Eu tenho um mecanismo de servlet java que lida com solicitações. Digamos que tenhamos uma solicitação do 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>

Agora no doSomething, quero poder acessar qual usuário fez a solicitação. Agora eu estou fazendo isso criando um objeto java e passando para onde eu precisar:

<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>

Ao fazer isso, eu tenho acesso à instância de MyUserObj e ela pode ser repassada posteriormente, se necessário.

Isso parece desleixado. No asp.net MVC3 (estou aprendendo atualmente, comecei depois que comecei a aprender java, mas achei isso muito conveniente, então me fez repensar como eu estava fazendo isso em java) Eu posso, por exemplo, armazenar itens para o atual fio assim:HttpContext.Current.Items.Add("myId", "123"). HttpContext está então disponível em outras funções sem que eu tenha que passar em torno de um objeto.

Existe uma maneira em java para definir algumas variáveis ​​por solicitação (ou mesmo definir oMyUserObject para ser acessado mais tarde) sem passar o objeto através de um parâmetro?

Se essa é uma pergunta já respondida e comum, sinta-se à vontade para me apontar na direção certa, pois não sabia ao certo como expressá-la.

questionAnswers(2)

yourAnswerToTheQuestion