【问题标题】:java - passing parameter from a java class to a servletjava - 将参数从 java 类传递给 servlet
【发布时间】:2014-05-25 13:32:36
【问题描述】:

我有一个特殊的业务案例,我试图将参数(变量和数组)从 java 类 传递到 servlet从 java 类调用一个 servlet。

我所做的是,只是让参数在 java 类中全局分配它们的值,然后从 Java 类调用 servlet。但这似乎不是一个好主意。

她是我的示例代码:

/* Assigning all the variables and array values inside a java class */

JavaClass.java
...
var1 = value1;
var2 = value2;
arr1 = {val1, val1, val3};
...

我指的是 Oracle 文档中的 URLCONnection here

问题是我不明白我们可以发送参数的方式。

URL url = new URL("http://localhost:8080/ProjectCharterApproval2/CharterApprover");

URLConnection connection = url.openConnection() ; 

connection.setDoOutput(true);

/** After this how should I pass parameter to the servlet as an input object or output object ? **/

我们将不胜感激。

提前致谢。

【问题讨论】:

    标签: java parameter-passing urlconnection


    【解决方案1】:

    尝试查询字符串来传递变量

    URL url = new URL("http://localhost:8080/ProjectCharterApproval2/CharterApprover?var1="+var1+"&var2="+var2+"&var3[]="+arr1);
    

    这种数组方法适用于 php,但不了解 JAVA。请试试这个。

    或者如果你不想使用这个,试试这个

    class Param implements Serializable{
        private String var1;
        private String var2;
        private String []var3;
        public String getVar1() {
            return var1;
        }
        public void setVar1(String var1) {
            this.var1 = var1;
        }
        public String getVar2() {
            return var2;
        }
        public void setVar2(String var2) {
            this.var2 = var2;
        }
        public String[] getVar3() {
            return var3;
        }
        public void setVar3(String[] var3) {
            this.var3 = var3;
        }
        public Demo(String var1, String var2, String[] var3) {
            super();
            this.var1 = var1;
            this.var2 = var2;
            this.var3 = var3;
        }
    }
    

    现在在你的 java 类中

    Param pr=new Param(var1,var2,arr1);
    

    在任何持久存储中序列化这个 pr 对象,如文件和反序列化 servlet 中的对象。

    【讨论】:

    • 由于一些安全问题我不能。有什么方法可以序列化成一个对象然后传递它?
    【解决方案2】:

    我搜索了可能其他人有确切问题的相同问题,我在这里找到了一个可接受的答案。

    Java:how to pass value from class/bean to servlet

    并且对于传递参数和/或数组是通过该行完成的:

    request.setAttribute("areas", areas);
    

    类似于您即将执行的 ("key": value) 请求集。

    问候..

    【讨论】:

      【解决方案3】:

      在 URL 本身中传递参数,因为我们通常在问号之后传递。对于多个参数,请使用 & 表示法。

      URL url = new URL("http://127.0.0.1:8080/ProjectCharterApproval2/CharterApprover?parameter=" + param );
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-12-16
        • 2011-03-21
        • 2012-09-24
        • 1970-01-01
        • 2018-08-16
        • 2012-01-07
        • 1970-01-01
        相关资源
        最近更新 更多