2016-03-22 21 views
0

Ich möchte eine einfache Webseite mit Servlet erstellen. Dies war eine meiner Prüfungsfragen, ich habe mein Praktikum bei der Prüfung gemacht, aber es hat nicht so funktioniert, wie sie es erwarten, aber jetzt möchte ich meine Frage klären. Meine Frage ist, es gibt eine Webseite und es in 2 Teile teilen. Im unteren Teil sollte ein Textfeld und ein Textbereich zur Eingabe von Kommentaren angezeigt werden. Und es gibt auch einen Submit-Button. Beim Senden von Button-Klicks sollte der eingegebene Kommentar oben auf der gleichen Seite angezeigt werden. Dazu habe ich einen Servlet-Aufruf Welcome.java erstellt und unter Verwendung von iframes in 2 Teile aufgeteilt. Dann habe ich einen Servlet-Aufruf test.java erstellt und ein Textfeld und Textbereich in diesem Servlet erstellt. Erstellen Sie dann einen weiteren Servlet-Aufruf text22.java, um den Kommentar abzufangen und anzuzeigen. Aber es gibt nicht die erwartete Ausgabe.
Ich füge einen Screenshot hinzu, wie diese Seite nun aussieht, ich möchte den Kommentar oben auf der Seite anzeigen. Bitte helfen Sie mir diese problem.I wirklich zu lösen Ihre Hilfe zu schätzen wissen ...Erstellen einer einfachen Webseite mit Servlet

Welcome.java

import java.io.IOException; 
    import java.io.PrintWriter; 
    import javax.servlet.ServletException; 
    import javax.servlet.http.HttpServlet; 
    import javax.servlet.http.HttpServletRequest; 
    import javax.servlet.http.HttpServletResponse; 

    /** 
    * 
    * @author neil 
    */ 

public class Welcome extends HttpServlet { 

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


      out.println("<iframe src='test22' name='if1' width='100%' height='400px'>"); 
      out.println("</iframe>"); 
      out.println("<iframe src='test' name='if1' width='100%' height='200px'>"); 
      out.println("</iframe>"); 


     } finally { 
      out.close(); 
     } 
    } 

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> 

    @Override 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     processRequest(request, response); 
    } 


    @Override 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     processRequest(request, response); 
    } 


    @Override 
    public String getServletInfo() { 
     return "Short description"; 
    }// </editor-fold> 
} 

test.java

import java.io.IOException; 
import java.io.PrintWriter; 
import javax.servlet.RequestDispatcher; 
import javax.servlet.ServletContext; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

/** 
* 
* @author neil 
*/ 
public class test extends HttpServlet { 


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

      out.println("User Name" + "<input type='text' name='username'/>" + "<br>" + "<br>"); 
      out.println("<textarea name='comment' rows='25' cols='20'>" + "Write your comment"); 
      out.println("</textarea>"); 
      out.println("<input type='submit' value='Submit'/>"); 




     } finally { 
      out.close(); 
     } 
    } 

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> 

    @Override 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     processRequest(request, response); 
    } 


    @Override 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     processRequest(request, response); 
    } 

    @Override 
    public String getServletInfo() { 
     return "Short description"; 
    }// </editor-fold> 
} 

test22.java

import java.io.IOException; 
import java.io.PrintWriter; 
import javax.servlet.RequestDispatcher; 
import javax.servlet.ServletContext; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

/** 
* 
* @author neil 
*/ 
public class A extends HttpServlet { 


    protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     response.setContentType("text/html;charset=UTF-8"); 
     PrintWriter out = response.getWriter(); 
     try { 
      ServletContext sc=request.getServletContext(); 
      String com= (String) sc.getAttribute("text"); 

      if(null==com){ 
       com = request.getParameter("comment"); 
      }else{ 
       com=com+"<br>"+request.getParameter("comment"); 
      } 


      out.println(com); 

      sc.setAttribute("comment", com); 

     } finally {    
      out.close(); 
     } 
    } 

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> 

    @Override 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     processRequest(request, response); 
    } 


    @Override 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     processRequest(request, response); 
    } 


    @Override 
    public String getServletInfo() { 
     return "Short description"; 
    }// </editor-fold> 
} 

Image

+0

Wenn du auf submit klickst, wohin die Kontrolle geht, wie läuft es? –

+0

