response.sendRedirect(“/web应用/资源URI?参数名1=参数值1&参数名2=参数值2...”);
sendRedirect可以去外边URL。
request.getRequestDispatcher("/资源URI").forward(request,response)
forward只能去当前的WEB应用的资源。
forward的转发多次,请求只有一次,URL地址不变。
User user = new User(); user.setName("xiaoming"); user.setPassword("123456");
放入session
request.getSession.setAttribute("userObj",userObj);
取出session
User user = (User)request.getSession.getAttribute("userObj");
设置session六十秒后失效
session.setMaxInactiveinterval(60)
每次打开浏览器的session都不同,这跟http请求JSESSIONID有关;如果没有JSESSIONID,服务器将会自动给你创建一个并返回。
创建cookie首先考虑如何创建,然后考虑他的生命周期,最后要写到浏览器临时文件里
//创建cookie创建cookie。如果重名就会替换存在的cookie值. Cookie cookie = new Cookie("name","shunping1"); //设置cookie的生命周期。不设置,则该cookie的生命周期当浏览器关闭时,就消亡 cookie.setMaxAge(3600);// 单位秒 response.addCookie(cookie);//把cookie信息回写给浏览器
读取cookie
Cookie []cookies = request.getCookies(); for(int i=0; i < cookies.length;i++){ out.println(cookies[i].getName() + "<br/>"); out.println(cookies[i].getValue() + "<br/>"); }
删除cookie
// 先得到该cookie Cookie cookies[]=request.getCookies(); for(Cookie cookie: cookies){ if(cookie.getName().equals("id")){ System.out.println("id"); cookie.setMaxAge(0);// 删除 // 一定带上这句话,否则不能删除 response.addCookie(cookie); } }
存入中文
String val = java.net.URLEncoder.encode("名称","utf-8"); Cookie cookie = new Cookie("name",val);
取出中文
String val = java.net.URLDecoder.decode(cookie.getValue(), "utf-8"); out.println("name ="+val);
不同的浏览器cookie的大小和数量不同。
ServletContext也可以转发跟forward一样
this.getServletContext().getRequestDispatcher("/资源url").forward(request, response);
做任何操作必须先获取:
servletcontext = this.getServletContext();
添加属性:
servletcontext.setAttribute(string,object);
取出属性
String val = servletcontext.getAttribute(“属性名”)
删除
String val = setvletContext.removeAttribute(“属性名”);
SpringMVC中获取
WebApplicationContext webApplicationContext = ContextLoader.getCurrentWebApplicationContext(); ServletContext servletContext = webApplicationContext.getServletContext();