48-2jsp的数据传递和保存

一、jsp的数据的传输*
1.

jsp的java脚本—>java文件中的_jspService();局部代码
jsp的java表达式–>java文件中的_jspService();中的out.print();
jsp的java声明——>java文件中的成员信息
2.掌握jsp的内置对象的使用
HttpServletRequest request
HttpServletResponse response

		PageContext pageContext;
		HttpSession session = null;
		ServletContext application;
		ServletConfig config;
		
		JspWriter out = null;
		
		Object page = this;
		exception
	
	out.print();
	out.write();

二、掌握一些常用的jsp内置对象的使用
一、掌握request对象的使用
request对象是可以作为数据的请求来进行接收对象的
1.接收HTTP请求中的指定参数信息:String getParameter(String name);
2.接收HTTP请求中的指定参数信息(多值型):String[] getParameterValues(String name);
3.将请求中的所有参数信息全部存储为Map集合:Map<String,String[]>getParameterMap();
4.设置请求编码:void setCharacterEncoding(String charsetName);
5.请求转发:getRequest请求Dispatcher调度员(String path).forward(request,response);
6.向request作用域【数据在一次请求中有效】存储数据:void setAttribute(String name,Object value);
7.从request作用域取出数据:object getAttribute(String name);

二、解决中文乱码的问题(只有提交方法是POST的时候才会出现的问题)
1.第一种解决办法,直接进行设置编码的格式
setCharacterEncoding(Stirng ene);
例如:request.setCharacterEncoding(“UTF-8”);

2.第二种解决乱码的问题,将字符串先解码成字节数组,然后利用String的构造方法将其重新以UTF-8的编码格式进行编码
	String name  = new  String(name.getBytes("ISO-8859-1),"UTF-8");
	例如:
	String username = new String(name.getBytes("ISO-8859-1"),"utf-8");

注意get请求的中文乱码的问题已经在Tomcat8.0时代已经解决了
Change the default URIEncoding for all connectors from ISO-8859-1 to UTF-8.(mark)
但是在8.0之前是有问题的,可以通过URIEncodeing属性来解决

它是在Tomcat 的配置文件中的service.xml中进行增加

三、掌握response对象的使用
response对象的作用域可以作为数据的相响对象
1.重定向:response.sendRedirect(String path);
2.请求转发和重定向的区别:

	请求转发:
	
	请求转发是进行一次请求
	它是服务器内部的资源跳转,它的地址栏就是这次请求的地址
	因为是一次请求,所以request作用域(在一次请求内数据是有效的)就可以使用了
	请求转发只能跳转到服务器内部的资源地址
	
	重定向:
	重定向是进行俩次请求
	重定向是客户端发起俩次请求,它的地址栏是第二次请求的地址
	因为是俩次请求,所以request作用域是无法使用的,
	重定向可以访问任意的资源地址

四、掌握session对象的作用域
1.request请求作用域:在一次请求中有效
例如:你在打电话中,给对方说了一句话
2.session会话作用域:在一次会话内有效
例如:你在打电话就是一次会话,包含着一系列的响应和请求,只要没有完全关闭浏览器,在当前浏览器中的所有的响应和请求都是属于一次会话
3.会话中常用的一些方法
①获取当前会话的id:String getId();
②设置当前会话作用域的数据:void setAttribute(String name,Object obj);
③获取当前会话作用域的数据:object getAttribute(String name);
4.session 作用域的应用场景就是存储购物车信息或者是储存用户的登录信息等;

五、掌握session和cookie的区别
1.cookie小饼干
①可以存储某个站点内的一些设置信息,可以实现自动登录,网站内的历史访问,记住用户名等
②会话级cookie:默认的cookie会着session的结束而结束。(浏览器自动将次缓冲清除)
③持久级cookie:可以设置cookie的存活周期。(浏览器可以持久储存该信息)
2.session
①它是存储在服务器中的
②他可以存储任意类型的数据setAttribute(String name,Object obj);
③session它会随着会话的结束而销毁
④session是安全的信息存储
3.cookie
①储存在本地客户端的/浏览器
②它只能存储String类型的数据。new Cookie(String name ,String value);
③cookie默认的会话级是和session相同,但是可以设置持久级cookie
④cookie不安全,因为是存储在浏览器,谁都可以进行访问
4.session的原理
①当浏览器访问服务器时,服务器会对此浏览器生成一个唯一的会话编号,然后通过cookie响应 存储到浏览器中(默认的session是会话级别的)
②当浏览器重复的访问服务器时候,只要会话没有关闭,意味着会话级别的cookie还是存在的,那么每次都会在请求头传递一个JSESSIONID信息,服务器接受到此信息之后,会进行查找响应的数据存储空间

六、掌握application对象的使用
经典案例就是用来记录本网站的浏览次数
总结一下:
page的作用域:(不使用)本网页内有效
request的作用域:一次请求内数据有效
session作用域:一次会话内数据有效
application作用域:全局有效,整个项目周期内数据有效。

以上四个作用域对象都会有俩个固定的API 
	void setAttribute(String name,Object obj);
	object  getAttribute(String name);

jsp中的九大内置对象
request response session application page pageContext out config exception

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值