【发布时间】:2016-02-28 08:46:44
【问题描述】:
我在发送基于query string 的差异响应时遇到了一些问题,我有 2 个字符串假设与查询名称 serviceType 中的单个参数匹配:
private static String restartQuery = "restarts";
private static String dbStatusQuery = "dbStatus";
而我的doGet 函数需要相应地发送响应:
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException{
String requestType = request.getParameter(serviceType);
// Set response content type
response.setContentType("text/html");
if(requestType.equals(restartQuery)){
//handle response for restartQuery
PrintWriter out = response.getWriter();
out.println("response for restart ....");
}else if (requestType.equals(dbStatusQuery)){
//handle response for dbStatusQuery
PrintWriter out = response.getWriter();
out.println("response for db ....");
}
}
问题是我得到了相同的响应(重新启动...),我从前端检查了查询字符串 - system.println(requestType) 并且每个请求都不同,我可以更改什么以使其工作?如果需要更多代码,请在下方评论。
【问题讨论】:
-
不,它们被定义为静态的。
-
它们应该按预期工作,我在这里看不到任何逻辑错误。您仍然可以通过将 equals 语句还原为 restartQuery.equals(requestType) 和 dbStatusQuery.equals(requestType) 来试试运气
-
现在推荐使用球衣是否为时已晚?
-
检查参数值是否在
requestType值中有空格? -
我在字符串中添加了 final 并且它起作用了,我不知道为什么......
标签: java servlets query-string