以下是Servlet里验证身份方法关键代码~~问题在代码后面

[复制链接]
查看11 | 回复3 | 2010-10-5 00:21:25 | 显示全部楼层 |阅读模式
private void logon(HttpServletRequest request, HttpServletResponse response) {
boolean flag = validateLogon(request,response) ; //验证输入的表单数据是否为空
RequestDispatcher rd = null ;
if(flag)
{

LogonDao masterDao = new LogonDao() ;

MasterBean logoner = new MasterBean() ;

logoner.setMasterName(request.getParameter("userName")) ;

logoner.setMasterPass(request.getParameter("userPass")) ;

boolean mark = masterDao.logon(logoner) ; //验证用户身份

if(!mark)

{

request.setAttribute("messages", "
  • 输入用户名或密码错误!") ;

    rd = request.getRequestDispatcher("/admin/logon.jsp") ;

    rd.forward(request, response) ;

    }

    else //存在该用户

    {

    HttpSession session = request.getSession() ;

    //将当前登录用户注册到session中的logonner属性中

    session.setAttribute("logoner", logoner) ;

    response.sendRedirect("admin/AdminIndex.jsp") ;

    }


    }else
    {
    //为空

    rd = request.getRequestDispatcher("/admin/logon.jsp") ;

    rd.forward(request, response) ;
    }
    }
    这段代码【
    rd = request.getRequestDispatcher("/admin/logon.jsp") ;

    rd.forward(request, response) ;】
    和这段代码
    【response.sendRedirect("admin/AdminIndex.jsp") ;】
    的区别,顺便说下那路径问题,为什么一个”/admin/..“一个是"admin/.."有什么区别

  • 回复

    使用道具 举报

    千问 | 2010-10-5 00:21:25 | 显示全部楼层
    request.getRequestDispatcher(转发)与response.sendRedirect(重定向)的区别是个老生常谈的问题了转发一转发的URL只能指向本应用,二是转发不重新创建请求对象(request),也就是说,如果你原来request中的"name=godelegant",那转发后的servlet或者jsp中还得取到这个值,三是处理方式,如下:user(request) ---> action1(servlet) -----> action2(action1中的地址)重定一是重定向中的后的URL参数可以指定任何地址(本应用或者其它),重定向的处理方式:user(request) ---> action1
    回复

    使用道具 举报

    千问 | 2010-10-5 00:21:25 | 显示全部楼层
    rd = request.getRequestDispatcher("/admin/logon.jsp") ;
    rd.forward(request, response) ;是请求转发,这种方式发送的请求没有改变,是原来同一个请求,因此它只能访问当前工作站中的资源,同时,你会发现,地址栏中的地址是同一个,并没有发生变化。相对于转发,那就是重
    回复

    使用道具 举报

    千问 | 2010-10-5 00:21:25 | 显示全部楼层
    绝对路径和相对路径
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    主题

    0

    回帖

    4882万

    积分

    论坛元老

    Rank: 8Rank: 8

    积分
    48824836
    热门排行