我知道,如果我不穿运动衫,这是一件很容易的事,我会用这样的东西:
Enumeration<String> params = request.getParameterNames();
while(params.hasMoreElements()){
String paramName = (String)params.nextElement();
System.out.println("Parameter Name - "+paramName+", Value - "+request.getParameter(paramName));
}
params = request.getHeaderNames();
while(params.hasMoreElements()){
String paramName = (String)params.nextElement();
System.out.println("Header Name - "+paramName+", Value - "+request.getHeader(paramName));
}
params = request.getAttributeNames();
while(params.hasMoreElements()){
String paramName = (String)params.nextElement();
System.out.println("Attribute Name - "+paramName+", Value - "+request.getAttribute(paramName));
}
我也意识到我可以做到这一点,并完成它。
@FormParam("location") String location
但是,如果我真的想转储通过POST提交的表单的所有内容,该怎么办?
问题是,我使用Jersey作为JAX-RS的实现,并使用上面的代码输出以下内容:
Attribute Name - org.glassfish.jersey.server.spring.scope.RequestContextFilter.REQUEST_ATTRIBUTES, Value - org.glassfish.jersey.server.spring.scope.JaxrsRequestAttributes@11e035a
Attribute Name - org.glassfish.jersey.message.internal.TracingLogger, Value - org.glassfish.jersey.message.internal.TracingLogger$1@16e45c8
我猜想我的数据包含在这里:不过我不确定jaxrsquestattributes。
我知道我错过了一些东西。这应该不难吧?
更新
正如索蒂里奥斯所说,
这是获取表单转储的代码。
try {
InputStream is = request.getInputStream();
int i;
char c;
while((i=is.read())!=-1)
{
// converts integer to character
c=(char)i;
// prints character
System.out.print(c);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
为了使其工作,我必须删除参数中的@FormParam并省略@Context HttpSerlvetRequest请求。
没有其他方法可以以更优雅的方式输出它,而不需要删除@FormParam吗?也许可以从jaxrsquestattributes中获取值?
我试图创建一个变量JaxrsRequest estAtorites,但它是一个默认类,a不能直接访问它。
可以使用以下方式访问HttpServletRequest:
@Context
private HttpServletRequest request;
这还不够吗?
根据索蒂里奥斯的评论,以下是答案:
这是方法签名
public Response authenticateUser(MultivaluedMap<String, String> form)
Iterator<String> it = form.keySet().iterator();
while(it.hasNext()){
String theKey = (String)it.next();
System.out.println("Parameter Name - "+theKey+", Value - "+form.getFirst(theKey));
}
System.out.println(form);
我试图用Spring jdbc和Jersey从mysql数据库中检索数据,我的代码是 Dao是getUsers()。如果我想获得所有用户,它工作良好,我可以在一个jsp上显示他们。 下面是资源类 类型异常报告 消息java.lang.NullPointerException 说明服务器遇到内部错误,导致它无法完成此请求。 注意,Apache Tomcat/7.0.68日志中提供了根本原因的完整堆栈
问题内容: 我正在尝试获取Java中的发布数据。好像应该做的最简单的事情之一?我的意思是,HttpServletRequest.getParameter必须正确执行吗?那么,如何获取原始帖子数据? 我发现HttpServletRequest获得JSONPOST数据,并使用Kdeveloper的代码从请求中提取发布数据。它有效,但是有一个陷阱:我只能 一次 获取该发布数据。 这是我根据Kdevelo
我是新泽西州人,我尝试使用示例中的SelectableEntityFilteringFeature:http://blog.dejavu.sk/2015/02/04/jerseys-entity-filtering-meets-jackson/#selectable 我使用以下类/文件创建了一个小型服务: 名为PersonResource的资源文件。Java语言 一个叫做Person.java的域
我正在尝试使用hk2 DI在泽西岛,我已经读了一些关于这件事的文本。(我想大多数已经过时了)目前我有一个扩展ResourceConfig的类: 更新: 我应该添加我将应用程序包添加到web.xml中的扫描路径:
我想创建一个类的单例实例,这个类不是作为资源或服务在Jersey中涉及的,但希望它的依赖项从Jersey ServiceLocator中注入。 我可以在ResourceConfig构造函数中手动注册该类,然后将ResourceConfig传入Grizzly工厂方法,如下所示: