2017-01-05 3 views
0

Ich bin neu bei Web-Services-Jsps und Servlets und ich habe dieses sehr einfache Beispiel nur um zu verstehen, wie die Dinge funktionieren.Übergabe von Parametern zwischen JSP-Seiten und Servlets

Zuerst, ich habe diesen einfachen Web-Service:

package com.sav.calculator; 

    import javax.jws.WebService; 
    import javax.jws.WebMethod; 
    import javax.jws.WebParam; 

    @WebService(serviceName = "CalculatorWS") 
    public class CalculatorWS { 

     @WebMethod(operationName = "add") 
     public int add(@WebParam(name = "i") int i, @WebParam(name = "j") int j) { 
      int k = i + j; 
      return k; 
     } 

    } 

Dann benutze ich diesen Web-Service in meiner Client-Anwendung. Ich versuche, den richtigen Weg zu arbeiten, also sende ich Daten von einem JSP zu Servlet, mache die Berechnungen im Servlet und sende die Daten in einem anderen JSP für die Darstellung .. aber die Frage ist, warum ich es nicht richtig mache?

hier ist das erste jsp (nur ein HTML-Formular):

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
    <!DOCTYPE html> 
    <html> 
     <head> 
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     </head> 
     <body> 

      <form method="POST" action="ClientServlet"> 
       <input type="text" name="j"/> 
       <input type="text" name="i"/> 
       <input type="submit" value="submit"/> 
      </form> 

     </body> 
    </html> 

hier ist das Servlet, wo ich mein Add Webmethod verwenden:

package com.sav.calculator.client; 

import com.sav.calculator.CalculatorWS_Service; 
import java.io.IOException; 
import java.io.PrintWriter; 
import javax.servlet.RequestDispatcher; 
import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import javax.xml.ws.WebServiceRef; 

@WebServlet(name = "ClientServlet", urlPatterns = {"/ClientServlet"}) 
public class ClientServlet extends HttpServlet { 

    @WebServiceRef(wsdlLocation = "WEB-INF/wsdl/localhost_8080/CalculatorWSApplication/CalculatorWS.wsdl") 
    private CalculatorWS_Service service; 

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

    } 

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

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

     int i = (int) request.getAttribute("i"); 
     int j = (int) request.getAttribute("j"); 

     int k = add(i, j); 
     request.setAttribute("k",k); 

     RequestDispatcher dispatcher = this.getServletContext().getRequestDispatcher("newjsp2.jsp"); 
     dispatcher.forward(request, response); 
    } 

    @Override 
    public String getServletInfo() { 
     return "Short description"; 
    } 

    private int add(int i, int j) { 
     com.sav.calculator.CalculatorWS port = service.getCalculatorWSPort(); 
     return port.add(i, j); 
    } 

} 

Und die newjsp2 ist nur eine Hallo Welt Seite , im Versuch, gerade dort zuerst zu bekommen, aber was ich bekommen ist: that.

Antwort

0

nach Web-Service-Server gestartet hat, in Typ-Adresse Web-Browser:

http://localhost:8080/CalculatorWSApplication/CalculatorWS.wsdl 

wenn diese Adresse eine WSDL-Datei (XML-Format) enthält es dann als WSDLLocation verwenden.

Probieren Sie auch ein Werkzeug wie SoapUI, or some other.

0

Von Servlet JSP

Sie Werte in das Antwortobjekt vor der Weiterleitung Anforderung an jsp einstellen könnte. Oder Sie können Ihre Werte in eine Session-Bean schreiben und im jsp darauf zugreifen.

Von JSP

Sie müssen Servlet ein Formular einzureichen und Parameter als Eingabe übergeben. Ein Beispiel ...

<form method="Post" action="path/to/servlet"> 
    <input type="text" name="x" /> 
    <input type="password" name="xx" /> 
    <input type="hidden" name="xxx" value="zzz" /> 
    <input type='submit' /> 
</form> 
Verwandte Themen