В веб -приложении Java, как мы получаем контент в теле запроса Post? И проблемы, на которые нужно обратить внимание.
Обычно использование запроса для получения параметров может напрямую получать параметры, представленные данными URL или AJAX через req.getParameter (имя). Однако тело не имеет имени и не может быть получено с помощью имен параметров. В настоящее время вам нужно использовать поток iO, чтобы получить контент в теле.
Вот код:
пакет com.lenovo.servlet; импорт java.io.bufferedReader; импорт java.io.ioexception; импорт java.io.inputStreamReader; импорт javax.servlet.servlet.servletexcept javax.servlet.http.httpservletresponse; import org.apache.commons.lang.stringutils; import org.apache.log4j.logger; импорт com.alibaba.dubbo.common.utils.ioutils; импорт com.lenovo.service.buserviceService; BusinessServlet расширяет httpservlet {public Static Final Logger log = logger.getLogger (BusinessServlet.class); / ** * */ Private Static Long Long SerialVersionUID = 1L; частная статическая служба бизнес -сервиса; static {service = (business service) webcontext.getbean ("BusinessService"); } @Override Protected void Doget (httpservletrequest req, httpservletresponse resp) throws servletexception, ioexception {dopost (req, resp); } @Override Protected void Dopost (httpservletrequest req, httpservletresponse res) throws servletexception, ioexception {BufferedReader Reader = new BufferedReader (new InputStreamReader (req.getInputStream ())); Строка Body = iOutils.read (читатель); String name = req.getParameter ("name"); if (stringutils.isnotblank (body)) {log.info («Бизнес получает что -то с телом:»+body); } res.setcharacterencoding ("UTF-8"); res.setContentType ("Application/json"); res.setStatus (httpservletresponse.sc_ok); res.getWriter (). println (service.getName (имя)); }} В этом методе DoPost в этом коде поток IO используется для получения тела отправленного сообщения, поэтому мы получаем параметры, представленные клиентом.
Следует отметить, что: чтобы получить параметры тела, вам необходимо позвонить в него до метода request.getParameter () (если вам нужно взять параметр QueryString), потому что после того, как метод getParameter () будет вызван, параметры тела получаются через потоки IO будут недопустимы (возврат »для личных испытаний).
Кроме того, метод iOutils.read (Reader) Dubbo-2.5.3.jar используется здесь для чтения содержания тела Post.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.