JSP:交互层中最重要的概念
【1】JSP——将HTML的编码以文件流的方式交给客户端下载,在HTML当中实际就是一个普通的前端yemian 。
【2】将浏览器当中填写的值,提交到服务器当中&写入到数据库当中
【3】
JSP的9个内置对象:在jsp当中都属于局部变量!
① 请求对象:request
② 输出对象:out
③ 响应对象:response
④ 应用程序对象:application
⑤ 会话对象:session
⑥ 页面上下文对象:pageContext
⑦ 页面对象:page(只作用于jsp)
⑧ 配置对象:config
⑨ 异常对象:exception
Request:请求,由浏览器客户端,向服务器发起请求所携带的所有信息,都包含在Request对象当中
【1】向服务器发起请求方式:
-表单:action指向请求到服务器的资源
-请求类型 Method: get[默认]:希望从服务器获取数据 / post:希望像服务器提交数据
-向服务器提交请求的参数:在表单当中需要提交的元素指定name;且大小写敏感;获取到的所有数据默认都是String类型
-
【2】注意GET&POST得区别
-servlet基础知识:必问。
【3】HTTP协议:明文协议;SSL:密文协议——需要证书
-请求类型安全,不是指报文得安全;而是url中不会出现参数得值
-微信中可转发得链接就是get请求
-中文乱码问题:原因是西欧编码集,但是不支持中文。【保证整个项目当中得字符集统一!】
-POST:获取参数前:request.setCharacterEncoding("UTF-8");
-GET:
【1】对某个参数进行编码:username = new String(username.getBytes("ISO-8859-1"),"UTF-8");
【2】对server.xml文件配置:URIEncoding="UTF-8"【对tomcat当中得所有项目进行统一编码】 + server 得post\get设置军取消
【3】设置: URIEncoding="UTF-8" + useBodyEncodingForURI="true" 【Server.xml文件中】 + server.jsp:request.setCharacterEncoding("UTF-8"); 设置对post\get均生效!
-POST:
【4】表单元素提交:
-name : request.getParameter("jg");
-request.getParameterValues(“jg”);
-value : 通过name获取到得value值
-radio、checkbox、select 均有value
属性得转交:
-setAttribute
-getAttribute
转发和重定向
-转发:request.getRequestDispatcher("server3.jsp").forward(request, response); || request.getAttribute("newUserNamestr");//通过属性获取,返回object对象
-所有的数据流转,全部在后台完成
-用户只有一次请求i,并获得一次响应
-URL是没有任何变化的
-请求与响应可以一并带走,即:可以获取原本request当中所有的参数与属性
-重定向:response.sendRedirect("server3.jsp?newUserNamestr="+username); || request.getParameter("newUserNamestr"); //通过参数获取
-转发一次,将会通过响应流告诉客户端重新请求服务器
-原本的request和response全部丢失,将会产生新的请求和响应
-转发就是一个普通的get请求
-重定向携带的不会有属性,只有可能是参数
-URL可以重定向到任意网址
【重定向是客户端行为,转发是服务器行为】
Session:会话
-客户端与服务器之间建立会话后,在该会话当中,产生若干次请求和响应。
-客户端和服务器的交流,只有可能是客户端轮询。【服务器是无法找到客户端的,进行数据推送】
-Session可以保存属性:
-第一次请求抵达服务器后,服务器生成一个sessionId,并将该sessionId作为本次会话的唯一凭证。 以后每次会话的亲贵,都会携带者sessionId。
-正常在不超时的情况下,只要浏览器不关闭,session就不会中断。
-session可以作为服务器和客户端一次会话的缓存
-不同IP的session数据是不共享的
会话的清除和过期:
-Session默认是30分钟生效【无操作情况】
-invalidate() //将当前会话失效
-setAttribute() | getAttribute() | removeAttribute()
Application:整个服务器共享
-所有的用户都可以获取这里的数据
-
Cookie:将数据保存在客户端【对于敏感的数据,如银行密码,账号】_放在服务器即可!{不要放在服务器以外的任何地方}
cookie第一请求如果没有sessionId,会由客户端生成一个sessionId交给服务器
-将数据保存在客户端
-保存的上限是7天
-有极大的安全隐患
-支持用户禁止Cookie
JSP的四个作用域
【1】session:作用于一次会话
【2】request:作用于一次请求
【3】application:作用于整个工程
【4】page:只作用于当前的jsp
!!!:response不是作用域