style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Servlets con Eclipse

Buenos días,

Estoy empezando con servlets y al querer correr mi primer ejemplo de prueba usando:

import javax.servlets.*;
import javax.servlets.http.*;

Me manda un error de que no encuentra el paquete correspondiente.

Actualmente estoy usando Eclipse y tengo jdk1.6.0_20.

Necesito bajar e instalar Java EE 6 SDK? o eclipse tiene algún plugin que me pueda servir?.

Saludos

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

JEE

Efectivamente necesitas JEE, o usar la edición para JEE de Eclipse (la diferencia con la clásica es que trae una perspectiva para JEE, pero supongo que podrías obtener lo mismo instalando algunos plugins, pero no sé cuáles).

A fin de cuentas lo que necesitas es el servlet.jar de la versión de servlets que quieras usar; si usas maven puedes agregar los servlets a tu proyecto y listo. Pero después de compilar, querrás correr esto; con maven también podrías probar tu servlet usando el plugin de Jetty para maven, o bien si tienes instalado Tomcat o Jetty puedes darlos de alta en Eclipse para correrlos (hay una vista de servidores donde los registras para poder arrancarlos y hacer deploy desde Eclipse, no sé si viene en la clásica o en la edición JEE)

Imagen de francisco.santiagoj

Baje

Baje java_ee_sdk-6u1-jdk-windows-ml y lo instale, veo que instala el servidor de aplicaciones glassfish-3.0.1, uff, ya había oído hablar de servidor de aplicaciones y ahora mismo estoy instruyéndome mas sobre esto, tengo una duda, ahora que instale JEE con GlasFish, GlassFish queda instalado como un servicio?, o para hacer mis pruebas al igual que lo hice en mi computadora con los JDBC necesito instalar un servidor de prueba, yo use WAMP, para crear una DB en MySQL, echar a andar Apache y poder conectarme con la Base de datos y que jalara mi programa.

Ahora no se si es necesario tener lo mismo y necesito correr GlassFish?.

De antemano gracias.

Imagen de ezamudio

Similar

No necesitas tener corriendo Apache, al menos no para desarrollo, porque Glassfish tiene su propio web server. No sé cómo jala en Windows pero normalmente no se instala como servicio, tienes que levantarlo "a mano" y lo puedes hacer desde Eclipse como ya expliqué en el comentario anterior.

Imagen de francisco.santiagoj

Gracias

Voy a intentarlo, espero no tener complicaciones.

Imagen de francisco.santiagoj

Listo

Sin mayor problema ya tengo funcionando el servidor de Glass Fish conectado con Eclipse.

Gracias.

Imagen de benek

Tampoco

Tampoco necesitas las librerías de Java EE en tu proyecto, puedes configurar Eclise (o tu IDE de preferencia) para que tome todo el set de librerías EE de tu servidor de aplicaciones (en tu caso Glassfish). Si las pones en tu proyecto las tendrás duplicadas y no tiene caso ya que cualquier servidor de aplicaciones en donde pongas tu aplicación ya las tendrá.

Saludos.

Imagen de francisco.santiagoj

Es cierto

Volví a crear un Dynamic Web Project utilizando el servidor GlassFish y listo, este tiene todas la librerías de JEE, como comentas ya no fue necesario cargar las librerías.
Voy a seguir practicando.

Imagen de francisco.santiagoj

doGet()

Buenas, buenas,

Pues llegando a casa y seguir estudiando, les comento que no puedo ejecutar mi primer servlet, lo estoy trabajando desde Eclipse y el problema al parecer es que no se donde esta el .class que se debe lanzar mediante un input., les dejo el código, espero me puedan ayudar.

Test.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="..\build\classes\first\SaludoContador" method="get">
<input type="submit" name="Submit" value="Pulse enviar para llamar al servlet que saluda">
</form>
</body>
</html>

Saludo.java

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

public class Saludo extends  HttpServlet {     
       
        public void doGet(HttpServletRequest request,
                        HttpServletResponse response) throws ServletException, IOException {           
                response.setContentType("text/html");
                PrintWriter out;
                out = response.getWriter();
                out.println("<HTML><HEAD>");
                out.println("<TITLE>Prueba con servlets</TITLE></HEAD>");
                Date fecha = new Date();
               
                out.println("<BODY>");
                out.println("Hola, hoy es: " + fecha.toString() + "");
                out.println("</BODY></HTML>");         
        }
}

Imagen de ezamudio

URL

Los URL's siempre deben ser con / no con \ incluso si estás en Windows. Por otra parte, falta revisar tu web.xml donde definiste el servlet, recuerda que debes tener algo similar a esto:

