同一页面不同用户分析数据

/*
 * 同一用户不同页面共享数据的方法
 * 1.cookie
 * 2.sendRedirect跳转
 * 3.session技术
 * 4.隐藏表单提交
 *
 *
 * cookie:
 * 数据量不大
 * 服务器端在客户端保存用户的信息
 * 服务器需要时可以从客户端提取
 * 例子 保存用户名和密码 在一定时间不需要重写登陆
 * 记录用户访问网站的喜好
 * 网站的个性化 比如定制网站的服务和内容
 *
 * 通过sendRecdit方法可以将信息传送下一个页面
 * 有点 传送信息快
 * 缺点 只能传送字符串不能传送一个对象
 *
 * sendRecdit("welcome?uname=shumping");
 * 注意点 1welcome表示你要跳转的servlet的url
 * 2.servlet url名和变量之间有?
 * 3.如果要传递两个以上的值,他们之间要用&号分开
 * 例如 sendRedirect("welcome?unmae=shi&pass=ok")
 *
 * 4.传递的是中文需要处理 否则得到乱码
 * 变量名写错获得是null值
 *
 * <from action=login>
 * <input type=hidden name=a value=b>
 * </form>
 * 表单会隐藏但是会把 变量和值传递给login servlet
 *
 *
 * session:当用户打开浏览器,访问某个网站时,服务器就会在服务器的内存为该浏览器分配一个空间,该空间
 * 被这个浏览器器独占
 * 这个空间就是session空间,该空间中的数据默认存在时间为30min 也可以修改
 * 例如 网上商城购物车
 * 保存登陆用户信息
 * 将某些数据放入到session中供同一个用户在不同页面使用
 * 防止用户非法登陆到某个页面
 *  session就是一个键值对 key:string val:object
 * 如何使用session
 * 1:得到session HttpSession hs = request.getSession(true);
 * 2:向session添加属性 hs.setAttribute(String name,Object val);
 * 3.从session中得到某一个属性string name = hs.getAttribute(string name);
 * 4.从session中删除某个属性 hs.removeAttribute(string name);
 *
 * 修改session时间 在tomcat \conf\ web.xml <session-conf>下修改
 * 当某个浏览器访问网站时,服务器会给浏览器分配一个唯一的session id 并以此来区分不同的浏览器
 * session 会占有服务器内存 所以必要时才会使用
 *

 * */

表单提交数据时

pw.println("<html>");
        pw.println("<body>");
        pw.println("<h1>登陆界面</h1>");
        pw.println("<form action=val method=post>");
        pw.println("用户名:<input type=text name=username> <br>");
        pw.println("密码:<input type=password name=passwd> <br>");
        pw.println("<input type=submit value=login><br>");
        pw.println("</form>");
        pw.println("</body>");
        pw.println("</html>");

在val   servlet中可以接收表单数据

String u = req.getParameter("username");
  String p = req.getParameter("passwd");

通过resp.sendRedirect("wel?uname="+u);这个方法将数据发送给 wel servlet

wel servlet 将会接收数据 通过 String u = req.getParameter("uname");


Session 可以保存用户登陆成功信息 避免用户非法进入非登陆网页

在登陆验证界面保存用户登陆信息进入session

HttpSession hs = req.getSession(true);
        
        //接收用户名和密码
        String u = req.getParameter("username");
        String p = req.getParameter("passwd");
        System.out.println(u+p);
        if(u.equals("gac")&&p.equals("123")){
            //合法
            resp.sendRedirect("wel?uname="+u);
            hs.setAttribute("pass", "ok");
        }else{
            //不合法
            System.out.println("not login suceess");
            resp.sendRedirect("login");//需要跳转的Servlet的url
        }


在跳转成功页面验证用户是否成功登陆

HttpSession hs = req.getSession(true);
        String pass = (String)hs.getAttribute("pass");
        if(pass == null){
            resp.sendRedirect("login");
        }

如果没有成功登陆则 重新跳转登陆界面





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值