让web程序的端口读取来自配置文件,
然后用jsp修改该配置文件。

解决方案 »

  1.   

    是应该这样,配置文件也读出来,现在是问具体的方法,怎么才能修改其中port后面的参数,再保存
      

  2.   

    呃。文件里的内容是什么格式呢?
    XML?
    还是另外的格式?如果是XML的话,直接用xml对象来操作,很方便。
    如果不是XML,那么就按这个.cfg文件的格式来读取,自己写一个算法。
      

  3.   

    #
    # $Id: ser.cfg,v 1.25.2.1 2005/02/18 14:30:44 andrei Exp $
    #
    # simple quick-start config script
    ## ----------- global configuration parameters ------------------------#debug=3         # debug level (cmd line: -dddddddddd)
    #fork=yes
    #log_stderror=no # (cmd line: -E)/* Uncomment these lines to enter debugging mode 
    fork=no
    log_stderror=yes
    */check_via=no # (cmd. line: -v)
    dns=no           # (cmd. line: -r)
    rev_dns=no      # (cmd. line: -R)
    port=5060
    #children=4
    fifo="/tmp/ser_fifo"# ------------------ module loading ----------------------------------# Uncomment this if you want to use SQL database
    loadmodule "/usr/local/lib/ser/modules/mysql.so"loadmodule "/usr/local/lib/ser/modules/sl.so"
    loadmodule "/usr/local/lib/ser/modules/tm.so"
    loadmodule "/usr/local/lib/ser/modules/rr.so"
    loadmodule "/usr/local/lib/ser/modules/maxfwd.so"
    loadmodule "/usr/local/lib/ser/modules/usrloc.so"
    loadmodule "/usr/local/lib/ser/modules/registrar.so"
    loadmodule "/usr/local/lib/ser/modules/textops.so"# Add by Hysc at 2006/01/07
    loadmodule "/usr/local/lib/ser/modules/nathelper.so"# Uncomment this if you want digest authentication
    # mysql.so must be loaded !
    loadmodule "/usr/local/lib/ser/modules/auth.so"
    loadmodule "/usr/local/lib/ser/modules/auth_db.so"# ----------------- setting module-specific parameters ---------------# -- usrloc params --#modparam("usrloc", "db_mode",   0)
    modparam("usrloc", "db_mode",   2)# Add by Hysc at 2006/01/07
    modparam("registrar", "nat_flag", 6)
    modparam("nathelper", "natping_interval", 30) # Ping interval 30 s
    modparam("nathelper", "ping_nated_only", 1)   # Ping only clients behind NAT# Uncomment this if you want to use SQL database 
    # for persistent storage and comment the previous line
    #modparam("usrloc", "db_mode", 2)# -- auth params --
    # Uncomment if you are using auth module
    #
    modparam("auth_db", "calculate_ha1", yes)
    #
    # If you set "calculate_ha1" parameter to yes (which true in this config), 
    # uncomment also the following parameter)
    #
    modparam("auth_db", "password_column", "password")# -- rr params --
    # add value to ;lr param to make some broken UAs happy
    modparam("rr", "enable_full_lr", 1)# -------------------------  request routing logic -------------------# main routing logic# Add by Hysc at 2006/01/07
    #define NAT_UAC_TEST_C_1918     0x01
    /*
    * test for occurences of RFC1918 addresses in Contact
    * header field
    */
    #define NAT_UAC_TEST_RCVD       0x02
    /*
    * test if source address of signaling is different from
    * address advertised in Via
    */
    #define NAT_UAC_TEST_V_1918     0x04
    /*
    * test for occurences of RFC1918 addresses in SDP body
    */
    #define NAT_UAC_TEST_S_1918     0x08
    /*
    * test for occurences of RFC1918 addresses top Via
    */route{ # initial sanity checks -- messages with
    # max_forwards==0, or excessively long requests
    if (!mf_process_maxfwd_header("10")) {
    sl_send_reply("483","Too Many Hops");
    break;
    };
    if (msg:len >=  2048 ) {
    sl_send_reply("513", "Message too big");
    break;
    }; # Add by Hysc at 2006/01/07
    if (nat_uac_test("3")) {
    append_hf("Alex-hint: NAThelper\r\n");
    fix_nated_contact(); # Rewrite contact with source IP of signalling
    if (method == "REGISTER" || ! search("^Record-Route:")) {
    #if (www_authorize("hysc.meibu.com", "subscriber")) {
    # www_challenge("hysc.meibu.com", "1");
    #};
    if (method == "INVITE") {
    append_hf("Alex-hint: SDP rewritten\r\n");
    #fix_nated_sdp("1"); # Add direction=active to SDP
    };
    log("LOG: Someone trying to register from private IP, rewriting\n");
    force_rport(); # Add rport parameter to topmost Via
    setflag(6);    # Mark as NATed
    };
    }; # we record-route all messages -- to make sure that
    # subsequent messages will go through our proxy; that's
    # particularly good if upstream and downstream entities
    # use different transport protocol
    if (!method=="REGISTER") record_route(); # subsequent messages withing a dialog should take the
    # path determined by record-routing
    if (loose_route()) {
    #  routing logic in request
    append_hf("P-hint: rr-enforced\r\n"); 
    route(1);
    break;
    }; if (!uri==myself) {
    #  routing logic in request
    append_hf("P-hint: outbound\r\n"); 
    route(1);
    break;
    }; # if the request is for other domain use UsrLoc
    # (in case, it does not work, use the following command
    # with proper names and addresses in it)
    if (uri==myself) { if (method=="REGISTER") {# Uncomment this if you want to use digest authentication
    if (!www_authorize("hysc.meibu.com", "subscriber")) {
    www_challenge("hysc.meibu.com", "0");
    break;
    }; save("location");
    break;
    }; lookup("aliases");
    if (!uri==myself) {
    append_hf("P-hint: outbound alias\r\n"); 
    route(1);
    break;
    }; # native SIP destinations are handled using our USRLOC DB
    if (!lookup("location")) {
    sl_send_reply("404", "Not Found");
    break;
    };
    };
    append_hf("P-hint: usrloc applied\r\n"); 
    route(1);
    }# Modify by Hysc at 2006/01/07
    #route[1] 
    #{
    # send it out now; use stateful forwarding as it works reliably
    # even for UDP2TCP
    # if (!t_relay()) {
    # sl_reply_error();
    # };
    #}
    route[1]
    {
    # !! Nathelper
    if (isflagset(6)) {
    force_rtp_proxy();
    append_hf("NAT: ...\r\n");
    };
    # NAT processing of replies; apply to all transactions (for example,
    # re-INVITEs from public to private UA are hard to identify as
    # NATed at the moment of request processing); look at replies
    t_on_reply("1"); # send it out now; use stateful forwarding as it works reliably
    # even for UDP2TCP
    if (!t_relay()) {
    sl_reply_error();
    };
    }# !! Nathelper
    onreply_route[1] {
    # NATed transaction ?
    append_hf("NAT: tes\r\n");
    #if (isflagset(6) && status == "(200)") {
            # added by Elvis 2006.02.27 
            # for NAT 
            if (1){
    fix_nated_contact();
    force_rport();
    #  fix_nated_sdp("3");
    force_rtp_proxy();
    append_hf("NAT: test\r\n");
    # otherwise, is it a transaction behind a NAT and we did not
    # know at time of request processing ? (RFC1918 contacts)
    } else if (nat_uac_test("1")) {
    fix_nated_contact();
    force_rport();
    #  fix_nated_sdp("3");
    force_rtp_proxy();
    append_hf("NAT: test1\r\n");
    };
    }
      

  4.   

    很强大。用正则表达式/port=\d+/来找端口配置,找到后,replace数字值
      

  5.   

    直接读取那个xml..进行修改不就完了吗
      

  6.   

    这是一个linux下的程序,没有xml配置文件
      

  7.   

    用indexof查出了port的位置,接下来该怎么把后面参数读到text里显示出来,修改测试过了,可以用replace