我接管了一个Sring MVC项目,需要改变它的行为,所以在我的servlet中我发送一个get请求来自动登录,我的servlet代码如下所示:
...
public class ServletFilter implements Filter
{
int Count=0;
...
public void doFilter(ServletRequest servletRequest,ServletResponse servletResponse,FilterChain filterChain) throws IOException,ServletException
{
if (Count==0)
{
String Login_URI="http://Example.com/SupportCenter/login.html?userName="+userName+"&password="+password;
Count++;
String result=sendGetRequest(Login_URI);
}
...
private String sendGetRequest(String url)
{
StringBuffer response=new StringBuffer();
String USER_AGENT="Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)";
// String USER_AGENT="Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0";
try
{
URL obj=new URL(url);
HttpURLConnection con=(HttpURLConnection)obj.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("User-Agent", USER_AGENT);
int responseCode = con.getResponseCode();
System.out.println("\nSending 'GET' request to URL : "+url);
// System.out.println("Response Code : "+responseCode);
BufferedReader in=new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
while ((inputLine=in.readLine()) != null) { response.append(inputLine); }
in.close();
// System.out.println(response.toString());
}
catch (Exception e) { e.printStackTrace(); }
return response.toString();
}
...
}
当我使用Firefox运行它时,它登录了我,但没有在IE中工作。
我也手动粘贴了网址:
http://Example.com/SupportCenter/login.html?userName=UID&password=PSW
进入两个broswers,他们都登录了我。 那么为什么当我的servlet在IE中运行时,它无法登录我?我怎样才能看到浏览器和servlet之间的幕后交互,所以我模拟了它?
答案 0 :(得分:0)
我弄明白为什么,只需打开Cookie即可解决问题。