jsp 页面 Cookie 操作及判断

本文详细介绍了网站登录页面的构建与实现过程,包括使用javascript进行非空验证,处理登录请求并设置cookie,以及在后台页面通过cookie进行身份验证。同时阐述了退出机制和cookie的管理方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一步
login.jsp页面(表单提交方式是用javascript 防止参数暴露)
                <form action="dologin.jsp" name="userlogin"  method="post">
                    <table class="hou_tabb_lian">
                        <tr><td>用户登录: <input id="user" name="user" type="text"  /></td></tr>
                        <tr><td>用户密码: <input id="pwd"  name="pwd" type="password"   /></td></tr>
                        <tr><td style="padding:4px 0 0 64px;"><input type="button" value="登陆" οnclick="login()" /></td></tr>
                        <tr><td style="padding:4px 0 0 64px;"><div id="login_err"></div></td></tr>
                    </table>
                </form>
<script language="javascript">
    <!--登陆非空验证-->
    function login(){
        var user=document.getElementByIdx_x_x_x("user").value;
        var pwd=document.getElementByIdx_x_x_x("pwd").value;
        if(user!=""&&pwd!=""){

            submit();
        }else{
            document.getElementByIdx_x_x_x("login_err").innerHTML="帐号密码不能为空";
        }
    }
    function submit(){
        document.userlogin.submit();
    }
</script>

第二步
dologin.jsp(处理页)
<body>
<%    //获得帐号密码
    String name=request.getParameter("user");
    String pwd=request.getParameter("pwd");
    //调用业务类的方法判断用户是否纯在 可以返回boolean类型
    ResultSet rs=user.login(name,pwd);
    if(rs.next()){
                Cookie usersCookie=new Cookie("name",java.net.URLEncoder.encode(name,"UTF-8"));
                usersCookie.setMaxAge(-1);
                response.addCookie(usersCookie);
                response.sendRedirect("index.jsp");
    }else{
        response.sendRedirect("login.jsp");
    }
%>
</body>


第三步
每一个后台管理页添加cookie判断的代码
checkLogin.jsp
<%    String name="";
boolean has=false;
    Cookie Cookies[]=request.getCookies();
    if(Cookies!=null){
    for(int n=0;n<Cookies.length;n++){;
         Cookie newCookie= Cookies[n];
             if(newCookie.getName().equals("name")){;
                has=true;
                name=newCookie.getValue();
                name=java.net.URLDecoder.decode(name,"UTF-8");
        }}}   
if(!has){
response.sendRedirect("login.jsp");
}%>

或者在每个后台页面调用
<%@ include file="template.jsp" %>


第四步
cookie退出
loginOut.jsp
<%
//session.invalidate();

Cookie[]   cookies=request.getCookies();  
 
      if(cookies!=null)  
      
          for(int   i=0;i<cookies.length;i++)  
          
              String   tempuid_1=cookies[i].getName();  
            
              if(tempuid_1.equals("name"))  
              
                  cookies[i].setMaxAge(0);  
                  response.addCookie(cookies[i]);  
                   
              
              if(tempuid_1.equals("pwd"))  
              
                  cookies[i].setMaxAge(0);  
                  response.addCookie(cookies[i]);  
                
              
            
        
response.sendRedirect("login.jsp");

%>

Cookie cookies[]=request.getCookies(); //读出用户硬盘上的Cookie,并将所有的Cookie放到一个cookie对象数组里面
Cookie sCookie=null;
for(int i=0;i<cookies.length-1;i++){    //用一个循环语句遍历刚才建立的Cookie对象数组
sCookie=cookies[i];   //取出数组中的一个Cookie对象
if(sCookie!=null){
      if(("cookieName").equals(sCookie.getName())){     
        pageContext.setAttribute("SavedUserName",sCookie.getValue());
      }
   }
 
//保存用户名到cookies
 
String user_name=request.getParameter("user_name");
if(!"".equals(user_name) && request.getParameter("RmbUser")!=null){
Cookie cookie=new Cookie("usernamecookie",user_name);
cookie.setMaxAge(365*24*60*60); //保存365天
response.addCookie(cookie); //写COOKIE
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值