日期:2014-05-18  浏览次数:20730 次

JSP重复登陆的问题
哪个高手能帮帮我
说的具体一点

我的登陆页面   已经存在     session   是验证码的

我再加一个   session     的话就出错,什么错,全英文我看不懂
    我是这样写的  
  我在用户登陆的时候   判断session   ---string   str=null;   str=session.setAttribute
( "Name ",userName).tostring();
if   (str==null&%str.equals( " "))
{
....数据库验证用户
session.getAttribute( "Name ");
}

这样就出错了   不行了哪错了阿急啊,高手帮个忙啊
还有一个就是用户访问页面的权限谁能给我思路
就是说要经过登陆才能访问这个页面没登陆就不能访问跳回登陆页面
thank   you


}

------解决方案--------------------
为什么要再加个session对象呢,它是判断会话跟踪的

你写的也很乱,真的不太好懂你想写什么的...

用户访问页面的权限 页面没登陆就不能访问跳回登陆页面

可以用过滤器很方便

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) {
try {

HttpSession session = ((HttpServletRequest)request).getSession();
if(session.getAttribute( "id ")!=null)
{
filterChain.doFilter(request, response);
}
else
{
request.setAttribute( "mes ", "非法用户,没有经过授权 ");
request.getRequestDispatcher( "/login.jsp ").forward(request,response);
}
} catch (ServletException sx) {
filterConfig.getServletContext().log(sx.getMessage());
} catch (IOException iox) {
filterConfig.getServletContext().log(iox.getMessage());
}
}

登陆页面
<form name= "form1 " method= "post " action= "loginservlet ">
<p> 管理员:
<input name= "id " type= "text " id= "id ">
</p>
<p> 密码:
<input name= "pwd " type= "text " id= "pwd ">
</p>
<p>
<input type= "submit " name= "Submit " value= "提交 ">
</p>
</form>
<div Style= "color:red "> ${requestScope.mes} </div>

处理Servlet的doPost()请求

String id = request.getParameter( "id ");
String pwd = request.getParameter( "pwd ");

//调用模型层
models.Admin admin = new models.Admin();
if(admin.isAdmin(id,pwd))
{
HttpSession session = request.getSession();
session.setAttribute( "id ",id);

response.sendRedirect( "admins/mIndex.jsp ");
}
else
{
request.setAttribute( "mes ", "用户名或密码不正确@ ");
request.getRequestDispatcher( "/login.jsp ").forward(request,response);
}

XML编写:
....
<filter>
<filter-name> safefilter </filter-name>
<filter-class> tools.SafeFilter </filter-class>
</filter>
<filter-mapping>
<filter-name> safefilter </filter-name>
<url-pattern> /admins/* </url-pattern>
</filter-mapping>
...

注:
"admins "是和WEB-INF同目录里的一个文件加,把需要登陆才能进入访问的网页放里面