0

我有问题:

看,当用户访问我的网页时,我想从他的 cookie 或数据库中的特殊 ID 获取有关用户的信息,并在用户访问页面时在我的页面上呈现例如 hello User1。

filter.init()在用户请求 servlet 之前,我必须在哪里执行此操作,或者在哪里servlet.init()可以获取此特定信息servlet.doGet()

谢谢你。最诚挚的问候。

4

2 回答 2

0

在您的 Filter 中,使用方法 doFilter

public void  doFilter(ServletRequest request, 
             ServletResponse response,
             FilterChain chain) 
             throws java.io.IOException, ServletException {
//check cookie or anything you want
}
于 2013-10-31T12:56:35.503 回答
0

通常,您希望使用过滤器来转换输入或输出,或者为您的 servlet 设置前置条件。

在您的特定情况下,因为它非常简单,所以您选择哪一个可能并不重要。 然而,让过滤器执行身份验证和授权是很常见的,因此您可以让过滤器检查 cookie 和/或查询数据库以获取用户信息,并将其添加为请求属性。之后,让 servlet 使用准备好的请求属性完成准备或写入消息的工作。作为一般规则,您不想在过滤器中写入输出。

在任何一种情况下,您都不会init为此任务使用过滤器或 servlet 的方法。当应用程序服务器创建对象时调用该init方法来初始化过滤器或 servlet,并且可能会或可能不会为每个请求调用(实际上,它可能不会为每个请求调用)。

于 2013-10-31T13:25:07.637 回答