这是我自己写的一个demo
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.nio.SelectChannelConnector;
import org.mortbay.jetty.servlet.ServletHandler;
import org.mortbay.jetty.servlet.ServletHolder;
import org.mortbay.thread.QueuedThreadPool;
public class HttpConnectorTest extends HttpServlet {
public static void main(String[] args) {
QueuedThreadPool queuedThreadPool = new QueuedThreadPool();
queuedThreadPool.setDaemon(true);
queuedThreadPool.setMaxThreads(200);
queuedThreadPool.setMinThreads(10);
SelectChannelConnector selectChannelConnector = new SelectChannelConnector();
selectChannelConnector.setPort(1010);
selectChannelConnector.setAcceptors(20);
selectChannelConnector.setSoLingerTime(60000);
ServletHandler handler = new ServletHandler();
ServletHolder holder = handler.addServletWithMapping(HttpConnectorTest.class, "/payment");
holder.setInitParameter("url", "/payment");
holder.setInitParameter("encoding", "UTF-8");
holder.setInitOrder(2);
Server server = new Server();
server.setThreadPool(queuedThreadPool);
server.addConnector(selectChannelConnector);
server.addHandler(handler);
try {
server.start();
server.join();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
InputStream in = request.getInputStream();
OutputStream out = response.getOutputStream();
int msglen = request.getContentLength();
byte[] msg = new byte[msglen];
int len = 0;
while(true) {
int rlen = in.read(msg, len, msglen-len);
if(rlen > 0) {
len += rlen;
}
if(len == msglen || rlen < 0) {
break;
}
}
String smsg = new String(msg,"UTF-8");
System.out.println(smsg);
out.write(msg);
out.flush();
if(null != in) {
in.close();
}
if(null != null) {
out.close();
}
} catch (Exception e) {
// TODO: handle exception
}
}
}