java - Get parameters returned from web-site using servlet -
hi,
1. send such form testing sandbox paypal server
<!doctype html public "-//w3c//dtd html 4.01 transitional//en" "http://www.w3.org/tr/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>start page</title> </head> <body> <form method=post action=https://api-3t.sandbox.paypal.com/nvp> <input type=hidden name=user value=my_sandbox_account> <input type=hidden name=pwd value=my_pass> <input type=hidden name=signature value=my_sign_key> <input type=hidden name=version value=72.0> <input type=hidden name=paymentrequest_0_paymentaction value=sale> <input name=paymentrequest_0_amt value=6.00> <input type=hidden name=returnurl value=http://www.my_return_url.com> <input type=hidden name=cancelurl value=http://www.my_return_url.com> <input type=submit name=method value=setexpresscheckout> </form> </body> </html>
2. once submit form recieve string in browser this:
token=ec%23409823094jkk×tamp=2013%2d04%2d25t10%3a30%3a54z&correlationid=345803985njkk3&ack=success&version=72%2e0&build=5709304
3. want servlet gets returned string in variable manage further
import java.io.ioexception; import javax.servlet.servletexception; import javax.servlet.annotation.webservlet; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; /** * servlet implementation class setexpresscheckoutservlet */ @webservlet("/setexpresscheckoutservlet") public class setexpresscheckoutservlet extends httpservlet { private static final long serialversionuid = 1l; /** * @see httpservlet#httpservlet() */ public setexpresscheckoutservlet() { super(); // todo auto-generated constructor stub } /** * @see httpservlet#doget(httpservletrequest request, httpservletresponse response) */ protected void doget(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception { dopost(request, response); } /** * @see httpservlet#dopost(httpservletrequest request, httpservletresponse response) */ protected void dopost(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception { string token = request.getquerystring(); system.out.println(token.tostring()); } }
when launch project passes steps 1 , 2, 3 doesn't pass.
help me please create servlet correctly.
update
protected void dopost(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception { string token = request.getparameter("token"); printwriter pw = response.getwriter(); if(token == null){ system.out.println("it null"); } else { pw.print("<html><body>" + token + "<body></html>"); } }
my web.xml
<?xml version="1.0" encoding="utf-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0" metadata-complete="true"> <display-name>ppconnector</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> <servlet> <servlet-name>setexpresscheckoutservlet</servlet-name> <servlet-class>ua.pp.connector.setexpresscheckoutservlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>setexpresscheckoutservlet</servlet-name> <url-pattern>/setexpresscheckoutservlet</url-pattern> </servlet-mapping> </web-app>
what want parameter value known parameter name, using servletrequest#getparameter(string name)
. parameters name=value
pairs in requests, , can retrieved in servlet calling getparameter
method. so, in case, it'd be:
protected void dopost(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception { string token = request.getparameter("token"); //retrieve other parameters in same way //and handle parameters accordingly }
for servlet called request url must path url-mappling of servlet in case declared via @webservlet
anotation.
also, if don't need method - not use it. otherwise, better practice both , post methods call common function processrequest(...)
.