Avatar billede roo104 Nybegynder
09. september 2003 - 13:47 Der er 3 kommentarer og
1 løsning

Sætte servlet querystring parameter

Jeg har en servlet, som henter en række oplysninger fra en db ind i en Vector.
For hver post i db'en skal der laves et link. Når man kliker på linket skal der sættes en querystring parameter, som jeg kan kalde fra en anden funktion.

Den skal tage en ip og sætte som querystring, som jeg så skal kunne requeste fra min runGame() funktion.

Min servlet ser sådan her ud:
import java.io.*;
import java.util.Vector;
import javax.servlet.*;
import javax.servlet.http.*;

public class index extends HttpServlet {
    DatabaseConnect db = new DatabaseConnect();
    Vector dbServer = db.exeServerInfoQuery("select s.id_server, s.ip from server s, "+
                                            "user_server us, "+
                                            "user u where u.id_user = us.id_user "+
                                            "and us.id_server = s.id_server and u.id_user = 1");
   
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
       
        HttpSession session = request.getSession();
        int[] servers = (int[])session.getAttribute("servers");
       
        if (servers == null) {
            servers = new int[dbServer.size()];
            session.setAttribute("servers", servers);
        }

        out.println("<html><head><title>Roo's Remote HL manager</title></head><body>");

        doForm(out, request.getRequestURI());     
       
        if (request.getParameter("join") != null)
            runGame(request,servers);
        out.close();
    }
   
    protected void runGame(HttpServletRequest request, int[] servers) {
        try {

            Runtime rt = Runtime.getRuntime();
            Process proc = rt.exec("D:\\Games\\Half-Life\\hl.exe " + "-console -game cstrike +connect " + request.getParameter("servers"));
        }
        catch(IOException ioe) {
            System.err.println(ioe);
        }
    } 

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
   
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
   
    void doForm(PrintWriter out, String requestURI) {
        out.println("<form name=joinform action=" + requestURI + " method=get>" +
                    "<input name=join type=hidden value=join>");
       
        for (int i = 0 ; i < dbServer.size() ; i++) {
            out.println("<a href=java script:document.joinform.submit(); document.joinform.join.value=join>" +
                        dbServer.elementAt(i) + "</a><br>");
           
        }
       
        out.println("</form>");
    }                 
}
Avatar billede arne_v Ekspert
09. september 2003 - 13:58 #1
Hvad er spørgsmålet ?
Avatar billede roo104 Nybegynder
09. september 2003 - 14:01 #2
HVis jeg printer oplysningerne ud fra db Vectoren ser det sådan her ud
http://212.242.204.129:8081/servlet/index

Jeg ville gerne have den til at tage ip'en fra det link man trykker vidre til runGame funktionen
Avatar billede arne_v Ekspert
09. september 2003 - 14:12 #3
Nu kan jeg ikke gennemskue den JavaScript du bruger.

Men hvis det var en normal form med en submit button. Så ville
den valgte jo kunne hentes med request.getParameter !
Avatar billede roo104 Nybegynder
09. september 2003 - 15:21 #4
Det er mit javascript der driller den får ikke sat valuen, prøver i javascript kategorien
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester