JAVA中的问题

在J2EE开发的时候,做登录, 想实现这样一个功能

    当用户点击某个功能的时候,发现没有登录,就跳转到登录页面,当登录成功以后继续做那件事情, 这个功能怎么实现的丫。

:D

[b]使用filter过滤器实现登陆权限验证[/b]

详细教程如下:
[url=http://hi.baidu.com/xfpsh/blog/item/f14385f2f41367c70b46e050.html]http://hi.baidu.com/xfpsh/blog/item/f14385f2f41367c70b46e050.html[/url]

[b]用过滤器filter实现每次访问的拦截与审核![/b]

在登录的url后面加参数
例如
redirecturl=xxx,
程序中再去取这个参数的值
然后进行调转。
如果这个值为空
通过
String url=request.getHeader("referer");

取得跳转的路径。

[b]
新建一个Filter用来检测是否登录。

将这个Filter的mapping匹配所有需要检查的页面。

在Filter中,如果没有登录,则将请求页,放入到request中,然后将request重定向到登录页。将Filter传来目标页面,写入Form的隐藏字段。

登录页提交,登录的后台,在完成登录后,检查是否含有 目标页面的信息,如果有就跳转到目标页面。

就是上述流程了,主要是 目标页面的传递,这里用的是request,你也可以用session。[/b]

[b]filter代码[/b]
[code="java"]import javax.servlet.Filter;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

import javax.servlet.FilterChain;

import java.io.IOException;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpSession;

import javax.servlet.http.HttpServletResponse;

public class RightFilter

implements Filter {

public void init(FilterConfig filterConfig) throws ServletException {

}

public void doFilter(ServletRequest request, ServletResponse response,

FilterChain chain) throws IOException, ServletException {

HttpServletRequest req = (HttpServletRequest) request;

HttpServletResponse res = (HttpServletResponse) response;

HttpSession session = req.getSession(true);   

//从session里取的用户名信息   
String username = (String) session.getAttribute("username");   

//判断如果没有取到用户信息,就跳转到登陆页面   
if (username == null || "".equals(username)) {   
  //跳转到登陆页面   
  res.sendRedirect("http://"+req.getHeader("Host")+"/login.jsp");   
}   
else {   
  //已经登陆,继续此次请求   
  chain.doFilter(request,response);   
}   

}

public void destroy() {

}

} [/code]

2.然后在web.xml里配置需要登陆权限验证的JSP文件:

a.如果是某个具体的JSP文件(如a.jsp)需要登陆验证

Web.xml配置代码
[code="xml"]



right

com.taihuatalk.taihua.common.RightFilter



right

/a.jsp



[/code]

b.如果是某一个目录(如a/目录)整个目录下的文件都需要登陆验证:

Web.xml配置代码
[code="xml"]



right

com.taihuatalk.taihua.common.RightFilter



right

/a/**//*

[/code]