Servlet同一用户的不同页面共享数据

(1) 表单(隐藏表单)

//发送端

public void doGet(HttpServletRequest req,HttpServletResponse res){
        res.setContentType("text/html;charset=UTF-8");//中文乱码
        String s="MAN";
        try {
            PrintWriter pw = res.getWriter();
            pw.println("<html>");
            pw.println("<body>");
            pw.println("<h1>登陆界面</h1>");
            pw.println("<form action=loginCl mothod=post>");//使用url
            pw.println("用户名:<input type=text name=username> <br>");
            pw.println("密码:<input type=password name=passwd> <br>");
            //隐藏表单传递数据
            pw.println("<input type=hidden name=sex value=" + s +"><br>")    
            pw.println("<input type=submit value=login><br>");  //login要跳转的url(xml里配置的)
            pw.println("</body>");
            pw.println("</html>");
        } catch (IOException e) { }    
    }

//接收端

public void doGet(HttpServletRequest req,HttpServletResponse res){
        //接收用户名和密码
        try {
            String u = req.getParameter("username");
            String p = req.getParameter("passwd");
            String s = req.getParameter("sex");//接收隐藏表单数据
        }catch (IOException e) {}    
    }

(2)sendRedirect转向

//发送端

public void doGet(HttpServletRequest req,HttpServletResponse res){
        //接收用户名和密码
        try {
                // sendRedirect()转向  使不同页面共享数据
                res.sendRedirect("wel?uname="+u +"&pass="+p);//写上要跳转的url(xml里配置的)
        }catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }    
    }

//接收端

public void doGet(HttpServletRequest req,HttpServletResponse res){
        //通过sendRedirect从logincl中知得到用户名密码
        String u = req.getParameter("uname");
        String p = req.getParameter("pass");
    }

(3)Session

//创建Session

public void doGet(HttpServletRequest req,HttpServletResponse res){
        //接收用户名和密码
        try {
            String u = req.getParameter("username");
            String p = req.getParameter("passwd");
            if(u.equals("aaa")&&p.equals("123")){
                //将用户名放入session中
                HttpSession hs=req.getSession(true);//得到session
                hs.setMaxInactiveInterval(30);//修改session存在的时间(秒)
                hs.setAttribute("uname", u);//添加session
                res.sendRedirect("wel");
            }else{
                 res.sendRedirect("login");
            }
        }catch (IOException e) {}    
    }

//得到Session元素

public void doGet(HttpServletRequest req,HttpServletResponse res){
        HttpSession hs = req.getSession(true);//得到session
        String sessionId = hs.getId();//得到session Id
        //从session获取登陆属性
        String myname = (String)hs.getAttribute("uname");
        if(myname == null){ //非法登录(直接联接wel)
            try {
                res.sendRedirect("login");
            } catch (IOException e) {    e.printStackTrace();}
        }
        //hs.removeAttribute("uname"); // 清除session中的pass属性
        //hs.setMaxInactiveInterval(0); //清除session所有内容
        PrintWriter pw;
        try {
            pw = res.getWriter();
            pw.println("welcome  " + myname);    
            pw.println("session ID  " + sessionId);
        } catch (IOException e) {    e.printStackTrace();}
    }

(4)Cookie

//创建Cookie

public void doGet(HttpServletRequest req,HttpServletResponse res){
        //接收用户名和密码
        try {
            String u = req.getParameter("username");
            String p = req.getParameter("passwd");
            String keep = req.getParameter("keep");
            if(u.equals("aaa")&&p.equals("123")){
                if(keep != null){
                    Cookie name = new Cookie("myname",u);//创建Cookie
                    Cookie pass = new Cookie("mypasswd",p);//创建Cookie
                    name.setMaxAge(10);//设置Cookie时间(秒)
                    pass.setMaxAge(10);//不设置时生存期到关闭浏览器为止
                    res.addCookie(name);//回写到客户端
                    res.addCookie(pass);//回写到客户端
                }
                res.sendRedirect("wel");//写上要跳转的url(xml里配置的)
            }else{
                res.sendRedirect("login");
            }
        }catch (IOException e) {e.printStackTrace();}    
    }

//获取Cookie

public void doGet(HttpServletRequest req,HttpServletResponse res){
        try {
            Cookie [] allCookies=req.getCookies();//得到所有Cookie信息
            int i=0;  
            String name = "";  
            String passwd = "";
            if(allCookies != null){
                for(i=0;i<allCookies.length;i++){
                    Cookie temp = allCookies[i];//依次取出cookie
                    if(temp.getName().equals("myname")){
                        name = temp.getValue();
                    }else if(temp.getName().equals("mypasswd")){
                        passwd = temp.getValue();
                    }
                }
            }
//            if(!name.equals("")&&!passwd.equals("")){//到loginCl去验证一下
//              res.sendRedirect("loginCl?user="+name +"&pwd="+passwd);
//                return;
//            }
            PrintWriter pw = res.getWriter();
            pw.println("welcome!" + name);    
        } catch (IOException e) {e.printStackTrace();}
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值