Session

1)什么是Session对象

Session对象是一个JSP内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管理。从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要Session对象。

Session失效:1关闭服务器  2关闭浏览器

2)Session对象的ID

当一个客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个Session对象,同时分配一个String类型的ID号,JSP引擎同时将这个ID号发送到客户端,存放在Cookie中,这样Session对象,直到客户关闭浏览器后,服务器端才将该客户的Session对象取消,并且和客户的会话对应关系消失。当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的Session对象。

3)Session对象的常用方法

方法名

作用

public String getId()

获取Session对象编号

public void setAttribute(String key,Object obj)

将参数Object指定的对象obj添加到Session对象中,并为添加的对象指定索引关键字

public Object getAttribute(String key)

获取Session对象中含有关键字的对象

public Boolean isNew()

判断是否是一个新的客户

 

 

 

如何设置session的有效期,有几种方式,分别如何去设置?

session默认有效期是30分钟,设置session的有效期有三种方法:

1.在tomcat中的web.xml中定义:

在tomcat中的conf/web.xml文件配置session的超时时间,单位为分钟,定义代码如下:

<session-config>

<session-timeout>60</session-timeout>

</session-config>

2.在工程的web.xml中定义,会覆盖tomcat服务器的conf/web.xml文件中的配置,单位为分钟

3.通过Java代码设定:

在servlet/jsp代码中配置

设置单位为秒,设置为-1则表示永不过期

session.setMaxInactiveInterval(30*60)

 

 

session会话对象

session当我们第一次访问一个资源时,session会产生一个id,同时把id发给客户端,存放在cookie中,

session通过id区别客户

session和cookie的区别

  1. session 保存在服务端 保存的内容为Object类型 保存对象 两个都是key-value保存

  2. Cookie在 客户端 不是内置对象 保存的内容为String类型 只能保存字符串 cookie不能保存中文

  3. session里的数据相对安全,cookie不安全 ,因为session的数据保存在服务器

Cookie由服务端生成的,再发送给客户端保存

session 会在以下这几种情况下失效:

关闭浏览器;

关闭网页服务器;

用户未向服务器提出请求超过预设的时间,Tomcat 服务器预设时间为30分钟;

运行程序结束 session;

同源策略 cors 浏览器的安全策略 ajax跨域问题 解决跨越问题的机制:jsonp CORS(跨源资源共享)

//把用户存储在session
​
//存储
HttpSession session=request.getSession();
session.setAttribute("loginUser", user);  //loginuser自己命名,区分用的
​
//把存储的user里的属性值拿出来
    User user=(User)session.getAttribute("loginUser");
    %>
    <h2>欢迎您:<%=user.getName() %></h2>

请求转发只能跳转本项目的页面,重定向可以跳转不同的页面和服务器

servlet是由tomcat实现的

分层的目的是为了解耦 便以代码的管理和维护

表示层: 页面展示层 对于Web应用系统而言,HTML页面、JSP页面属于表示层的内容

业务逻辑层:和系统功能相对应 通常由Service和servlet两个包共同组成 service下有一个接口service接口,有一个实现类实现它,通过接口和实现类,分开,定义规则

数据访问层:dao包,对应的实体类对于数据库的操作 由接口和实现类组成

实体类:和数据库表相对应

工具类:util 连接数据库

package cn.lanqiao.util;
​
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
​
//工具类 加载连接数据库

request.setCharacterEncoding("utf-8");  //解决前端获取参数时,乱码问题
        
response.setContentType("text/html;charset=utf-8");//解决后端发数据到前端的乱码问题

重定向与转发的区别

重定向:response.sendRedirect("URL");

转发:request.getRequestDispatcher("URL").forward(request,response);

1.转发在服务器端完成的;重定向是在客户端完成的 2.转发的速度快;重定向速度慢 3.转发的是同一次请求;重定向是两次不同请求 4.转发地址栏没有变化;重定向地址栏有变化 5.转发必须是在同一台服务器下完成;重定向可以在不同的服务器下完成

//请求转发
request.getRequestDispatcher("admin.jsp").forward(request,response);
​
//重定向
response.sendRedirect("admin.jsp");

ajax

编写前先测试地址能不能用

ajax在doGet中不能使用请求转发和重定向 写了也用不了

回调函数不需要我们主动调用,当我们服务器返回数据后,调用函数

// 将 JSON 字符串格式化为 js 对象
    var jsObj = JSON.parse(ajax.responseText)

// 将 js 对象格式化为 JSON 字符串
    var jsonStr = JSON.stringify(Obj);
​
​
JSON - 转换为 JavaScript 对象
​
JSON 文本格式在语法上与创建 JavaScript 对象的代码相同。
​
由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript 对象。
​

JSON 解析器

提示:eval() 函数可编译并执行任何 JavaScript 代码。这隐藏了一个潜在的安全问题。

使用 JSON 解析器将 JSON 转换为 JavaScript 对象是更安全的做法。JSON 解析器只能识别 JSON 文本,而不会编译脚本。

在浏览器中,这提供了原生的 JSON 支持,而且 JSON 解析器的速度更快。

较新的浏览器和最新的 ECMAScript (JavaScript) 标准中均包含了原生的对 JSON 的支持。

vue

v-model 双向数据绑定

v-for 循环遍历指令

computed:{//声明的是计算属性 (通过计算而得到的属性)

sum(){ //使用{{sum}}

return Number(this.num1)+Number(this.num2);

}

}

计算属性不要监听 ,如果想要实现功能,可以提供set方法就可以了

watch:{ //监听属性

count:function(newVal,oldVal){

console.log('改变前'+oldVal)

console.log('改变后'+newVal)

}

deep:true //深度监听

}

SPA (single page application) :单页面应用程序

基于组件的开发

全局组件:全局都可以用

tamplate:模板一定要有跟标签 ,就用div,别用别的

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值