赞
踩
JavaWeb之Request的使用
package org.example.web; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.BufferedReader; import java.io.IOException; @WebServlet("/req1") public class RequestDemo1 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // String getMethod() 获取请求方式 String method = req.getMethod(); System.out.println(method);//GET // String getContextPath 获取虚拟目录(项目访问路径) String path = req.getContextPath(); System.out.println(path); // StringBuffer getRequestURL 获取URL(统一资源定位符) StringBuffer url = req.getRequestURL(); System.out.println(url.toString()); //获取URI(统一资源标识) String uri = req.getRequestURI(); System.out.println(uri); //获取请求参数(GET方式) String queryString = req.getQueryString(); System.out.println(queryString); System.out.println("====================="); //获取请求头:user-agent:浏览器的版本信息 String header = req.getHeader("user-agent"); System.out.println(header); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //获取post 请求体:请求参数 //1.获取字符输入流 BufferedReader reader = req.getReader(); //2.读取数据 String s = reader.readLine(); System.out.println(s); } }
package org.example.web; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Map; @WebServlet("/req2") public class RequestDemo2 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //System.out.println("get......"); //1.获取所有参数的Map集合 Map<String, String[]> map = req.getParameterMap(); for (String key : map.keySet()) { System.out.print(key+":"); //获取所有值 String[] values = map.get(key); for (String value : values) { System.out.print(value+"\t"); } System.out.println(); } //2.根据key获取参数值,数组 System.out.println("================="); String[] hobbies = req.getParameterValues("hobby"); for (String hobby : hobbies) { System.out.println("hobby:"+hobby); } //3.根据key获取单个的参数值 String username = req.getParameter("username"); System.out.println(username); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doGet(req,resp); } }
package org.example.web; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.net.URLEncoder; public class URLDemo { public static void main(String[] args) throws Exception { String username="张三"; //1.URL编码 String encode = URLEncoder.encode(username, "utf-8"); System.out.println(encode); //2.URL解码 //String decode = URLDecoder.decode(username, "utf-8"); String decode = URLDecoder.decode(username, "ISO-8859-1"); //3.转化为字节数据,编码 byte[] bytes = decode.getBytes(); /*for (byte bt : bytes) { System.out.println(bt+" "); }*/ //4.将字节数组转化为字符串,解码 String s = new String(bytes, "utf-8"); System.out.println(s); } }
package org.example.web; import sun.nio.cs.StandardCharsets; import javax.net.ssl.StandardConstants; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/req4") public class RequestDemo4 extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //1.POST:getReader()获取请求参数 request.setCharacterEncoding("UTF-8");//设置字符输入流的编码 //2. String username = request.getParameter("username"); System.out.println("解决乱码前:"+username); //GET:getQueryString()方式获取参数 //乱码原因:Tomcat进行URL解码时默认使用字符集ISO-8859-1 /* //3.1:先对乱码数据进行编码:转为字符数组 byte[] bytes = username.getBytes("ISO-8859-1"); //3.2:字节数组解码 username = new String(bytes, "utf-8");*/ username=new String(username.getBytes("ISO-8859-1"),"utf-8"); System.out.println("解决乱码后:"+username); } }
package org.example.web; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/req5") public class RequestDemo5 extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("demo5...."); //设置参数 request.setAttribute("msg","hello"); //请求转发 request.getRequestDispatcher("/req6").forward(request,response); } }
package org.example.web; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/req6") public class RequestDemo6 extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("demo6...."); //设置参数 Object msg = request.getAttribute("msg"); System.out.println(msg); } }
request是对Tomcat是对请求数据封装的对象,经过前人的改进,如HTTPrequest,HttpServletRequest 使得request对象更加强大,它对post和get方式的请求能做同样的处理,获取请求参数的方法变得一致,除了要掌握request的一些获取请求参数方法外,也应掌握HTTP协议底层request的使用方法。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。