En una aplicación web de Java, ¿cómo obtenemos el contenido en el cuerpo de la solicitud de publicación? Y problemas a los que deben prestarse atención.
Por lo general, el uso de la solicitud para obtener parámetros puede obtener directamente parámetros enviados por URL o datos AJAX a través de req.getParameter (nombre). Sin embargo, el cuerpo no tiene nombre y no se puede obtener a través de nombres de parámetros. En este momento, debe usar la transmisión IO para obtener el contenido en el cuerpo.
Aquí hay un código:
paquete com.lenovo.servlet; import java.io.bufferedReader; import java.io.ioException; import java.io.inputstreamreader; import javax.servlet.servlet.servletException; import javax.servlet.http.httpservlet; import javax.servlet.htp.htp.htp.htttttttttttT; javax.servlet.http.httpservletResponse; import org.apache.commons.lang.stringutils; importar org.apache.log4j.logger; import com.alibaba.dubbo.common.utils.ioutils; import.lenovo.service.businessservice; importar; import com.lenovo.utils.webcontext; public class BusinessServlet extiende httpservlet {public static final logger log = logger.getLogger (BusinessServlet.class); / ** * */ Private static final Long SerialVersionUid = 1l; Servicio privado de servicio de negocios estático; static {Service = (BusinessService) WebContext.getBean ("BusinessService"); } @Override protegido void doget (httpservletRequest req, httpservletResponse resp) lanza ServletException, ioexception {dopost (req, resp); } @Override Protected void dopost (httpservletrequest req, httpservletResponse res) lanza ServletException, ioexception {bufferedReader lector = new BufferedReader (new InputStreamReader (req.getInputStream ())); String body = ioutils.read (lector); Name de cadena = req.getParameter ("nombre"); if (stringUtils.isnotblank (body)) {log.info ("Los negocios reciben algo con el cuerpo:"+cuerpo); } res.setcharacterEncoding ("UTF-8"); res.setContentType ("Aplicación/JSON"); res.setStatus (httpservletResponse.sc_ok); res.getWriter (). println (servicio.getName (nombre)); }} En este método DOPOST de código, IO Stream se usa para obtener el cuerpo enviado por parte, por lo que obtenemos los parámetros enviados por el cliente.
Cabe señalar que: para obtener los parámetros del cuerpo, debe llamarlo antes del método request.getParameter () (si necesita tomar el parámetro de consulta), porque una vez que se llame el método getParameter (), los parámetros del cuerpo se obtienen a través de las secuencias de IO serán inválidos (return "para las pruebas personales).
Además, el método ioutils.read (lector) de DUBBO-2.5.3.JAR se usa aquí para leer el contenido del cuerpo post.
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.