cookie,Session创建Servlet的三种方式
- 实现Servlet接口
- 继承GenericServlet
- 继承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限制,服务器不能跳转服务器以外的资源,重定向可以。
异步请求($.ajax()与$.post()|$.get())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的区别与关联
区别:
存储位置不同 :cookie 存活在客户端浏览器,session存活在服务器存储数据的大小不同:cookie 最多可以存储4kb大小的字符串,session没有大小的限制存储数据的类型不同:cookie只能存储字符串的内容。session可以存储任意类型的内容默认有效期不同:cookie默认时长是到浏览器关闭,cookie销毁,Session默认时长是30分钟
关联:
cookie和session本身有关联。session需要依赖cookie保证是否同一个会话。如果cookie中JsessionID相同的,那么说明是同一个会话,反之不是同一个会话。 因为每次打开浏览器都会生成一个新的会话,之前的会话并不是马上销毁。而是等待gc回收(默认是当垃圾量到一定程度,gc进行回收)。
语法:
$.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都要设置同步.(效率低)



