struts2怎么拦截不到URLConnection发送的http请求
本帖最后由 afeiluo 于 2013-11-26 11:09:22 编辑 最近遇到一个很奇怪的问题 ,我通过浏览器向struts2发送一个http请求 能够成功的执行action里面指定的访问, 为什么我写了一个程序通过URLConnection来向struts2来发送同样的一个http请求 却不能执行struts2 的action里面指定的方法呀
代码如下:
struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="struts2" extends="struts-default">
<action
name="request" class="com.afeiluo.GetRequestAction" method="getHttp">
</action>
</package>
</struts>
Action
package com.afeiluo;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import javax.servlet.ServletInputStream;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class GetRequestAction extends ActionSupport {
private String username;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public void getHttp(){
System.out.println("username:"+username);
System.out.println("am in getHttp");
}}
发送URLConnection的代码片段
URL url = new URL("http://localhost:8080/TestWeb/request?username=ooxx");
URLConnection connection = url.openConnection();
如果在浏览器里面直接访问http://localhost:8080/TestWeb/request?username=ooxx的话
后台的控制台能输出username=ooxx am in getHttp 通过“URL url = new URL("http://localhost:8080/TestWeb/request?username=ooxx");
URLConnection connection = url.openConnection();”这种方式就访问不到。。。。
这究竟是怎么回事呀?求大神解决呀
[解决办法]
url.openConnection()只是打开了localhost:8080这个的socket连接请求,所以并没有做什么处理,你在试试connection.getInputStream();这句话就是对具体的资源进行请求的,你看看有没有输出