Есть ли в Java контекст запроса?

Я не уверен, как именно здесь можно сформулировать заголовок, и из-за этого я не совсем уверен, как искать ответ.

У меня есть движок Java сервлет, который обрабатывает запросы. Скажем, у нас есть запрос 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>

Теперь в doSomething я хочу получить доступ к тому, какой пользователь сделал запрос. Сейчас я делаю это, создавая Java-объект и передавая его туда, где мне нужно:

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

Благодаря этому у меня есть доступ к экземпляру MyUserObj, и он может быть передан в случае необходимости.

Это чувствует себя неряшливо. В asp.net MVC3 (я в настоящее время изучаю его, начал после того, как начал изучать Java, но нашел это очень удобным, поэтому заставил меня переосмыслить, как я делал это в Java) Я могу, например, хранить элементы для текущего нить как это:HttpContext.Current.Items.Add("myId", "123"). HttpContext затем доступен в других функциях, без необходимости передавать объект.

Есть ли способ в Java, чтобы установить некоторые переменные для запроса (или даже установитьMyUserObject чтобы получить доступ позже) без передачи объекта в качестве параметра?

Если это общий уже отвеченный вопрос, не стесняйтесь указывать мне правильное направление, поскольку я не был уверен, как его сформулировать.

Ответы на вопрос(2)

Ваш ответ на вопрос