Dalam aplikasi web Java, bagaimana kita mendapatkan konten di badan permintaan pos? Dan masalah yang perlu diperhatikan.
Biasanya, menggunakan permintaan untuk mendapatkan parameter dapat secara langsung mendapatkan parameter yang dikirimkan berdasarkan data URL atau AJAX melalui req.getParameter (nama). Namun, tubuh tidak memiliki nama dan tidak dapat diperoleh melalui nama parameter. Pada saat ini, Anda perlu menggunakan aliran IO untuk mendapatkan konten di dalam tubuh.
Ini kode:
Paket com.lenovo.servlet; import java.io.bufferedreader; impor java.io.ioException; import java.io.inputStreamreader; import javax.servlet.servlet.servletException; impor javax.servlet.http.htpservlet; javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletResponse; import org.apache.commons.lang.stringutils; impor org.apache.log4j.logger; impor com.alibaba.dubbo.dubbo.dubbo.dubon.log4j.logger. com.lenovo.service.businessservice; impor com.lenovo.utils.webcontext; kelas publik bisnis layanan meluas httpservlet {public static final logger log = logger.getLogger (bisnisservlet.class); / ** * */ private static final long serialversionuid = 1l; Layanan Layanan Bisnis Statis Pribadi; static {service = (BusinessService) WebContext.getBean ("BusinessService"); } @Override Protected void doGet (httpservletRequest req, httpservletResponse resp) melempar servletException, ioException {dopost (req, resp); } @Override Protected void dopost (httpservletrequest req, httpservletResponse res) melempar servletException, ioException {bufferedReader reader = baru bufferedReader (inputStreamReader baru (req.getInputStream ()); String body = ioutils.read (pembaca); String name = req.getParameter ("name"); if (stringutils.isnotblank (body)) {log.info ("Bisnis menerima sesuatu dengan tubuh:"+tubuh); } res.setcharacterencoding ("UTF-8"); res.setContentType ("Application/JSON"); res.setStatus (httpservletResponse.sc_ok); res.getWriter (). println (service.getname (name)); }} Dalam metode dopost kode ini, IO Stream digunakan untuk mendapatkan badan pos yang dikirimkan, jadi kami mendapatkan parameter yang dikirimkan oleh klien.
Perlu dicatat bahwa: untuk mendapatkan parameter tubuh, Anda perlu menyebutnya sebelum metode. GetParameter () (jika Anda perlu mengambil parameter QueryString), karena begitu metode getParameter () dipanggil, parameter tubuh diperoleh melalui aliran IO akan tidak valid (kembali "" untuk tes pribadi).
Selain itu, metode ioutils.read (pembaca) dari Dubbo-2.5.3.jar digunakan di sini untuk membaca konten badan pos.
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.