JSP(java服务器端页面,和servlet一样,用于动态web技术)
写JSP就像再写HTML
区别:HTML只给用户写静态数据
JSP可以嵌入JAVA代码,为用户提供攻台数据
浏览器向服务器访问资源,不管访问什么资源,其实都是在访问Servlet
JSP最终也会转换成一个JAVA类
JSP本质上就是一个Servlet
Seesion(重点)
什么是session:服务器会给每一个用户(浏览器)创建session对象
一个session独占一个浏览器,只要浏览器没有关闭那么这个session就存在
用户登陆之后整个网站就开始访问---->保存用户信息保存购物车信息
Session和Cookie的区别:
Cookie是把用户的数据写给用户的浏览器,浏览器保存
Session把用户的数据写道用户独占的Session中,服务端保存重要的信息,减少服务资源浪费
Session有服务器创建;
使用场景:保存登陆用户信息
//解决乱码问题 resp.setCharacterEncoding("utf-8"); req.setCharacterEncoding("utf-8"); resp.setContentType("text/html;charset=utf-8"); //得到Session HttpSession session = req.getSession(); //给Session中存东西 session.setAttribute("name",new Peson("琪琪",12)); //获取Session得ID String sessionId = session.getId(); //判断Seesion是不是新创建的 if (session.isNew()){ resp.getWriter().write("session创建成功,ID:"+sessionId); }else { resp.getWriter().write("session已经在服务器中存在了,ID"+sessionId); } }
中间已经建好了一个 人 的类
@Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("utf-8"); resp.setCharacterEncoding("utf-8"); resp.setContentType("text/html;charset=utf-8"); HttpSession session = req.getSession(); Peson peson = (Peson) session.getAttribute("name"); System.out.println(peson.toString()); } session.removeAttribute("name"); //删除之前存进去的name session.invalidate(); //手动注销session,但是会生成一个新的 <session-config> //自动失效 <!--1分钟后session自动失效,以分钟为单位--> <session-timeout>1</session-timeout> </session-config>