2017-05-27 6 views
1

Ich habe Probleme, irgendeine Antwort von einem Servlet zu erhalten, das Daten von einem HTML-Formular aufnehmen soll.Java-Servlet reagiert nicht auf Formularaktion

JSP:

<div class="container bordered subtleShadow fadeBG"> 
<form id="configForm" action="AddSelection" method="post"> 
     <div id="configTabs" role="tabs"> 
       <div class="col-md-11 col-centered text-center bordered subtleShadow"> 
        <ul class="nav nav-pills center-pills tabs_menu"> 
         <li class="nav-item mx-auto tabs_menu-item"><a 
          class="nav-link configMenu subtleShadow" href="#">Type of sanding</a></li> 
         <li class="nav-item mx-auto tabs_menu-item"><a 
          class="nav-link configMenu subtleShadow" href="#">Length</a></li> 
         <li class="nav-item mx-auto tabs_menu-item"><a 
          class="nav-link configMenu subtleShadow" href="#">Height</a></li> 
         <li class="nav-item mx-auto tabs_menu-item"><a 
          class="nav-link configMenu subtleShadow" href="#">Grit</a></li> 
         <li class="nav-item mx-auto tabs_menu-item"><a 
          class="nav-link configMenu subtleShadow" href="#">Cuts</a></li> 
        </ul> 
       </div> 
      <div class="tabs_content"> 
       <div class="tabs_content-item"> 
        <div class="row"> 
         <div class="col-md-6"> 
          <div class="embed-responsive embed-responsive-4by3"> 
           <iframe class="embed-responsive-item ytShadow" 
            src="https://www.youtube.com/embed/4h17T2bsYF4?autoplay=0"></iframe> 
          </div> 
         </div> 
         <div class="col-md-6"> 
          <h1 class="underlined">Type of sanding</h1> 
          <p>DESCRIPTION1</p> 
          <div class="row bordered centered"> 
           <div class="col-md-12 text-center"> 
            <div class="btn-group" data-toggle="buttons"> 
              <label class="btn btn-primary"> 
              <input type="radio" name="type" value="Wood" id="woodInput">Wood</label> 
              <label class="btn btn-primary"> 
              <input type="radio" name="type" value="Sealer" id="sealerInput">Sealer</label> 
            </div> 
           </div> 
          </div> 
         </div> 
        </div> 
       </div> 
       <div class="tabs_content-item"> 
        <div class="row"> 
         <div class="col-md-6"> 
          <div class="embed-responsive embed-responsive-4by3"> 
           <iframe class="embed-responsive-item ytShadow" 
            src="https://www.youtube.com/embed/4h17T2bsYF4?autoplay=0"></iframe> 
          </div> 
         </div> 
         <div class="col-md-6"> 
          <h1 class="underlined">Length</h1> 
          <p>DESCRIPTION2</p> 
          <div class="row bordered centered"> 
           <div class="col-md-6 text-center inputfield"> 
            <label id="clengthLabel" for="configbuilderLengthField" class="col-xs-4">Length:</label> 
             <div class="form-group">           
              <input id="configbuilderLengthField" type="number" value="100" min="60" max="1600" name="length" class="form-control stdMargin boxShadow blueBorder"> 
             </div> 
             <p class="verticalAlignTxt">mm.</p> 
           </div> 
          </div> 
         </div> 
        </div> 
       </div> 
       <div class="tabs_content-item"> 
        <div class="row"> 
         <div class="col-md-6"> 
          <div class="embed-responsive embed-responsive-4by3"> 
           <iframe class="embed-responsive-item boxShadow" 
            src="https://www.youtube.com/embed/4h17T2bsYF4?autoplay=0"></iframe> 
          </div> 
         </div> 
         <div class="col-md-6"> 
          <h1 class="underlined">Height</h1> 
          <p>DESCRIPTION3</p> 
          <div class="row bordered centered"> 
           <div class="col-md-12 text-center"> 
            <div id="heightConfig" class="btn-group" data-toggle="buttons"> 
              <label class="btn btn-primary"> 
              <input type="radio" name="height" value="46" id="mm46">46 mm.</label> 
              <label class="btn btn-primary"> 
              <input type="radio" name="height" value="61" id="mm61">61 mm.</label> 
            </div> 
           </div> 
          </div> 
         </div> 
        </div> 
       </div> 
       <div class="tabs_content-item"> 
        <div class="row"> 
         <div class="col-md-6"> 
          <div class="embed-responsive embed-responsive-4by3"> 
           <iframe class="embed-responsive-item boxShadow" 
            src="https://www.youtube.com/embed/4h17T2bsYF4?autoplay=0"></iframe> 
          </div> 
         </div> 
         <div class="col-md-6"> 
          <h1 class="underlined">Grit</h1> 
          <p>DESCRIPTION4</p> 
          <div class="row bordered centered"> 
           <div class="col-md-6 text-center inputfield"> 
             <div id="gritForm" class="form-group"> 
              <p class="pmb stdMargin"> 
               <span class="alert-link">OBS: </span><span class="bsBlue">Please 
                select type of sanding first!</span> 
              </p> 
             </div> 
           </div> 
          </div> 
         </div> 
        </div> 
       </div> 
       <div class="tabs_content-item"> 
        <div class="row"> 
         <div class="col-md-6"> 
          <div class="embed-responsive embed-responsive-4by3"> 
           <iframe class="embed-responsive-item boxShadow" 
            src="https://www.youtube.com/embed/4h17T2bsYF4?autoplay=0"></iframe> 
          </div> 
         </div> 
         <div class="col-md-6"> 
          <h1 class="underlined">Cuts</h1> 
          <p>DESCRIPTION5</p> 
          <div class="row bordered centered"> 
           <div class="col-md-6 text-center inputfield"> 
             <div id="cutsForm" class="form-group stdMargin"> 
              <input class="magic-checkbox" type="checkbox" name="cuts" 
               id="cut3" value="option"> <label 
               class="text radiolabel" for="cut3">3 mm.</label> <input 
               class="magic-checkbox" type="checkbox" name="cuts" 
               id="cut5" value="option"> <label 
               class="text radiolabel" for="cut5">5 mm.</label> <input 
               class="magic-checkbox" type="checkbox" name="cuts" 
               id="cut10" value="option"> <label 
               class="text radiolabel" for="cut10">10 mm.</label> <input class="magic-checkbox" type="checkbox" name="cuts" id="cut20" value="option"> <label class="text radiolabel" for="cut20">20 mm.</label> 
             </div> 
           </div> 
          </div> 
          <div id="addSelectionDiv"> 
          <p class="alert-link" style="margin-top: -8;">OBS: </p> 
          <p id="errorDiv" style="margin-top: -20;"> 
          <span><i class='fa fa-asterisk' aria-hidden='true'></i></span><span class='bsBlue'>Please set a type of sanding.</span> 
          <span><i class='fa fa-asterisk' aria-hidden='true'></i></span><span class='bsBlue'>Please set a length.</span> 
          <span><i class='fa fa-asterisk' aria-hidden='true'></i></span><span class='bsBlue'>Please set a height.</span> 
          <span><i class='fa fa-asterisk' aria-hidden='true'></i></span><span class='bsBlue'>Please pick a grit(s).</span> 
          <span><i class='fa fa-asterisk' aria-hidden='true'></i></span><span class='bsBlue'>Please pick a cut(s).</span>        
          </p> 
          </div> 
          <input id="addSelection" class="btn btn-outline-primary boxShadow w-75 centered" type="submit" value="Add Selection"> 
         </div> 
         </div> 
        </div> 
      </div> 
      <div class="row buttonRow"> 
       <div class="col-md-6"> 
        <p class="currentConP"> 
         <span id="curConLabel" class="alert-link">Current 
          configuration: </span></p> <p class="currentConP2"> <span id="tosFiller">Type:</span><span class="bsBlue" id="tosSpan"> - </span> <span id="lengthSpan"></span> 
         <span id="heightSpan"></span> 
         <span id="gritsLabel"> - Grits: </span> <span id="gritsSpan" class="bsBlue"></span> 
         <span id="cutsLabel"> - Cuts: </span> <span id="cutsSpan" class="bsBlue"></span> 
        </p> 
       </div> 
       <div class="col-md-6"> 
        <div class="btn-group configButtonGroup inline"> 
         <a class="btn btn-default configButton tabs-controls_prev" 
          id="backBtn" href="#"><i class="fa fa-chevron-left fa-fw"></i>Previous</a> 
         <a class="btn btn-success configButton tabs-controls_next" 
          id="nextBtn" href="#">Next<i class="fa fa-chevron-right fa-fw"></i></a> 
        </div> 
       </div> 
      </div> 
     </div> 
