从jsp传输请求到java

时间:2013-04-30 06:48:57

标签: java jsp

我有一个jsp文件:

... import <%@ page import="classPath.ExampleClass" %>
 <% 
 ExampleClass cl = new ExampleClass(request); 
 %> 

ExampleClass的代码(Java):

private HttpServletRequest req;
public ExampleClass(HttpServletRequest req) {
    this.req = req;
}

所以我想收到用Java评估它的完整请求。但在部署期间出现以下错误:

Cannot process HttpRequest to Servlet

为什么?

3 个答案:

答案 0 :(得分:0)

不要搞砸。使用JSP的{​​{3}}

  

JSP隐式对象是JSP容器在每个页面中向开发人员提供的Java对象,开发人员可以直接调用它们而无需显式声明。 JSP隐式对象也称为预定义变量。

写一下

 <% 
 ExampleClass cl = new ExampleClass(request); 
 %> 

答案 1 :(得分:0)

创建类似的bean类。

public class ExampleClass{          

      HttpServletRequest request;          

      public HttpServletRequest getRequest() {
        return request;
      }

      public void setRequest(HttpServletRequest request) {
        this.request = request;
      }    

    }

现在使用request

传递隐式jsp tag对象
<jsp:useBean id="exampleClass" class="classPath.ExampleClass" scope="request"/>
 <jsp:setProperty name="exampleClass" property="request" value="${pageContext.request}"/>

答案 2 :(得分:0)

在你的jsp中添加以下指令:

<jsp:useBean id="bean" class="classPath.ExampleClass" scope="request">
    <jsp:setProperty name="bean" property="*" />
    <jsp:setProperty name="bean" property="request" value="${pageContext.request}" />
</jsp:useBean>

属性“*”表示来自请求的所有属性都将在bean(类)上设置,例如表单提交与各种输入字段。

属性“request”将HttpServletRequest设置为最后一个参数,因此该方法可用作启动逻辑的指示符。

你的课程看起来像:

public class ExampleClass {          

    private HttpServletRequest request;
    private String fieldValue;

    public void doLogic() {
        // do your controller logic here
    }

    public HttpServletRequest getRequest() {
        return request;
    }

    public String getFieldValue() {
        return fieldValue;
    }   

    public void setRequest(HttpServletRequest request) {
        this.request = request;
        doLogic();
    }

    public void setFieldValue(String fieldValue) {
        this.fieldValue = fieldValue;
    }   

}

请注意,属性fieldValue是您可以添加的自定义字段,可以通过表单提交进行设置,如上所述:

<form method="post">
    <input name="feildValue" type="text" value="${bean.fieldValue}"/>
    <input name="btnSubmit" type="submit" value="Submit"/>
</form>