Avatar billede bengun Novice
12. marts 2009 - 10:44 Der er 2 kommentarer og
1 løsning

Servlet kan ikke kaldes fra index.html

Hej.

Jeg har en .html fil der skal kalde en servlet, men den giver følgende fejl:

"HTTP method POST is not supported by this URL"

Men når jeg kalder servlet'en direkte kører den fint.

Er der en der kan give et bud på hvad jeg gør forkert / mangler.

Jeg kører på en lokal installeret Tomcat under XP.
---------
Directory struktur
---------
Localhost
  myapp
      WEB-INF
        classes

index.html er placeret i myapp.
Selectdata.class er placeret classes.

---------
web.xml
---------
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  version="2.5">

    <servlet>
        <servlet-name>Selectdata</servlet-name>
        <servlet-class>Selectdata</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Selectdata</servlet-name>
        <url-pattern>/Selectdata</url-pattern>
    </servlet-mapping>
</web-app>


---------
Html kode:
---------
<form METHOD="POST" ACTION="http://localhost:8080/myapp/Selectdata">
<input TYPE="SUBMIT" VALUE="Test-Servlet">
</form>

---------
Selectdata
---------
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class Selectdata extends HttpServlet
{   
    private static final long serialVersionUID = 1L;

    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException
    {       
        // Definer outputformat
        PrintWriter out = response.getWriter();
        response.setContentType("text/html");
       
       
        out.write("<html>\n");
        out.write("<head><title>Hent data fra fil</title></head>");
        out.write("<body>\n");
        out.write("<p>Henter data:<br>\n");
    out.write("</p>\n");
        out.write("</body>\n");
        out.write("</html>");
    }
   
      public void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException
      {
          doGet(request, response);
      }

}
Avatar billede arne_v Ekspert
12. marts 2009 - 14:16 #1
Mine mistanker gaar paa at du mangler at genstarte app efter at have recompilet servletten.

Det er generelt ikke godt med kode i default package og det kan bestemt fraraades, men hvis servlet kan kaldes standalone, saa er det jo nok ikke det der driller.
Avatar billede bengun Novice
13. marts 2009 - 07:35 #2
Hej arne_v

Det hjalp at genstarte Tomcat. Tusind tak.

Jeg er med på at Default ikke bør indeholde den slags kode, men pt. er det også kun for testens skyld. :-)

Send lige et svar, så du kan få dine point. :-))
Avatar billede arne_v Ekspert
13. marts 2009 - 14:14 #3
svar
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