J2EE 权限控制问题 /会话控制 问: 怎样实现 判断 用户是否登录 ,如果登录了,就继续跳转,没有登录 就跳转到登陆页面最好使用 filter 或者 监听器实现 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 其实我认为这用个Servlet充当控制器就可以了,控制验证后页面的转发 方法很多种:jsp 验证、servlet 验证,还有楼主所说的监听器验证等等 随便你用哪一种:if(request.getSession().getAttribute(name) == null){ "没有登陆"; //转发到其他页面} import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;public class LoginFilter implements Filter { public void destroy() { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest)request; HttpServletResponse resp = (HttpServletResponse)response; HttpSession session = req.getSession(); if(session.getAttribute("user"/*your user*/) == null) resp.sendRedirect("/logon.html"/*your login page.*/); else chain.doFilter(req, resp); } public void init(FilterConfig arg0) throws ServletException { }}配置路径为/*就可以了. public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpServletRequest=(HttpServletRequest)servletRequest; HttpServletResponse httpServletResponse=(HttpServletResponse)servletResponse; String requesturi=httpServletRequest.getRequestURI(); //通过检查session中的变量,过滤请求 HttpSession session=httpServletRequest.getSession(); Object currentUer1=session.getAttribute("user"); //当页面进行拦截 if((currentUer1==null&¤tUer2==null)//设置过滤条件 &&(requesturi.lastIndexOf("admin")!=-1||(requesturi.endsWith("list.do")) ||(requesturi.endsWith("beautyList.do")) ||(requesturi.endsWith("foodListAction.do")) ||(requesturi.endsWith("ly.do?method=show") ) ||(requesturi.endsWith("showComms.do")) ||(requesturi.endsWith("listRoom.do")) ||(requesturi.endsWith("reserveManager.do")) ) //以下页面不进行过滤 &&!requesturi.endsWith("/login.jsp") &&!requesturi.endsWith("css") &&!requesturi.endsWith("AuthImg") &&!requesturi.endsWith("jpg") &&!requesturi.endsWith("js") ) { httpServletResponse.sendRedirect(httpServletRequest.getContextPath()+"/admin/login.jsp"); return ; }这个稍微复杂点 我自己写了一套 用的 过滤器 ,但是 在frame 里 它只验证左面的,不验证右面的。。 于是乎 我又在 所有的Action 里加上了 会话验证。 想学java的ssh框架,请高人指点,有什么好的学习视频或者文档(ppt、pdf)? spring+hibernate mysql 一对多+多对多, 级联删除问题。 真心求教。 再findForward就报错的问题 急救:struts2中的传参数问题? 正在做一个登录的程序,请教各位大侠们 JDeveloper对jsp的较验太严格了,有办法不让他较验吗? 请推荐Java大型Web开发架构 有关xdoclet的,问问 javamail应该放在哪个目录下啊? 使用jbpm进行申请提交的时候报错。求大神解答 高手指教一下这类的for循环的运行过程? 自然语言翻译成正则表达式
if(request.getSession().getAttribute(name) == null){
"没有登陆";
//转发到其他页面
}
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class LoginFilter implements Filter { public void destroy() { } public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest)request;
HttpServletResponse resp = (HttpServletResponse)response;
HttpSession session = req.getSession();
if(session.getAttribute("user"/*your user*/) == null)
resp.sendRedirect("/logon.html"/*your login page.*/);
else
chain.doFilter(req, resp);
} public void init(FilterConfig arg0) throws ServletException { }}配置路径为/*就可以了.
FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpServletRequest=(HttpServletRequest)servletRequest;
HttpServletResponse httpServletResponse=(HttpServletResponse)servletResponse;
String requesturi=httpServletRequest.getRequestURI();
//通过检查session中的变量,过滤请求
HttpSession session=httpServletRequest.getSession();
Object currentUer1=session.getAttribute("user"); //当页面进行拦截
if((currentUer1==null&¤tUer2==null)//设置过滤条件
&&(requesturi.lastIndexOf("admin")!=-1||(requesturi.endsWith("list.do"))
||(requesturi.endsWith("beautyList.do"))
||(requesturi.endsWith("foodListAction.do"))
||(requesturi.endsWith("ly.do?method=show") )
||(requesturi.endsWith("showComms.do"))
||(requesturi.endsWith("listRoom.do"))
||(requesturi.endsWith("reserveManager.do"))
)
//以下页面不进行过滤
&&!requesturi.endsWith("/login.jsp")
&&!requesturi.endsWith("css")
&&!requesturi.endsWith("AuthImg")
&&!requesturi.endsWith("jpg")
&&!requesturi.endsWith("js")
)
{
httpServletResponse.sendRedirect(httpServletRequest.getContextPath()+"/admin/login.jsp");
return ;
}这个稍微复杂点
于是乎 我又在 所有的Action 里加上了 会话验证。