Javaweb——会话技术( Cookie、Session)、JSP、EL、JSTL、MVC、三层架构

本文介绍了JavaWeb中的会话技术,包括Cookie和Session的使用步骤、原理及特点。讲解了JSP的基本概念、脚本元素和内置对象,强调了EL表达式简化页面编写的作用。同时,概述了MVC开发模式和三层架构在JavaWeb开发中的应用。
摘要由CSDN通过智能技术生成

会话技术

  1. 会话:一次会话中包含多次请求和响应。
    * 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止
  2. 功能:在一次会话的范围内的多次请求间,共享数据
  3. 方式:
    客户端会话技术,将数据保存到客户端,Cookie是由服务器端生成,状态信息服务器端使用
    服务器端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象中。

Cookie
Cookie是由服务器端生成,发送给User-Agent,浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器. *由于HTTP协议是无状态的,而服务器端的业务必须是要有状态的。*Cookie诞生的最初目的是为了存储web中的状态信息,以方便服务器端使用。比如判断用户是否是第一次访问网站。服务器像客户端发送cookie——浏览器将cookie保存——之后每次http请求浏览器都会将cookie发送给服务器端。

  1. 概念:客户端会话技术,将数据保存到客户端,Cookie是由服务器端生成,状态信息服务器端使用

  2. 使用步骤:(response是add,request是get)
    (1)创建Cookie对象,绑定数据: new Cookie(String name, String value)
    (2)发送Cookie对象(给服务端设置响应消息): response.addCookie(Cookie cookie)
    (3)获取Cookie,拿到数据: Cookie[] request.getCookies()

  3. 实现原理: 基于响应头set-cookie和请求头cookie实现

  4. 默认情况下,当浏览器关闭后,Cookie数据被销毁。持久化存储:setMaxAge(int seconds)

  5. 在tomcat 8 之后,cookie支持中文数据。特殊字符还是不支持,建议使用URL编码存储,URL解码解析
    response.setContentType(“text/html;charset=utf-8”);
    value = URLDecoder.decode(value,“utf-8”);

  6. 假设在一个tomcat服务器中,部署了多个web项目,那么在这些web项目中cookie默认不能共享。setPath(String path)不同的tomcat服务器间cookie,如果设置一级域名相同,那么多个服务器之间cookie可以共享。setDomain(String path)

  7. 特点和作用
    ①cookie存储数据在客户端浏览器。浏览器对于单个cookie 的大小有限制(4kb) 以及 对同一个域名下的总cookie数量也有限制(20个)。
    ②cookie一般用于存出少量的不太敏感的数据。比如: 在不登录的情况下,完成服务器对客户端的身份识别。

//了解
//获取当前时间的字符串,重新设置Cookie的值,重新发送cookie
		            Date date  = new Date();
		            SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
		            String str_date = sdf.format(date);
		            System.out.println("编码前:"+str_date);
		            //URL编码
		            str_date = URLEncoder.encode(str_date,"utf-8");
		            System.out.println("编码后:"+str_date);

JSP

  1. 概念:Java Server Pages: java服务器端页面。 可以理解为:一个特殊的页面,其中既可以指定定义html标签,又可以定义java代码。用于简化书写!
  2. 原理:JSP本质上就是一个Servlet
  3. JSP的脚本:JSP定义Java代码的方式
    ① <% 代码 %>:定义的java代码,会放在在service方法中。service方法中可以定义什么,该脚本中就可以定义什么。
    ②<%! 代码 %>:定义的java代码,在jsp转换后的java类的成员位置。
    ③ <%= 代码 %>:定义的java代码,会输出到页面上。输出语句中可以定义什么,该脚本中就可以定义什么。
  4. JSP的内置对象:在jsp页面中不需要获取和创建,可以直接使用的对象。 jsp一共有9个内置对象。
    (1~4域对象,用于共享数据,注意范围)
变量名					     真实类型						作用
* pageContext	            PageContext		            当前页面共享数据,还可以获取其他八个内置对象
* request					HttpServletRequest			一次请求访问的多个资源(转发)
* session					HttpSession					一次会话的多个请求间
* application				ServletContext				所有用户间共享数据
(服务器开启创建,服务器关闭,销毁)
* response					HttpServletResponse			响应对象
* page						Object					    当前页面(Servlet)的对象  this
* out						JspWriter					输出对象,数据输出到页面上
* config					ServletConfig				Servlet的配置对象
* exception					Throwable				    异常对象(isErrorPage为true)
  1. response.getWriter()和out.write()的区别:在tomcat服务器真正给客户端做出响应之前,会先找response缓冲区数据,再找out缓冲区数据。故。 response.getWriter()数据输出永远在out.write()之前,用out,可以避免打乱输出顺序。
  2. 指令——作用:用于配置JSP页面,导入资源文件
    ①格式:<%@ 指令名称 属性名1=属性值1 属性名2=属性值2 … %>
    ②分类:
    a. page: 配置JSP页面的
    contentType:等同于response.setContentType()
    设置响应体的mime类型以及字符集
    设置当前jsp页面的编码(只能是高级的IDE才能生效,如果使用低级工具,则需要设置pageEncoding属性设置当前页面的字符集)
    b. import:导包
    errorPage:当前页面发生异常后,会自动跳转到指定的错误页面
    isErrorPage:标识当前也是是否是错误页面。
    true:是,可以使用内置对象exception
    false:否。默认值。不可以使用内置对象exception
    c. include : 页面包含的。导入页面的资源文件: <%@include file=“top.jsp”%>
    d. taglib : 导入资源 <%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>prefix:前缀,自定义的
    ③ jsp注释:<%-- --%>:可以注释所有

Session

  1. 概念:服务器端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象中。
  2. 步骤:
    ①获取HttpSession对象:
    HttpSession session = request.getSession();
    ②使用HttpSession对象:
    Object getAttribute(String name)
    void setAttribute(String name, Object value)
    void removeAttribute(String name)
  3. 原理: Session的实现是依赖于Cookie的。
    JSP原理4.①客户端关闭后,服务器不关闭,相应的cookie也消失,故下次获取session不同;要session也能相同,手动建立cookie并设置时间,时
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值