javaweb相关知识

servlet

创建Servlet的三种方式

  1. 实现Servlet接口
  2. 继承GenericServlet
  3. 继承HttpServlet(常用)

Get与Post请求

  • 传递参数:get方式提交的参数是拼接在请求路径后面,post方式提交的参数是保存在请求体中
  • get提交方式参数的长度有限制,而post一般是没有限制。
  • get提交方式可以缓存记录,一般get用于查询。post不能缓存数据,一般用于增删改

 Servlet生命周期

创建、初始化、服务、销毁

  • 在整个服务器运行期间,每个Servlet只会创建一次。
  • 创建阶段执行一次。 初始化同样也是执行一次。
  • 服务阶段 service方法 每当有请求发起,就会执行一次service方法。
  • 销毁阶段只有当服务器停止,才会执行销毁方法。

作用域 

  • request(HttpServletRequest):一次请求有效
  • session(HttpSession):关闭浏览器失效
  • application(ServletContext):tomcat启动时创建,tomcat关闭时销毁,整个web的生命周期只有一个

域对象存值、取值的语法:

  • 域对象.getAttribute(参数名);    取值
  • 域对象.setAttribute(参数名,参数值);  存值
  • 域对象.removeAttribute(参数名);    从指定域对象中移除指定的值

转发与重定向

req.getRequestDispatcher("跳转的路径").forward(req, resp);
resp.sendRedirect("跳转的路径");

  • 发生位置不同,转发是服务器内部行为,重定向是浏览器行为
  • 地址栏不同,转发地址栏没有变化,重定向地址栏有变化
  • 响应次数不同,转发响应次数只有1次,重定向响应次数至少有2次
  • 数据共享问题,转发可以保证request域的数据实现共享,重定向不行
  • 跳转语句不同:req.getRequestDispatcher("跳转的路径").forward(req, resp);resp.sendRedirect("跳转的路径");
  • 执行效率不同,转发效率更高,更快。
  • url限制,服务器不能跳转服务器以外的资源,重定向可以。

Cookie,Session

Cookie语法:

  • 创建cookie:Cookie cookie = new Cookie(key,value);   key 和value 都必须是字符串
  • 设置cookie存活时间 单位是秒:当存活时间>0  存活多少秒,当存活时间为0 表示立即销毁cookie,当存活时间为-1 表示cookie存活时间为浏览器结束为止(默认):cookie.setMaxAge();
  • 添加cookie,响应给浏览器:response.addCookie(cookie);
  • 获取Cookoie:Cookie[] cookies = request.getCookies();    
  • 获取Cookie的名字:cookie.getName();
  • 获取Cookie的值:cookie.getValue();

Cookie的特点

  • 保存位置  Cookie存活在客户端电脑上。
  • 数据类型  Cookie在创建时 名字和值都必须是字符串类型,一般值是经过加密的
  • 存活时间  Cookie默认存活时间是到浏览器结束位置
  • 大小       Cookie最多只能存活4kb的字符串

Session语法:

  • 把变量添加到Session作用域:session.setAttribute(key,value) key是String类型,value可以是任意类型
  • 移除session作用域中的指定变量;session.removeAttribute(key);
  • 手动销毁session:session.invalidate();
  • 设置session存活时间:session.setMaxInactiveInterval(20);
  • session的有效时长:默认session的有效时长是30分钟。

Session与Cookie的区别与关联

区别:

  1. 存储位置不同 :Cookie 存活在客户端浏览器,session存活在服务器
  2. 存储数据的大小不同:Cookie 最多可以存储4kb大小的字符串,session没有大小的限制
  3. 存储数据的类型不同:Cookie只能存储字符串的内容。session可以存储任意类型的内容
  4. 默认有效期不同:Cookie默认时长是到浏览器关闭,cookie销毁,Session默认时长是30分钟

关联:

  1. cookie和session本身有关联。session需要依赖cookie保证是否同一个会话。如果cookie中JsessionID相同的,那么说明是同一个会话,反之不是同一个会话。
  2.  因为每次打开浏览器都会生成一个新的会话,之前的会话并不是马上销毁。而是等待gc回收(默认是当垃圾量到一定程度,gc进行回收)。

异步请求($.ajax()与$.post()|$.get())

语法:
$.ajax({
        url:"",
        type:"",
        dataType:"",
        data:"",
        async:true,
        success:function (data){},
        error:function (){}
});
参数的解释:
    url:         请求的路径
    type:        请求的方式, get/post
    dataType: 从服务器回传的数据类型 text、xml、json 
    data:        从请求发起请求传递给服务器的参数  {参数名:参数值,参数名:参数值}
    async    请求是否异步,类型是一个布尔值,异步(默认,true),同步(false),不建议写
    success  成功回调函数,服务器成功处理完请求,响应就绪,可以从成功的回调函数获         取服务器的回传数据
    error    失败回调函数,服务器出现bug,可以从error获取到错误数据

 

Jackson工具

异步的好处: 顺序无关,多个ajax并行执行,执行效率比较高

异步的弊端: 因为跟顺序无关,如果后面的ajax需要使用前面ajax的结果作为参数进行访问,就会出问题

同步的设置方法(按顺序进行):同步设置只能在 $.ajax()方法中设置,$.post、$.get中不能设置.async:false,就可以设置为同步.只要有一个ajax设置了同步,这个脚本中所有ajax都要设置同步.(效率低) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值