HttpServletRequest基础知识

来源:互联网 发布:知乎女神王诺诺是谁 编辑:程序博客网 时间:2024/06/06 02:29
一、获取头部信息
1、String类型     request.getHeader(String string);     获取头第一个内容
2、Enumeration类型     request.getHeaders(String string);     获取指定头所有内容  
Enumeration e = request.getHeaders("Accept-Encoding");
while(e.hasMoreElements()){
     String value = (String)e.nextElemnets();
     System.out.printin(value);
}
3、Enumeration类型     request.getHeaderNames();     获取所有头名字
Enumeration e = request.getHeaderNames("Accept-Encoding");
while(e.hasMoreElements()){
     String value = (String)e.nextElemnets();
     System.out.Printin(value);
}
二、获取数据信息
1、String类型     request.getParameter(String string);获取指定数据内容
2、Enumeration     request.getPartermeterNames();获取所有的数据名称
Enumeration e = request.getParameterNames();
while (e.hasMoreElements()){
     String name = (String)e.nextElement();//获取一个数据名称
     String value = request.getParameter(name);//获取当前数据的内容
     System.our.println(name+"="values);
}
3、String[]     request.getParameterValues(String string);获取一个数据名称下的所有内容
String[] vlues = request.getParameterValues("username");
for(int i = 0;values!=null&&i<values.length;i++){//防止username用户不填写抛异常
     System.out.println(values[i]);
}
三、表单中文乱码问题,浏览器提交表格的码表使用打开的码表,String获取Request内容查看iso8859-1码表
          1、对于Post提交的乱码。改变Request码表与提交码表相同。
request.setCharacterEncoding("UTF-8");//只对Post提交有效
String username = request.getParameter("username");
System.out.println(username);
2、对于Get方式提交的表(超链接方式提交也是Get方式),需要手工方式查码表。
String username = request.getParameter("username");
username = new String(username.getBytes("iso8859-1"),"UTF-8");//转换码表
System.out.println(username);
3、可以改服务器配置,不推荐。可在服务器里面查看     http://localhost:8080/docs/config/http.html     在URLEcoding表格里面
进入Tomact->conf->server.xml 。修改即可

<Connector port="8080" protocol="HTTp/1.1"
     connectionTime="2000"
     redirectPort="8446"
     /***加入 URIEncoding="UTF-8"***/
     /***或者加入 useBodyEncodingForURL="true" 并且在servlet里面写request.setCharacterEncoding("UTF-8");***/
/>
四、请求转发,并把数据带给转发资源
     
//存数据
String data = "aaa";
request.setAttribute("aaa",data);
request.getRequestDispatcher("/xxxx.jsp").forward(request,response);

//取数据
String data = (String)request.getAttribute("data");
System.out.println(data);
五、防盗链
          
String referer = request.getHeader("referer");
if(referer==null||!referer.startsWith("http://localhost")){
     response.sendRedirect("/项目名称/目标网站");//重定向
     return;
}
六、得到项目名称
     
request.getContextPath();


(进入博客查看HttpServletResponse基础知识)

原创粉丝点击