Cookie、Session、Jsp

本文介绍了Web开发中的会话管理和Cookie技术。会话管理始于浏览器打开并终止于关闭,而Cookie是存储在客户端的缓存文件,用于记录用户访问信息。每个网站最多可存储20个Cookie,总数量不超过300个,大小限制为4KB。HttpSession是服务端会话,用于存储用户会话数据。示例代码展示了如何创建和使用Cookie及HttpSession。此外,还提到了JSP作为动态网页技术,结合HTML和Servlet的优点,但不适合用作控制器。最后,简要阐述了MVC模型,其中Model、View和Controller分别负责数据、显示和请求处理。

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

  • 会话管理概述:指的是web开发中的一次通话过程,当打开浏览器,访问网站地址后,会话开始,当关闭浏览器(或者到了过期时间),会话结束。
  • Cookie概述:它是客户端浏览器的缓存文件,里面记录了客户浏览器访问网站的一些内容。同时,也是HTTP协议请求和响应消息头的一部分
  • Cookie的属性:必要属性:name(名称)和value(值) 重要属性: path(路径) domain(域名) MaxAge(存活时间)
  • Cookie细节:Cookie有大小,个数限制。每个网站最多只能存20个cookie,且大小不能超过4kb。同时,所有网站的cookie总数不超过300个。当删除Cookie时,设置maxAge值为0。当不设置maxAge时,使用的是浏览器的内存,当关闭浏览器之后,cookie将丢失。设置了此值,就会保存成缓存文件(值必须是大于0的,以秒为单位)。
  • 服务端会话HttpSession概述:用于存储用户的会话数据。它也是Servlet规范中四大域对象之一的会话域对象。并且它也是用于实现数据共享的
    在这里插入图片描述
@WebServlet("/CookieDemo1")
public class CookieDemo1 extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html;charset=UTF-8");

        //创建输出流
        PrintWriter writer = resp.getWriter();

        //给出提示信息
        writer.write("欢迎访问本网站,您的最后访问时间为:<br>");

        //创建cookie对象 记录最后访问时间,值用字符串拼接转成字符串
        Cookie cookie = new Cookie("time",System.currentTimeMillis()+"");

        //设置最大存活时间
        cookie.setMaxAge(100000);

        //将cookie对象添加到客户端
        resp.addCookie(cookie);

        //获取cookie对象集合
        Cookie[] cookies = req.getCookies();

        //数组进行遍历取出需要的值
        for (Cookie cookie1 : cookies) {
            //根据name属性值进行判断
            if ("time".equals(cookie1.getName())){
                //相等则取出想要的值
                String value = cookie1.getValue();

                //进行格式转换,因为取出的格式为字符串类型
                SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                //装换后的格式
                writer.write(sim.format(new Date(Long.parseLong(value))));

            }
        }
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        doGet(req, resp);
    }
}

@WebServlet("/SessionDemo1")
public class SessionDemo1 extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        //获取值
        String value = req.getParameter("username");

        //获取session对象
        HttpSession session = req.getSession();

        //设置共享数据
        session.setAttribute("name",value);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        doGet(req, resp);
    }
}

@WebServlet("/SessionDemo2")
public class SessionDemo2 extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        //创建对象
        HttpSession session = req.getSession();

        //获取共享数据
        Object value = session.getAttribute("name");

        //进行输出
        resp.getWriter().write(value+"");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        doGet(req, resp);
    }
}

  • JSP简介:一套开发动态web资源的技术,称为JSP/Servlet规范。JSP的本质其实就是一个Servlet。
  • HTML:只能开发静态资源,不能包含java代码,无法添加动态数据。
  • Servlet:写java代码,可以输出页面内容,但是很不方便,开发效率极低。
  • JSP:它包括了HTML的展示技术,同时具备Servlet输出动态资源的能力。但是不适合作为控制器来用。
<!--JSP表达式-->
<%="这是JSP表达式"%><br/>

<%out.println("这是没有JSP表达式输出的");%>
<!--JSP声明-->
<%! String str = "声明语法格式";%>
<%=str%>
<!--Java代码块-->
<% out.println("这是Java代码块");%>
<hr/>
  • MVC模型
  • M:model ,通常用于封装数据,封装的是数据模型。
  • V:view ,通常用于展示数据。动态展示用jsp页面,静态数据展示用html。
  • C:controller ,通常用于处理请求和响应。一般指的是Servlet。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值