• 保存会话技术Session


    1.如何实现在不同的页面可以查看信息(购物车),同时实现信息独有

    Session生命周期默认30分钟

    Session1.java

    package com.session;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    /**
     * Servlet implementation class Session1
     */
    @WebServlet("/Session1")
    public class Session1 extends HttpServlet {
        private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public Session1() {
            super();
            // TODO Auto-generated constructor stub
        }
    
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            response.setContentType("tesxt/html;charset=utf-8");
            request.setCharacterEncoding("utf-8");
            PrintWriter out=response.getWriter();
            //访问Session 当没有Session时候自动创建
            HttpSession session=request.getSession();
            //给该Session创建属性 创建两个Sesion
            session.setAttribute("uname", "宋江");
            session.setAttribute("age", "100");
            //生命周期默认30分钟
            out.print("创建Session,并放入了一个属性");
            
            
        }
    
        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            this.doGet(request, response);
        }
    
    }
    View Code
    package com.session;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    /**
     * Servlet implementation class Session2
     */
    @WebServlet("/Session2")
    public class Session2 extends HttpServlet {
        private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public Session2() {
            super();
            // TODO Auto-generated constructor stub
        }
    
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            response.setContentType("tesxt/html;charset=utf-8");
            request.setCharacterEncoding("utf-8");
            PrintWriter out=response.getWriter();
            //访问Session 当没有Session时候自动创建
            HttpSession session=request.getSession();
            //获取Session
            String usname=(String)session.getAttribute("uname");
            if(usname!=null){
            System.out.println("session name="+usname);}
            else {
                out.print("没有uname");
            }
            
            
        }
    
        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            this.doGet(request, response);
        }
    
    }
    View Code

    删除;

    package com.session;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    /**
     * Servlet implementation class Session2
     */
    @WebServlet("/Session2")
    public class Session2 extends HttpServlet {
        private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public Session2() {
            super();
            // TODO Auto-generated constructor stub
        }
    
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            response.setContentType("tesxt/html;charset=utf-8");
            request.setCharacterEncoding("utf-8");
            PrintWriter out=response.getWriter();
            //访问Session 当没有Session时候自动创建
            HttpSession session=request.getSession();
            //获取Session
            String usname=(String)session.getAttribute("uname");
            if(usname!=null){
            System.out.println("session name="+usname);}
            else {
                out.print("没有uname");
            }
            
            
        }
    
        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            this.doGet(request, response);
        }
    
    }
    View Code

    重置直接覆盖就行

     

    存放在服务器内存,默认生命周期30分钟

    代码示例:

    示例1:

    Session1.java

    package com.session;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    /**
     * Servlet implementation class Servlet1
     */
    @WebServlet("/Servlet1")
    public class Servlet1 extends HttpServlet {
        private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public Servlet1() {
            super();
            // TODO Auto-generated constructor stub
        }
    
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            response.setContentType("text/html;charset=utf-8");
            request.setCharacterEncoding("utf-8");
            PrintWriter out=response.getWriter();
    //        out.print("<h1>大家好</h1>");
            //访问session  当发现没有的时候会自动创建
            HttpSession session=request.getSession();
            session.setAttribute("uname", "宋江");
            session.setAttribute("age", "100");
            out.print("创建sesssion放置属性");
        }
    
        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            this.doGet(request, response);
        }
    
    }
    View Code

    Session2.java

    package com.session;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    /**
     * Servlet implementation class Servlet2
     */
    @WebServlet("/Servlet2")
    public class Servlet2 extends HttpServlet {
        private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public Servlet2() {
            super();
            // TODO Auto-generated constructor stub
        }
    
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            response.setContentType("text/html;charset=utf-8");
            request.setCharacterEncoding("utf-8");
            PrintWriter out=response.getWriter();
            //获取Session
            HttpSession session=request.getSession();
            //获取
            String uname=(String) session.getAttribute("uname");
            String age=(String) session.getAttribute("age");
            if(uname==null){
                out.println("没有获取到数据");        
            }else{
                out.println("session uname="+uname);            
            }
    
            
            //
        }
    
        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            this.doGet(request, response);
        }
    
    }
    View Code

     同一个用户浏览器向服务器传送session,名字相同时就是替换(更新)

    最终实现代码:

    package com.session;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    /**
     * Servlet implementation class Servlet1
     */
    @WebServlet("/Servlet1")
    public class Servlet1 extends HttpServlet {
        private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public Servlet1() {
            super();
            // TODO Auto-generated constructor stub
        }
    
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            response.setContentType("text/html;charset=utf-8");
            request.setCharacterEncoding("utf-8");
            PrintWriter out=response.getWriter();
    //        out.print("<h1>大家好</h1>");
            //访问session  当发现没有的时候会自动创建
            HttpSession session=request.getSession();
            session.setAttribute("uname", "宋江");
            session.setAttribute("age", "100");
            //创建一个对象
          User user=new User();
          user.setName("小猫");
          user.setColor("红色");
          session.setAttribute("cat", user);
            out.print("创建sesssion放置属性");
        }
    
        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            this.doGet(request, response);
        }
    
    }
    View Code
    package com.session;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    /**
     * Servlet implementation class Servlet2
     */
    @WebServlet("/Servlet2")
    public class Servlet2 extends HttpServlet {
        private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public Servlet2() {
            super();
            // TODO Auto-generated constructor stub
        }
    
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            response.setContentType("text/html;charset=utf-8");
            request.setCharacterEncoding("utf-8");
            PrintWriter out=response.getWriter();
            //获取Session
            HttpSession session=request.getSession();
            //获取
            String uname=(String) session.getAttribute("uname");
            String age=(String) session.getAttribute("age");
            User user=(User) session.getAttribute("cat");
            if(user!=null){
                out.print("猫的名字颜色"+user.getName()+user.getColor());
                
            }
            if(uname==null){
                out.println("没有获取到数据");        
            }else{
                out.println("session uname="+uname);            
            }
    
            
            //
        }
    
        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            this.doGet(request, response);
        }
    
    }
    View Code
    package com.session;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    /**
     * Servlet implementation class Servlet3
     */
    @WebServlet("/Servlet3")
    public class Servlet3 extends HttpServlet {
        private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public Servlet3() {
            super();
            // TODO Auto-generated constructor stub
        }
    
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            response.setContentType("text/html;charset=utf-8");
            request.setCharacterEncoding("utf-8");
            PrintWriter out=response.getWriter();
            HttpSession session=request.getSession();
            session.setAttribute("uname", "张三");
            out.print("重新设置Uname");
        }
    
        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            this.doGet(request, response);
        }
    
    }
    View Code
    package com.session;
    //实现删除session功能
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    /**
     * Servlet implementation class Servlet4
     */
    @WebServlet("/Servlet4")
    public class Servlet4 extends HttpServlet {
        private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public Servlet4() {
            super();
            // TODO Auto-generated constructor stub
        }
    
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            response.setContentType("text/html;charset=utf-8");
            request.setCharacterEncoding("utf-8");
            PrintWriter out=response.getWriter();
            HttpSession session=request.getSession();
            session.removeAttribute("uname");
            out.print("删除 uname");
        }
    
        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            this.doGet(request, response);
        }
    
    }
    View Code

    User.java

    package com.session;
    
    public class User {
    private String name;
    private String color;
    /**
     * @return the name
     */
    public String getName() {
        return name;
    }
    /**
     * @param name the name to set
     */
    public void setName(String name) {
        this.name = name;
    }
    /**
     * @return the color
     */
    public String getColor() {
        return color;
    }
    /**
     * @param color the color to set
     */
    public void setColor(String color) {
        this.color = color;
    }
    
    }
    View Code
  • 相关阅读:
    检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件失败的解决方案--报错80080005
    c# 数组拼接、DataTable拼接
    【C#】数据类型(sbyte,byte,short,ushort,int,uint,long,ulong和char。、、、)
    一个字符占几个字节
    js获取不到scrollTop值的问题
    省市县2020年最新更新
    【警惕流文件转string存数据库操作】记一次数据库异常增长的排查经历
    【VS Code】利用Live Server插件搭建本地服务
    数据库中float类型存储时位数增多问题
    【小工具】阿里云视频上传工具
  • 原文地址:https://www.cnblogs.com/helloworld2019/p/11038114.html
Copyright © 2020-2023  润新知