如何获取会话 Bean (EJB) 中的请求参数?

roy*_*oyb 1 java web-services ejb jakarta-ee

我在 HTML 页面中的按钮是:

<a id="showTrail" href="/resources/showTrail?roy=show" target="iframe_a">
  <button>Show Trail</button>
</a>
Run Code Online (Sandbox Code Playgroud)

我的 Java Web 服务是:

package webServices;

import javax.ejb.EJB;
import javax.ejb.Stateless;

import javax.ws.rs.Path;
import javax.ws.rs.GET;
import javax.ws.rs.PUT;
import javax.ws.rs.Produces;
import javax.ws.rs.Consumes;

/**
 * REST Web Service
 *
 * @author mkuchtiak
 */

@Stateless
@Path("/showTrail")
public class ShowTrail{

    @EJB
    private NameStorageBean nameStorage;

    @GET
    @Produces("text/html")
    public String getXml() {
        //String abc = request.getParameter("roy");
        return "<html><body><h1>Hello "+nameStorage.getName()+"!</h1></body></html>";
    }

    @PUT
    @Consumes("text/plain")
    public void putXml(String content) {
        nameStorage.setName(content);
    }

}
Run Code Online (Sandbox Code Playgroud)


如何从 HTML 中获取请求参数?下面的行可以工作吗?

String abc = request.getParameter("roy");
Run Code Online (Sandbox Code Playgroud)


我想发送一个HttpRequestas 参数来发送更多参数,然后“roy”

Mar*_*tör 5

使用@QueryParam注释。这样你就不需要摆弄request.getParameter()自己了。

Java代码

@GET
@Produces("text/html")
public String getXml(@QueryParam("roy") String roy, 
                     @QueryParam("someInt") int someInt,
                     @QueryParam("orderBy") List<String> orderBy) {
Run Code Online (Sandbox Code Playgroud)

超文本标记语言

<a id="showTrail" href="/resources/showTrail?roy=show&someInt=4711&orderBy=age&orderBy=name" target="iframe_a">
  <button>Show Trail</button>
</a>
Run Code Online (Sandbox Code Playgroud)