cookie与session,转发与重定向,get请求post请求乱码解决

6 篇文章 0 订阅

cookie与session的简介
cookie与session同为保持会话之间数据不丢失的技术之一
区别在于:
cookie在服务器创建,但是存储在客户端浏览器内存中,默认情况下关闭浏览器会清空,但可通过cookie的setMaxAge()方法设置,单位为秒。
session在服务器创建,同时也存储在服务器中,创建时会发送一个sessionID存放在cookie中,默认情况下30分钟会清空,可通过setMaxInactiveInterval()方法设置存活时间,通过invalidate()方法设置立即无效

cookie创建与接收
本例中使用了两个servlet实验

//创建cookie,通过响应方式让客户端浏览器将cookie存放起来
		Cookie cookie = new Cookie("name", "ttt");
		response.addCookie(cookie);
//取得cookie数组
		Cookie[] cookies = request.getCookies();
		//先判断是否有客户端浏览器是否存在cookie
		if (cookies.length>0) {
			//然后遍历foreach循环遍历cookies数组
			for (Cookie cookie : cookies) {
				//判断是否有名字为name的cookie
				if (cookie.getName().equals("name")) {
					//如果有则取出cookie的value值
					System.out.println(cookie.getValue());
				}
			}

session的创建与接收
本例中使用了两个servlet实验

		//创建session
		HttpSession session = request.getSession();
		//给session赋数据
		session.setAttribute("name", "zhangsan");
		//接收session
		HttpSession session = request.getSession();
		//取得的session中的name
		String name = (String) session.getAttribute("name");
		System.out.println(name);

转发与重定向
转发是指携带数据从servlet到另一个页面,如jsp/html或servlet

		//把字符串abc起个名字叫name放进request中(键值对形式)
		request.setAttribute("name", "abc");
		//将request这个包裹转发至index.jsp页面中
		request.getRequestDispatcher("index.jsp").forward(request, response);

重定向是指地址栏再次请求同一个地址,可以理解为刷新,注意这是没有携带数据到lndex.jsp页面的

		response.sendRedirect("index.jsp");

get请求乱码问题

		//接收传过来的name
		String name = request.getParameter("name");
		//给name设置编码
		name=new String(name.getBytes("ISO-8859-1"),"UTF-8");

post请求乱码问题
这个更简单直接设置在servlet中post方法内的顶部即可

		request.setCharacterEncoding("UTF-8");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值