request


总结:1.request:获取请求方式:String method=request.getMethod();
2.获取请求地址(URI):String path=request.getRequestURI(); 获取请求地址(URL):String path=request.getRequestURL();
3.获取WEB的名称:String name=request.getContextPath(); 4.获取如果是get请求的请求方式:String query=request.getQueryString();
5.String ip=request.getRemotoAddr();
6.form(input)标签的命名方式:<form action="/WEB0916/HeadServlet" method="get"> 输入框:<input type="text" name="username"> 提交:<input type="submit" value="登录">
7.判断访问的地址是否合法//获取请求头中的referer;referer代表当前请求来自哪里,可用于内容的防盗:String referer=request.getHeader("Referer");.getHeader()里面写上头名就可以获取响应的头解决乱码问题: response.setContextType("text/html;charset=utf-8"); if(referer.startsWith("https://locationhost"){response.getWriter().write("吴亦凡女朋友否认恋情");}else{response.getwrite().write("你是小偷,不给你看") };这里是判断是否是本地访问过来的(是否是以hettp:\locationhosr)拉下来的
8.获取请求体单个值:String username=request.getParamenter("username");
9.获取请求体多个值:String[] hobbys=request.getParamenterValues("hobby");
遍历得到的多个值:for(String s:hobbys){system,out.println(s)}
10.获取所有值的Map集合:Map<String,String[]) map=request.getParamenterMap();将所有的key值放入set集合:Set<String> set=map.setkey();
11./因为这里得到的是所有key所在set集合所有需要增强for遍历所有的key然后再.get(key)获取值:for(String key:set){String[] value=map.getkey();system.out.prin("key") for(String s:value){system.out.println(s)}
12.重定向:response;(302+location(谁有写谁的地址)):1.URL地址栏会变化.2.请求服务器两次
13.请求转发:request:1.地址栏不变化,2.访问服务器一次
14.post请求方式解决中文乱码(因为post方式通过请求体传过去所以需要在创建request对象之前就要解决zw乱码):request.setCharacterEncoding("UTF-8");
15.get请求方式解决中文乱码(因为get是通过地址栏传过去的,所以在request创建之后创建就行):String username=request.getParameter("username");
这里需要给username重新赋值:username=new String(username.getbytes("ISO-8859-1"),"UTF-8");
这里先把ISO-8859-1的字符串转成字节数组,再用new String(转后的字节数组,"UTF-8")的方式转成String字符串在页面输出
16.向request域中存值:request.setAttribute("name","张三");通过键和值的方式向request域中存值
17.请求转发:request.getRequestDispatcher("setvlet03(这里写要跳转的servlet)").forward(request,response);
因为请求转发只请求一次服务器所以直接写Servlet03就可以,重定向是请求服务器两次所以Servlet03前面要加上WEB名
这里后面必须要加上.forward(request, response)不然不会跳转;因为这里给Servlet03传递了(request, response),所以Servlet03可以获取Servlet02的值
这里是访问的Servlet02但打印的是Servlet03的内容
18.获取request域中的值:String name=(String)request.getAttribute("name");因为这里的request.getAttribute("name")是通过键(name)的到值(小明)
但是返回的是Object类的值,需要强转(String)才能得到字符串。

原文地址:https://www.cnblogs.com/hankai2735/p/11597990.html