有登录页面a.jsp,查询及展示页面b.jsp,在a.jsp页面通过了用户名和密码的验证后跳转到了b.jsp页面,再在b.jsp页面输入查询条件进行查询并将查询到的数据返回在b.jsp进行展示,问:如何做才能确保b.jsp页面的查询数据库的操作是在a.jsp页面通过了用户名和密码的验证的前提下进行呢?
我的担心是:如果任意人知道了b.jsp页面的网络路径,直接使用,岂不是废了我的武功?
我是初学者,请大家指点,在此先行谢过。

解决方案 »

  1.   

    我自己想到的办法是b.jsp页面首先要从a.jsp获得一个参数,用以证明是已经完成了“a.jsp页面通过了用户名和密码的验证”这一步的,然后再执行查询工作。不知这样是不是最好的?
      

  2.   

    这个...你是不是想一定要登录才可以访问b.jsp啊?
    那你就做一个过滤器,每次访问前,如果不是登录页面,判断当前的session有没有用户名属性,如果没有,则跳到登录页面.
      登录成功的时候,将用户名放在当前的session属性中.常见的登录控制问题.
      

  3.   

    登录后把用户信息保存在session中之后方法1:
    拦截器拦截,未登录用户无法访问b.jsp方法2:
    b.jsp中读session判断,未登录则提示或跳转到a.jsp方法3:
    查询数据库之前读session判断,未登录用户无法查询数据库
      

  4.   

    每个非登录页面都判断用户的SESSION是否为空,为空就去登录页面,不为空就继续操作。
    写个公共页面然后 INCLUDE
      

  5.   


    请问第二种方法结合我的问题及情景是不是在a.jsp页面用session.setAttribute();将通过了的用户名和密码对一个指定的变量进行赋值,然后再在b.jsp页面用session.getAttribute();进行获取进行非空判断,如果非空就进行下一步的操作?是不是这样呢?
      

  6.   

    直接做一个过滤器、在web.xml里面配置一下、
    凡是访问b.jsp的都要去过滤器里面过滤一下是否已经登陆
      

  7.   


    不是在a.jsp对session赋值
    而是在a.jsp提交到的action里赋值
    a.jsp中的代码运行在用户看到页面之前,action里的代码才会运行在用户提交登录之后,这个概念要想清楚