<!-- aqui defines tu servlet, le pones nombre e indicas la clase -->
<servlet>
  <servlet-name>SaludoContador</servlet-name>
  <servlet-class>first.Saludo</servlet-class>
</servlet>

<!-- y mas adelante indicas el URL relativo a tu app para el servlet -->
<servlet-mapping>
  <servlet-name>SaludoContador</servlet-name>
  <url-pattern>saludo</url-pattern>
</servlet-mapping>

Con lo anterior, cambias el URL de la acción de la forma en Test.jsp para que sea "/saludo" y entonces debería funcionar...

Imagen de francisco.santiagoj

Gracias por tu ayuda ezamudio,

Gracias por tu ayuda ezamudio, este es mi web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee <a href="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"" title="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"">http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"</a> id="WebApp_ID" version="2.5">
  <display-name>Servlet</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

Perdón por mi ignorancia, pero tengo la duda, ¿en que parte tengo que definir mi servlet?.

Imagen de francisco.santiagoj

Por fin

Ya pude ejecutar mi primer Servlet, al final todo quedo asi:

Test.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="/Servlet/first" method="get"><input type="submit"
        name="Submit"
        value="Pulse enviar para llamar al servlet que saluda">
</form>
</body>
</html>

Saludo.java

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

public class Saludo extends  HttpServlet {     
       
        public void doGet(HttpServletRequest request,
                        HttpServletResponse response) throws ServletException, IOException {           
                response.setContentType("text/html");
                PrintWriter out;
                out = response.getWriter();            
                out.println("<HTML><HEAD>");
                out.println("<TITLE>Prueba con servlets</TITLE></HEAD>");
                Date fecha = new Date();
               
                out.println("<BODY>");
                out.println("Ahora son: " + fecha.toString() + "");
                out.println("</BODY></HTML>");         
        }
}

web.xlm

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee <a href="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"" title="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"">http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"</a> id="WebApp_ID" version="2.5">
  <display-name>Servlet</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
        <servlet-name>Saludo</servlet-name>
        <servlet-class>first.Saludo</servlet-class>
  </servlet>
  <servlet-mapping>
        <servlet-name>Saludo</servlet-name>
        <url-pattern>/first</url-pattern>
  </servlet-mapping>

</web-app>

Gracias ezamudio por la valiosa ayuda.

Acerca de aprender JSP/Servlets

Hola amigos

Aqui hay un sitio web donde hay un curso gratuito de JSP/Servlets para eclipse muy bueno

Curso de JSP/Servlets jeetrainers.com

Saludos y suerte
Joe

Imagen de Jvan

Servlet 3.0

Actualmente la versión 7 de Tomcat ya soporta la especificación Servlet 3.0 que entre otras cosas permite definir tus Servlets como simples POJO's y unas cuantas anotaciones, es decir, con la incrustación de anotaciones ya no será necesario definir en el web.xml los servlets. Otra cosa que me llamó la atención fue que habrá Servlets asíncronos.

Aquí la especificación.

Una breve introducción por acá.

Imagen de francisco.santiagoj

Gracias

Gracias,

Lo voy a revisar.

Saludos

Imagen de francisco.santiagoj

Carpetas en proyecto con GlassFish

Buenas noches,

Espero me puedan ayudar con mi siguiente duda. En mi proyecto quiero organizar por carpetas por ejemplo los CSS, JS, TLD, etc. bueno pues los he puesto en varias partes, dentro de WebContet, de META-INF y de WEB-INF, pero si pongo por ejemplo:

<link rel="stylesheet" type="text/css" href="CSS/tabs.css"/>

No me toma los estilos, si el archivo css lo dejo dentro de WebContent y lo invoco mediante <link rel="stylesheet" type="text/css" href="tabs.css"/> si funciona, creo y no se si es realmente la forma correcta, que se tiene que configurar algo en el web.xml.

De antemano muchas gracias.

Imagen de bimboso_d

Ummm

Hola, no tendra que ver con la ruta? me imagino que es porque si estas poniendo carpetas tendrias que ir poniendo la ruta de la ubicacion, como todo esta dentro del webcontent pues no hay problema, pero si lo muebes de carpeta tendrais que poner
<link rel="stylesheet" type="text/css" href="NombreCarpeta/CSS/tabs.css"/>
lo has intentado?

Imagen de paranoid_android

para css no se necesita configurar nada en el web.xml

Revisa tus rutas relativas a tu jsp

Imagen de francisco.santiagoj

Al final

Parece que mi eclipse me jugo una mala broma, pues ahorita que lo intente de nuevo ya funciono, teniendolo de esta forma:

y con la siguiente linea: <link rel="stylesheet" type="text/css" href="CSS/tabs.css" />

Voy a probar si con los javascript no tengo problemas.

Gracias.

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">