</form> 

web.xml:

<servlet> 
    <servlet-name>AddSelection</servlet-name> 
    <servlet-class>webservices.AddSelection</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>AddSelection</servlet-name> 
    <url-pattern>/AddSelection</url-pattern> 
</servlet-mapping> 

AddSelection.java (liegt in src/webservices/AddSelection.java):

public class AddSelection extends HttpServlet { 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
      PrintWriter out = response.getWriter(); 
      out.println("<p>AddSelection.Java has run.</p>"); 
      ArrayList<Selection> list = new ArrayList<Selection>(); 
      String type = request.getParameter("type"); 
      int length = Integer.parseInt(request.getParameter("length")); 
      int height = Integer.parseInt(request.getParameter("height")); 
      String grits[] = request.getParameterValues("grits"); 
      String cuts[] = request.getParameterValues("cuts"); 
      for (int i = 0; i < grits.length; i++) { 
       for (int k = 0; k < cuts.length; k++) { 
        Selection curr = new Selection(type, length, height, Integer.parseInt(grits[i]), Integer.parseInt(cuts[k])); 
        list.add(curr); 
       } 
      } 
      for (Selection selection : list){ 
       out.println("<p>Type: " +selection.getType() +"</p>"); 
      }  
     } 
} 

Hoffe jemand kann darauf hinweisen, wo ich wir sind nt falsch :)

+1

erreicht Ihre JSP-Antwort Ihr Servlet? –

+0

Angenommen, Ihre JSP ist korrekt, können Sie überprüfen 1. Serverprotokoll 2. Kommentieren Sie den gesamten Code im Servlet außer 'out.println ("

AddSelection.Java wurde ausgeführt.

"); '3. debuggen Sie den Servlet-Code. – ujulu

+0

Ich habe sowohl System.out.println als auch die out.println benutzt, aber nichts scheint zu passieren. Ich habe keine Ahnung, warum scheinbar nichts passiert. Ich habe auch versucht, die Annotation @webservlet, aber das gleiche zu verwenden .. Nichts passiert, wenn ich auf den Absenden-Button im Formular klicke. –

Antwort

0

Reinigen Sie das Projekt und führen Sie es erneut Oder Entfernen Sie vom Server und wieder zum Server hinzufügen und führen Sie es aus.