OVH Cloud OVH Cloud

JSP + servlet tutorial

6 réponses
Avatar
Phil
Bonjour à tous,

Je ne suis pas développeur Java, et j'essaye juste de me familiariser avec
la technologie JSP/servlet. J'ai trouvé dans Linux Magazine (juin 02) un
tutorial tomcat.

Voici le code de ma JSP :

<html>
<head><title>Test</title></head>
<body bgcolor="white">

<%@ page language="java" import="java.util.Date"%>
<center>
<b>Hello, here is the date: <% out.print(new Date()); %></b>
<br>
<a href="/test">Access to the linuxmag servlet</a>
</center>
</body>
</html>

Et voici le code de mon web.xml.

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>

<servlet>
<servlet-name>linuxmagServlet</servlet-name>
<servlet-class>org.linuxmag.web.linuxmagServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>linuxmagServlet</servlet-name>
<url-pattern>/linuxmag</url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

</web-app>

Mon problème est que le lien dans ma JSP pointe simplement sur la JSP. Il
n'y a aucun "mapping" sur ma servlet. J'ai essayé de rendre le serveur
tomcat plus verbeux avec "RequestDumperValve", mais je ne suis pas assez
qualifié pour trouver l'erreur... J'espère que j'ai fourni toutes les
informations...

Merci d'avance!

Phil

6 réponses

Avatar
Phil
On Sat, 20 Sep 2003 23:41:23 +0200, Phil wrote:


Voici le code de ma JSP :

<a href="/test">Access to the linuxmag servlet</a>
</center>
</body>
</html>


Oups.. en fait la ligne est :

<a href="/linuxmag">Access to the linuxmag servlet</a>

Juste un mauvais copié/collé... le problème existe toujours!

Phil

Avatar
Adobex
Mon problème est que le lien dans ma JSP pointe simplement sur la JSP. Il
n'y a aucun "mapping" sur ma servlet. J'ai essayé de rendre le serveur
tomcat plus verbeux avec "RequestDumperValve", mais je ne suis pas assez
qualifié pour trouver l'erreur... J'espère que j'ai fourni toutes les
informations...


Ben c'est quoi ton problème en fait? Je suppose que ça ne doit pas faire ce
que tu désires mais personnellement je ne comprends pas quoi...
Explique-nous tout ça en précisant ce à quoi tu t'attends (tout le monde n'a
pas le login du mois de juin ;) )

Adobex

Avatar
Adobex
Ben c'est quoi ton problème en fait? Je suppose que ça ne doit pas faire ce
que tu désires mais personnellement je ne comprends pas quoi...
Explique-nous tout ça en précisant ce à quoi tu t'attends (tout le monde n'a
pas le Linux Magazine du mois de juin 02 ;) )

Adobex

"Phil" a écrit dans le message de
news:

Bonjour à tous,

Je ne suis pas développeur Java, et j'essaye juste de me familiariser avec
la technologie JSP/servlet. J'ai trouvé dans Linux Magazine (juin 02) un
tutorial tomcat.

Voici le code de ma JSP :

<html>
<head><title>Test</title></head>
<body bgcolor="white">

<%@ page language="java" import="java.util.Date"%>
<center>
<b>Hello, here is the date: <% out.print(new Date()); %></b>
<br>
<a href="/test">Access to the linuxmag servlet</a>
</center>
</body>
</html>

Et voici le code de mon web.xml.

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>

<servlet>
<servlet-name>linuxmagServlet</servlet-name>
<servlet-class>org.linuxmag.web.linuxmagServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>linuxmagServlet</servlet-name>
<url-pattern>/linuxmag</url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

</web-app>

Mon problème est que le lien dans ma JSP pointe simplement sur la JSP. Il
n'y a aucun "mapping" sur ma servlet. J'ai essayé de rendre le serveur
tomcat plus verbeux avec "RequestDumperValve", mais je ne suis pas assez
qualifié pour trouver l'erreur... J'espère que j'ai fourni toutes les
informations...

Merci d'avance!

Phil




Avatar
Phil
On Sun, 21 Sep 2003 03:47:07 +0200, Adobex wrote:

Ben c'est quoi ton problème en fait? Je suppose que ça ne doit pas faire ce
que tu désires mais personnellement je ne comprends pas quoi...
Explique-nous tout ça en précisant ce à quoi tu t'attends (tout le monde n'a
pas le Linux Magazine du mois de juin 02 ;) )

Adobex



lol.. désolé pour le manque de précision! la page JSP a un lien qui est
censé appeler une servlet. Dans ce cas la servlet affiche les headers de
la requète http. Le problème est que lorsque je passe le curseur de ma
souris sur l'hyper-lien, je vois "http://localhost:8080/linuxmag", et
quand je clique dessus, rien ne passe (le lien pointe en effet vers la
page déjà affichée). Je suppose que mon web.xml contient une erreure...
moi je voudrais afficher le résultat de la servlet!

