私のアプリケーションはHttpServletRequestを使用してWebサービスリクエストを送信しています。 ie11で私たちのアプリケーションからのリクエストを実行すると返される結果は得られませんが、Firefoxから実行すると結果が返ってきます。これは、aRequest.getHeader( "User-Agent")現在の値です。HttpServletRequestのユーザーエージェントを変更するには?
Mozilla/4.0(互換性あり、MSIE 7.0、Windows NT 6.1、WOW64、Trident/7.0、SLCC2、.NET CLR 2.0.50727、.NET CLR 3.5.30729、.NET CLR 3.0.30729、Media Center PC 6.0、.NET4.0C、.NET4.0E、InfoPath.2、.NET CLR 1.1.4322、MS-RTC LM 8)
これをie11互換に変更してください。リクエストのユーザーエージェントがie7.0のように見えますが、問題は「setHeader」のオプションが表示されません。私は
public final ActionForward execute(final ActionMapping aMapping,
final ClientForm aForm,
final HttpServletRequest aRequest,
final HttpServletResponse aResponse)
throws ServletException
{
try {
final ServletOutputStream out = aResponse.getOutputStream();
aResponse.setContentType("text/html");
processAjaxRequest(aMapping, aForm, aRequest, aResponse, out);
out.flush();
out.close();
}
public void processAjaxRequest(final ActionMapping aMapping,
final ClientForm aForm,
final HttpServletRequest aRequest,
final HttpServletResponse aResponse,
final ServletOutputStream out)
throws ServletException, IOException
{
String response = null;
boolean isValid = false;
if (isValid(aRequest, aForm)) {
response = "success";
isValid = true;
} else {
response = "fail";
isValid = false;
}
if (WebUtils.getParameter(aRequest, "format", "html").equals("json")) {
//Map<String,String> map = new HashMap<String,String>(1);
Map map = new HashMap(1);
map.put("status", isValid ? "ok" : "fail");
aResponse.setHeader("X-JSON", JSON.encode(map));
} else {
out.print(response);
}
}
「HttpServletRequest」を使用しているとはどういう意味ですか?そのオブジェクトはサーブレット自体によって作成されます。あなたが実際に呼んでいるもののコードサンプルを提供できますか? – SanF
コードサンプルを追加しました – rtd353