Servlet技术进阶

一、mvc模式

M(Model)V(View)C(Controller)——架构模式,主要是一种“分层”思想(面向接口编程,package包分的细一点) 

  • Model(模型)—模型代表一个存取数据的对象或JAVAPOJO.它也可以带有逻辑,在数据变化时更新控制器。
  • View(试图)—视图代表模型包含的数据的可视化。
  • Controller(控制器)—控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图于模型分离开。

  •  Web浏览器发送HTTP请求到服务端,被Controller(Servlet)获取并进行处理(例如参数解析、请求转发)
  • Controller(Servlet)调用核心业务逻辑——Model部分,获得结果
  • Controller(Servlet)将逻辑处理结果交给View (JSP),动态输出HTML内容◆动态生成的HTML内容返回到浏览器显示
  • 动态生成的HTML内容返回到浏览器显示
  • MVC模式在Web开发中的好处是非常明显,它规避了JSP与Servlet各自的短板,Servlet只负责业务逻辑而不会通过out.append()动态生成HTML代码;JSP中也不会充斥着大量的业务代码。这大大提高了代码的可读性和可维护性

 这是由于传统MVC模式中的三个部分没有明确定义、开发层次划分的细化加深和实际开发应用情形的愈加复杂,使得mvc模式的设计需要根据实际情况进行更为精心的理解和设计。所以mvc模式更多的体现在—种划分层次的思想,而不是固定的分包模板。

二、Cookie和Seeion

        1、Cookie

                Cookie的概念

                        Cookie是保存在客户端(浏览器)小文本,保存的位置分两种

                        (1)Cookie可能保存在客户端浏览器的所占内存,关闭浏览器后,Cookie就不再存在

                        (2)Cookie也可能保存在客户PC机的硬盘上,设置有效时间,超过有效时间后失效

                Cookie的常见应用

                        简化登录:很多网站在登录时,可以选择多久之内不需要登录,在选择的时间段内,不用登录即可以到欢迎页面。

                        记录浏览记录:购物网站,每次登录后,会看到曾经浏览过的商品信息。

                Cookie的使用

                        Cookie能够把小文本保存到客户端,在服务器与客户端进行传输。然而,Cookie容易造成信息泄露,另外,客户端可以通过设嚣阻止Cookie,也可能手工清除Cookie,
                        因此,使用Cookie的原则:
                        *不用cookie保存对保密性要求高的信息,例如银行卡密码等
                        *不用cookie实现必要功能,防止cookie被删除后出现错误可以说:cookie用来实现“锦上添花”的功能,也就是说,一旦cookie被禁止或者被删除,应用依然能正常运行

                Cookie对象

                        Servlet API中,存在类Cookie

Cookie cookie=new Cookie("username","qqq");

                创建Cookie

  • Cookie类中定义了一系列的方法
类型 方法名称 说明
void setMaxAge(int expiry) 设置cookie的有效期,以秒为单位,Cookie保存在硬盘上,否则保存在内存中
void setValue(String value) 在Cookie创建后,对cookie进行赋值获取
String getName() 获取Cookie的名称
String getValue() 获取Cookie的值
String getMaxAge() 获取Cookie的有效时间,以秒为单位

                保存及获取Cookie

  • Cookie要保存到客户端,凡是写到客户端的方法,基本都在响应中。
    HttpServletResponse中提供了方法,把Cookie保存到客户端。
response.addCookie(newCookie)
  • 再次访问与保存Cookie相同域名的网站时,HTTP协议将把有效时间内的Cookie都发送到服务器,容器将把Cookie封装到请求中。
    HttpServletRequest类提供了获取Cookie对象的方法
Cookie[] cookies = request.getCookies();

        服务器获取浏览器端保存的Cookie

                 Cookie的生命周期

        问题1:cookie可以记录数据,但是数据需要一直记录永远不删除吗?
        答:数据不删除,数据量越来越大,影响存储空间,数据量越大网络传输cookie慢,服务器解析cookie,也是效率不高。

        问题2:那么如何删除cookie数据?
        答:我们在服务器创建cookie给浏览器,但是我们无法操作浏览器,因此,在cookie创建的时候设置cookie的生存时间,时间—到自动去死

        如果不设置过期时间,默认是多少?
        答:浏览会话结束时——浏览器关闭的时候

  •                 设置Cookie生存时间

30秒后,Cookie username-qhc消失

    • 1
      点赞
    • 0
      收藏
      觉得还不错? 一键收藏
    • 0
      评论
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值