利用post 和get 请求,分别调用ser Vlet 中的doPost()和 doget()计算矩形的面积和周长
时间: 2024-10-13 15:18:09 浏览: 17
在Servlet技术中,`doGet()`方法通常用于处理HTTP GET请求,而`doPost()`方法则用于处理HTTP POST请求。如果你想通过POST和GET请求来计算矩形的面积和周长,你可以这样做:
1. **GET请求(doGet())**:
当用户通过URL传递矩形的长度和宽度作为查询字符串参数时,可以使用`doGet()`方法。首先,你需要解析这些参数,然后计算面积(length * width)并返回结果。例如,如果参数名为`length`和`width`,你可以这样操作:
```java
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String length = request.getParameter("length");
String width = request.getParameter("width");
int l = Integer.parseInt(length);
int w = Integer.parseInt(width);
int area = l * w;
// 返回响应,比如JSON数据
response.setContentType("application/json");
response.getWriter().println("{ \"area\": " + area + ", \"perimeter\": 2*(l+w) }");
}
```
2. **POST请求(doPost())**:
对于POST请求,数据通常包含在请求体中,而不是URL中。你可以使用`request.getReader()`读取数据,然后解析出矩形的长度和宽度。同样计算面积和周长,并将结果写入响应。
```java
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
BufferedReader reader = request.getReader();
String line = "";
StringBuilder sb = new StringBuilder();
while ((line = reader.readLine()) != null) {
sb.append(line).append("\n");
}
Map<String, String> params = new HashMap<>();
for (String param : sb.toString().split("&")) {
String[] keyValue = param.split("=");
params.put(keyValue[0], keyValue[1]);
}
String length = params.get("length");
String width = params.get("width");
int l = Integer.parseInt(length);
int w = Integer.parseInt(width);
int area = l * w;
int perimeter = 2 * (l + w);
// 返回响应
response.setContentType("application/json");
response.getWriter().println("{ \"area\": " + area + ", \"perimeter\": " + perimeter + "}");
}
```
阅读全文