Wenn Sie auf Senden klicken, sollte es oben auf der Seite erscheinen, wo es jetzt als Null angezeigt wird. Übrigens, ich bin neu Servlet und Jsp, Wenn Sie mir helfen, ich danke Ihnen wirklich – neil

Antwort

0

Sie müssen dieses einfache Servlet-Programm nicht komplizieren. Sie müssen einen jsp und servlet haben, um dies zu tun.

Ihre Anforderung ist die gleiche Seite Sie müssen die Daten zuerst einreichen und anzeigen.

Zuerst erstellen Sie einfach jsp Seite mit textbox. Sie sollten JSTL anstelle von scriptlets verwenden, aus Gründen der Einfachheit habe ich Ihnen den Scriptlet-Code gegeben.

Ihre index.jsp sieht wie folgt aus,

<%@ 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>Submit and View Page</title> 
</head> 
<body> 
    <!-- This part will enable only after submit your username --> 
    <% 
     if(null != request.getParameter("username")){ 
     out.println("<fieldset><legend>Entered Name</legend>"); 
     out.println(request.getParameter("username")); 
     out.println("</fieldset>"); 
     } 
    %> 
    <!-- End of view data --> 
    <form action="HelloServlet"> 
     <label>User Name: </label><input type='text' name='username'/></br> 
     <input type='submit' value='Submit'/> 
    </form> 
</body> 
</html> 

erstellen entsprechende Servlet sagen HelloServlet,

package com; 

import java.io.IOException; 

import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

public class HelloServlet extends HttpServlet { 

    private static final long serialVersionUID = 1L; 

    @Override 
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) 
      throws ServletException, IOException { 

     // Receive the username 
     String username = req.getParameter("username"); 

     // Set it into request object 
     req.setAttribute("username", username); 

     // Forward it into same index page 
     req.getRequestDispatcher("index.jsp").forward(req, resp); 
    } 
} 

Descriptor Bereitstellung Konfigurieren 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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> 

    <display-name>Sample_Servlet</display-name> 

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

    <servlet> 
     <servlet-name>HelloServlet</servlet-name> 
     <servlet-class>com.HelloServlet</servlet-class> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>HelloServlet</servlet-name> 
     <url-pattern>/HelloServlet</url-pattern> 
    </servlet-mapping> 

</web-app> 

Achten Sie darauf, Ihre Ordnerstruktur wie folgt aussehen Auch Sie Beginnen Sie mit dem Lernen aus dem Tutorial.

Servlet Sample

+0

Thqnk Sie für Ihre Hilfe, aber Eine Sache, die ich nicht verstehen kann, ist, was ich in meinem index.jsp enthalten habe. – neil

+0

Ihr index.jsp ist der erste Teil meines Codes. –

0

Ajax und Javascript kann der Seiteninhalt ohne Auffrischen die ganze Seite zu aktualisieren, verwendet werden.

Ein Weg, um diese Anwendung zu entwickeln, ist wie folgt:

Es gibt nur eine Web-Seite ist erforderlich, die Codepage in 2 parts.It teilen enthält, sollte ein Textfeld angezeigt werden, einen Textbereich und eine Taste in der zweiten Teil. Und ein div (um Kommentare anzuzeigen) im ersten Teil. Diese Seite sollte auch Code enthalten, der beim Klicken auf die Schaltfläche verarbeitet wird. Auf Knopfdruck sollte ein Ajax-Anruf ausgelöst werden. Dieser Ajax-Aufruf sollte ein Servlet treffen, indem der eingegebene Kommentar übergeben wird.

Das Servlet sollte die Verarbeitung von Kommentaren ausführen und den Kommentar als Antwort zurückgeben. Der zurückgegebene Kommentar kann zum ersten Teil der Seite hinzugefügt werden, indem JavaScript-Code geschrieben wird.

+0

Danke, ich habe diese Idee, aber das Problem ist, ich erlaube nicht, Javascript oder andere zu verwenden, nur Servlet, Jsp – neil

+0

In diesem Fall können Sie eine index.jsp Seite, die ein Formular mit einem Text anzeigen Box, einen Textbereich und einen Absenden-Button im zweiten Teil. Im ersten Teil der Seite können Sie eine Kommentarliste (aus der Sitzung) durchlaufen, die Sie jedes Mal bei der Übergabe des Formulars im Servlet behandeln. – kamal

+0

Ich werde das versuchen, danke ... – neil

Verwandte Themen