java 如何请求servlet
请求 Servlet 的步骤
使用 HttpURLConnection 发送 GET 请求
创建一个 URL 对象并打开连接,设置请求方法为 GET。通过 InputStream 读取响应数据。
URL url = new URL("http://example.com/YourServlet");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
int responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
}
使用 HttpURLConnection 发送 POST 请求
设置请求方法为 POST,并启用输出流。通过 OutputStream 发送请求参数。
URL url = new URL("http://example.com/YourServlet");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
String postData = "param1=value1¶m2=value2";
try (OutputStream os = connection.getOutputStream()) {
byte[] input = postData.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
int responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
}
使用 Apache HttpClient 发送请求

添加 Maven 依赖后,使用 CloseableHttpClient 发送请求。
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version>
</dependency>
发送 GET 请求:
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet("http://example.com/YourServlet");
CloseableHttpResponse response = httpClient.execute(httpGet);
try {
HttpEntity entity = response.getEntity();
if (entity != null) {
String result = EntityUtils.toString(entity);
System.out.println(result);
}
} finally {
response.close();
}
发送 POST 请求:

CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost("http://example.com/YourServlet");
List<NameValuePair> params = new ArrayList<>();
params.add(new BasicNameValuePair("param1", "value1"));
params.add(new BasicNameValuePair("param2", "value2"));
httpPost.setEntity(new UrlEncodedFormEntity(params));
CloseableHttpResponse response = httpClient.execute(httpPost);
try {
HttpEntity entity = response.getEntity();
if (entity != null) {
String result = EntityUtils.toString(entity);
System.out.println(result);
}
} finally {
response.close();
}
使用 Servlet 处理请求
在 Servlet 中重写 doGet 或 doPost 方法处理请求。
@WebServlet("/YourServlet")
public class YourServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String param1 = request.getParameter("param1");
response.setContentType("text/plain");
PrintWriter out = response.getWriter();
out.println("Received param1: " + param1);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String param1 = request.getParameter("param1");
response.setContentType("text/plain");
PrintWriter out = response.getWriter();
out.println("Received param1: " + param1);
}
}
注意事项
确保 Servlet 已正确配置并在 web.xml 中映射或使用 @WebServlet 注解。检查 URL 是否正确指向 Servlet 路径。处理异常情况,如连接超时或服务器错误。






