application:
让jsp、Servlet共享数据:application.setAttribute(String name,Object value)设置共享属性,application.getAtrribute(String name)获取共享属性的值
获取Web应用配置参数
config:当前jsp配置信息
exception:仅在异常处理页面中才有效
out:页面输出流
pageContext:访问jsp之间的共享数据,包括page、request、session、application范围的数据
设置共享属性:setAttribute(String name ,Object value,int scope)
getAttribute(String name,int scope),scope取值范围有四个,分别对应page、request、session、application:
page:PageContext.PAGE_SCOPE
request:PageContext.REQUEST_SCOPE
session:PageContext.SESSION_SCOPE
application:PageContext.APPLICATION_SCOPE
获取属性所在的范围值:pageContext.getAttributesScope(String name)
request:每个对象封装一次用户请求
1.可以获取请求的参数、请求头:(POST方法提交)
获取请求头的名称:
Enumeration<String> headerNames=request.getHeaderNames(); while(headerNames.hasMoreElements()){ String headerName=headerNames.nextElement(); out.println(headerName+"-->"+request.getHeader(headerName)+"<br/>"); }
获取form表单提交的数据:
String name=request.getParameter("name");//name、color为form表单中各数据的name属性
String[] color=request.getParameterValues("color");//请求参数有多个值时的获取方法
GET方法提交:传递的参数为字符串并且传递的参数少 用URL方式传递参数,解析字符串中带中文的参数:(问题还没有解决) String rawQueryStr = request.getQueryString(); String queryStr = java.net.URLDecoder.decode(rawQueryStr,"utf-8"); String[] paramPairs=queryStr2.split("&"); for(String paramPair:paramPairs){ String[] nameValue=paramPair.split("="); out.println(nameValue[0]+"参数值:"+nameValue[1]+"<hr/>"); }
String mytext = java.net.URLEncoder.encode("中国","utf-8"); String mytext2 = java.net.URLDecoder.decode(mytext,"utf-8");//mytext的结果为乱码而mytext2的结果为“中国”
2.操作request范围的参数: setAttribute(String name,Object value); getAttribute(String name);
3.执行forward或include:(path路径必须以斜线开头) getRequestDispatcher(String path).include(request,respose); getRequestDispatcher(String path).forward(request,response);
response:生成非字符响应、重定向、增加Coolie 重定向后生成第二次请求并且原来请求的参数、request范围的属性全部丢失 增加Cookie: String name=request.getParameter("name"); Cookie c = new Cookie("usename",name); c.setMaxAge(24*3600);//设置Cookie为24小时 response.addCookie(c);//增加Cookie对象
读取Cookie数组: Cookie[] cookies = request.getCookies(); for(Cookie c:cookies){ if(c.getName().equals("usename")){ out.println(c.getValue()); } }
session:该对象代表一次用户会话 setAttribute(String name,Object value); getAttribute(String name);