Voici le code de la servlet... il compile correctement. Merci d'avance!

Phil

package org.linuxmag.web;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;

public class linuxmagServlet extends HttpServlet {

public void doGet(HttpServletRequest request,HttpServletResponse response)
throws IOException, ServletException {
response.setContentType("text/html");
PrintWriter out=response.getWriter();
out.println("<html>");
out.println("<head><title>Test Servlet</title></head>");
out.println("<body bgcolor="#ffffff">");
out.println("<h1>Test Servlet</h1>");
out.println("Headers list:<br>");
out.println("<ul>");

Enumeration headerNames = request.getHeaderNames();
while(headerNames.hasMoreElements()) {
String headerValue = (String)headerNames.nextElement();
out.println("<li><b>"+headerValue+"</b>:");
out.println(request.getHeader(headerValue));
out.println("</li>");
}

out.println("</ul>");
out.println("</body>");
out.println("</html>");
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
doGet(request, response);
};
}

Avatar
Adobex
Je dirai que ça semble correcte donc il faudrait que tu nous dises ce que ça
fait lorsque tu tapes l'url de ta servlet directement sans passer par la
jsp.

Quel est le moteur de servlet que tu utilises? Tomcat? Quelle version?

Tu peux nous mettre également les traces produites au démarrage de Tomcat,
au moins on pourra voir si quelque chose ne va pas dans la config du
web.xml.... enfin à priori. Si c'est Tomcat, c'est le fichier du style
'localhost_log.2003-09-15.txt' contenu dans le répertoire 'logs' qu'il faut
regarder.

Enfin voilà, peut-être que d'autres auront vu le pb...

Adobex

"Phil" a écrit dans le message de
news:
On Sun, 21 Sep 2003 03:47:07 +0200, Adobex wrote:

Ben c'est quoi ton problème en fait? Je suppose que ça ne doit pas faire
ce


que tu désires mais personnellement je ne comprends pas quoi...
Explique-nous tout ça en précisant ce à quoi tu t'attends (tout le monde
n'a


pas le Linux Magazine du mois de juin 02 ;) )

Adobex



lol.. désolé pour le manque de précision! la page JSP a un lien qui est
censé appeler une servlet. Dans ce cas la servlet affiche les headers de
la requète http. Le problème est que lorsque je passe le curseur de ma
souris sur l'hyper-lien, je vois "http://localhost:8080/linuxmag", et
quand je clique dessus, rien ne passe (le lien pointe en effet vers la
page déjà affichée). Je suppose que mon web.xml contient une erreure...
moi je voudrais afficher le résultat de la servlet!

Voici le code de la servlet... il compile correctement. Merci d'avance!

Phil

package org.linuxmag.web;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;

public class linuxmagServlet extends HttpServlet {

public void doGet(HttpServletRequest request,HttpServletResponse
response)

throws IOException, ServletException {
response.setContentType("text/html");
PrintWriter out=response.getWriter();
out.println("<html>");
out.println("<head><title>Test Servlet</title></head>");
out.println("<body bgcolor="#ffffff">");
out.println("<h1>Test Servlet</h1>");
out.println("Headers list:<br>");
out.println("<ul>");

Enumeration headerNames = request.getHeaderNames();
while(headerNames.hasMoreElements()) {
String headerValue = (String)headerNames.nextElement();
out.println("<li><b>"+headerValue+"</b>:");
out.println(request.getHeader(headerValue));
out.println("</li>");
}

out.println("</ul>");
out.println("</body>");
out.println("</html>");
}

public void doPost(HttpServletRequest request, HttpServletResponse
response)

throws IOException, ServletException {
doGet(request, response);
};
}



Avatar
Phil
On Sun, 21 Sep 2003 14:59:01 +0200, Adobex wrote:

Je dirai que ça semble correcte donc il faudrait que tu nous dises ce que ça
fait lorsque tu tapes l'url de ta servlet directement sans passer par la
jsp.


Bingo! En entrant l'URL http://localhost:8080/linuxmag/linuxmag cela
marche ! J'ai donc simplement modifié ma jsp en remplaçant l'hyper-link.

Désolé pour ce problème qui ne réclamait qu'un peu de bon sens pour être
résolu...

Merci pour le coup de main ! Maintenant je peux passer à un tutorial sur
les EJBs.. :)

Phil


Quel est le moteur de servlet que tu utilises? Tomcat? Quelle version?

Tomcat 4.1.27.


Tu peux nous mettre également les traces produites au démarrage de Tomcat,
au moins on pourra voir si quelque chose ne va pas dans la config du
web.xml.... enfin à priori. Si c'est Tomcat, c'est le fichier du style
'localhost_log.2003-09-15.txt' contenu dans le répertoire 'logs' qu'il faut
regarder.


Pas de log depuis que le serveur a été démarré hier....