Java 웹 응용 프로그램에서 사후 요청 본문에서 컨텐츠를 어떻게 얻습니까? 주의를 기울여야하는 문제.
일반적으로 요청을 사용하여 매개 변수를 얻으려면 req.getParameter (이름)를 통해 URL 또는 AJAX 데이터로 제출 된 매개 변수를 직접 얻을 수 있습니다. 그러나 신체의 이름이 없으며 매개 변수 이름을 통해 얻을 수 없습니다. 현재 IO 스트림을 사용하여 신체의 내용을 가져와야합니다.
다음은 코드입니다.
package com.lenovo.servlet; import java.io.bufferedReader; import java.io.ioException; import java.io.inputStreamReader; import javax.servlet.servlet.servletexception; import javax.servlet.http.httpervlet; import javax.servlet.servlet javax.servlet.http.httpervletresponse; import org.apache.commons.lang.stringutils; import org.apache.log4j.logger; import com.alibaba.dubbo.common.utils; import com.lenovo.services.bussentservice; import com.lenovo.utils.webContext; public class businessservlet는 httpservlet {public static final logger log = logger.getLogger (businessServlet.class); / ** * */ 개인 정적 최종 최종 긴 SerialversionUid = 1L; 개인 정적 비즈니스 서비스 서비스; static {service = (BusinessService) webContext.getBean ( "BusinessService"); } @override protected void doget (httpservletrequest req, httpservletresponse resp) servletexception, ioexception {dopost (req, resp); } @override Protected Void Dopost (httpservletrequest req, httpservletreponse res) servletexception, ioexception {bufferedReader reader = new bufferedReader (new inputStreamReader (req.getInputStream ()); 문자열 body = ioutils.read (Reader); 문자열 이름 = 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 (name)); }} 이 코드 Dopost 메소드에서 IO 스트림은 제출 된 본문을 얻는 데 사용되므로 클라이언트가 제출 한 매개 변수를 얻습니다.
신체 매개 변수를 얻으려면 requesparameter () 메소드를 취해야하는 경우 getParameter () 메소드가 호출되면 IO 스트림을 통해 신체 매개 변수가 얻어지기 때문에 request.getParameter () 메소드 (QueryString 매개 변수를 가져와야하는 경우) 전에 호출해야합니다.
또한 Dubbo-2.5.3.jar의 ioutils.read (Reader) 메소드는 게시물 본문의 내용을 읽는 데 사용됩니다.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.