2017-09-11 4 views
0

Je souhaite afficher mes informations des servlets à la page JSP.Affichage de données Servlet to JSP

J'ai essayé beaucoup de choses possibles, mais il vient comme nul.

J'ai donc écrit un programme qui n'a qu'un seul paramètre à afficher et il est également nul.

JSP Page:

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>JSP Page</title> 
    </head> 
    <body> 
     <form action="ci1" method="get"> 
      User Name : <% String name1 = request.getParameter("name"); 
      out.print(name1); %> 

     </form> 
</body> 
</html> 

Web.xml: -

<web-app> 
    <servlet> 
     <servlet-name>ci</servlet-name> 
     <servlet-class>control_it</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>ci</servlet-name> 
     <url-pattern>/ci1</url-pattern> 
    </servlet-mapping> 
</web-app> 

Servlets: -

public class control_it { 
    protected void doGet(HttpServletRequest request, 
      HttpServletResponse response) 
        throws IOException, ServletException { 
     response.setContentType("text/html;charset=UTF-8"); 
     PrintWriter out = response.getWriter(); 

     String name = "Display the name"; 
     request.setAttribute("name", name); 
     request.getRequestDispatcher("try_it.jsp").forward(request, response); 
    } 
} 
+0

Servlet doit être une sous-classe de 'HttpSevlet'. Veuillez utiliser les conventions de nommage appropriées pour nommer votre classe et les autres membres. – adatapost

+0

Créer RequestDispatcher rd = request.getRequestDispatcher ("ur html"); –

Répondre

0

Dans votre code Servlet vous définissez un attribute, mais dans votre page jsp vous essayez de récupérer un parameter. Les paramètres sont envoyés au serveur du côté client, mais les attributs sont quelque chose complètement côté serveur. Essayez de changer User Name : <% String name1 = request.getParameter("name");out.print(name1); %> avec ceci: User Name : <%=request.getAttribute("name")%>

mise à jour: servlet méthode doGet:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { 
    String name = "essy"; 
    request.setAttribute("name", name); 
    request.getRequestDispatcher("index.jsp").forward(request, response); 
} 

web.xml:

<servlet> 
    <servlet-name>testservlet</servlet-name> 
    <servlet-class>TestServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>testservlet</servlet-name> 
    <url-pattern>/testservlet</url-pattern> 
</servlet-mapping> 

page jsp:

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<html> 
<body> 
<h1>test</h1> 
<h2><%=request.getAttribute("name")%></h2> 
</body> 
</html> 

Ce code et cette configuration fonctionnent comme un charme. Faites un essai. J'espère que ça aide

+0

Pas le même qui arrive: NULL –

+0

vérifier la mise à jour – ali4j

0

Votre logique est en arrière. Vous devez d'abord utiliser la servlet pour transmettre la valeur à votre JSP. En regardant votre code, j'ai l'impression que vous semblez penser que cela fonctionne dans l'autre sens. Sans exécuter la méthode GET à partir de votre servlet, vous ne pourrez pas accéder à votre attribut "name".

En outre, "scriptlets" (ces choses: <%>%) ont été découragés contre depuis 2010.

Essayez ce code à la place:

Votre servlet (control_it):

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

public control_it() { 
    super(); 
} 

    protected void doGet(HttpServletRequest request, 
      HttpServletResponse response) 
        throws IOException, ServletException { 

     String name = "Display the name"; 
     request.setAttribute("name",name); 

     RequestDispatcher rd=request.getRequestDispatcher("try_it.jsp"); 
     rd.forward(request,response);  
    } 
} 

Votre JSP (try_it):

<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>JSP Page</title> 
    </head> 
    <body> 
     <form action="ci1" method="get"> 
      User Name : ${name} 
<input type="submit" value="GetFromServlet"/> 
     </form> 
</body> 
</html> 

Maintenant, vous pouvez obtenir votre valeur 2 façons.

  • En cliquant sur le bouton "GetFromServlet" dans votre formulaire sur votre JSP.

  • Ou, en entrant l'URL/ci1 dans votre navigateur de recherche.(Avec votre
    trucs localdomain premier bien sûr) [NOTE: cela ne fonctionne avec doGet]