在servlet中传递运行时参数

时间:2011-05-20 11:50:14

标签: java servlets struts

我试图开发一个Web应用程序,当单击一个按钮时,必须使用一些命令行参数启动servlet。这是必需的,因为servlet类运行corba客户端。如果没有这些命令行参数“-ORBInitialHost xxx.xx.xx.xx -ORBInitialPort 1050”,则servlet类无法调用corba客户端,其中x是ip地址。当我使用以下命令“java HelloClient -ORBInitialHost xxx.xx.xx.xx -ORBInitialPort 1050执行它作为独立的Java应用程序时,程序运行正常“

3 个答案:

答案 0 :(得分:0)

只需将它们作为请求参数传递,然后在调用corba客户端时使用它们。

例如,网址为http://domain.com/corbaServlet?param1=foo&param2=bar,然后是

public void doGet(..) {
    String param1 = request.getParameter("param1");
    String param2 = request.getParameter("param2");
    startCorbaClient(param1, param2);
}

答案 1 :(得分:0)

您可以将它们作为系统参数添加到应用程序服务器启动脚本中,并使用system.getProperty()在servlet中检索它们吗?

java -Dorb.host=xxx.xx.xx.xxx -Dorb.port=1050 application_server_startup.jar

并在你的servlet中使用init()方法

orbHost = System.getProperty("orb.host");
orbPort = System.getProperty("orb.port");

答案 2 :(得分:0)

您需要创建ORB并将这些参数作为Java Properties传递给它。类似的东西:

...
Properties props = new Properties();
props.add("org.omg.CORBA.ORBInitialHost", httpServletRequest.getParameter("initialHost"));
props.add("org.omg.CORBA.ORBInitialPort", httpServletRequest.getParameter("initialPort"));
ORB orb = ORB.init(null, props);
// do some work with your ORB
...