2016-05-16 9 views
-1
<link rel="stylesheet" href="res/Site.css"/> 



<body style="height: 800px"> 
    <pre> 
    <!-- <h1 class="black"><center>Registration Detail<img src="res/login.png"/></center></h1>--> 

    <h3>Cast Your Vote To The Right Persion</h3>  

    <form width="200" action ="regservlet" method="POST"> 

     <legend><i>Fill Up Your Details</i></legend> 
     Voter Name  :<input placeholder="Enter Name" type="text" name="vname"> 

     Voter ID  :<input placeholder="Enter VoterID" type="text" name="vid"> 

     Email   :<input placeholder="Enter Email" type="text" name="vemail"> 

     Age   :<input placeholder="Enter Age(>18)" type="text" name="vage"> 

     Address  :<input placeholder="Enter Address" type ="text" name="vaddress"> 

     Pin Code  :<input placeholder="Enter PIN" type ="text" name="vpin"> 

     State   :<input placeholder="Enter State"type ="text" name="vstate"> 



    <input type="Submit" class="button Green" value="Submit"/> <input type="Reset" class ="button red" value="Reset"/> 
    </form> 
    <h4>Already Registered <a href="Login.html">Login Here</a></h4> 
    <%-- ${requestScope.msg1} 
    ${requestScope.msg2} 
    ${requestScope.msg3}--%> 
    </pre> 


</body> 

ServletServlets nichts anzeigt einen Fehler weder zeigt

/* 
* To change this license header, choose License Headers in Project Properties. 
* To change this template file, choose Tools | Templates 
* and open the template in the editor. 
*/ 
package web1; 

import java.io.IOException; 
import java.io.PrintWriter; 
import java.sql.ResultSet; 
import javax.servlet.RequestDispatcher; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import jdbc.DAOLayer; 

/** 
* 
* @author 1405075 
*/ 
public class regservlet extends HttpServlet { 

    /** 
    * Processes requests for both HTTP <code>GET</code> and <code>POST</code> 
    * methods. 
    * 
    * @param request servlet request 
    * @param response servlet response 
    * @throws ServletException if a servlet-specific error occurs 
    * @throws IOException if an I/O error occurs 
    */ 
    protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     response.setContentType("text/html;charset=UTF-8"); 
     PrintWriter out = response.getWriter(); 

      String name=request.getParameter("vname"); 
     String id=request.getParameter("vid"); 
     String mail=request.getParameter("vemail"); 
     String age=request.getParameter("vage"); 
     String add=request.getParameter("vaddress"); 
     String pin=request.getParameter("vpin"); 
     String state=request.getParameter("vstate"); 
     String q = "select * from voter where vid ='"+id+"';"; 
     ResultSet rs = DAOLayer.selectData(q); 

     try{ 
     if(rs.next()) 
     { RequestDispatcher rd = request.getRequestDispatcher("Registration.jsp"); 
     rd.include(request,response); 
     out.println("<font color='Red'><h3>Please enter valid voter ID</h3></font><br>"); 
     out.println("<font color='Red'><h3>This Voter ID is already registered with us.</h3></font>"); 
     } 


     else 

     //if(p.equals(cp)) 
      { 
       String query = "insert into voter(vname,vid,vage,vaddress,vpin,vstate,vemail) values('"+name+"','"+id+"','"+age+"','"+add+"','"+pin+"','"+state+"','"+mail+");"; 
       int ur = DAOLayer.updateData(query); 
       if(ur>0){ 
       RequestDispatcher rd = request.getRequestDispatcher("Registration.jsp"); 
        rd.include(request,response); 
        out.print("<h3><font color= 'Green'>Registered Successfully</font></h3>"); 
       } 


      } 
     }catch(Exception e) 
     { 
      out.print(e); 
     } 
    } 

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> 
    /** 
    * Handles the HTTP <code>GET</code> method. 
    * 
    * @param request servlet request 
    * @param response servlet response 
    * @throws ServletException if a servlet-specific error occurs 
    * @throws IOException if an I/O error occurs 
    */ 
    @Override 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     processRequest(request, response); 
    } 

    /** 
    * Handles the HTTP <code>POST</code> method. 
    * 
    * @param request servlet request 
    * @param response servlet response 
    * @throws ServletException if a servlet-specific error occurs 
    * @throws IOException if an I/O error occurs 
    */ 
    @Override 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     processRequest(request, response); 
    } 

    /** 
    * Returns a short description of the servlet. 
    * 
    * @return a String containing servlet description 
    */ 
    @Override 
    public String getServletInfo() { 
     return "Short description"; 
    }// </editor-fold> 

} 

web.xml

<?xml version="1.0" encoding="UTF-8"?> 

http://java.sun.com/xml/ns/javaee/web- app_2_5.xsd "> Anmeldeservlet web1.Loginservlet Registrierungsservlet web1.Registrationservlet

<servlet> 
    <servlet-name>regservlet</servlet-name> 
    <servlet-class>web1.regservlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>Registrationservlet</servlet-name> 
    <url-pattern>/rs</url-pattern> 
</servlet-mapping> 



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


<servlet-mapping> 
    <servlet-name>regservlet</servlet-name> 
    <url-pattern>/regservlet</url-pattern> 
</servlet-mapping> 
<session-config> 
    <session-timeout> 
     30 
    </session-timeout> 
</session-config> 
<welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
</welcome-file-list> 

</web-app> 

enter image description here

Auf meinem Servlet läuft es tut weder zeigt einen Fehler nichts angezeigt werden soll.

+0

Bearbeiten Sie Ihre Frage und erläutern Sie Ihr Problem mit mehr Details wie das, was genau wollen Sie tun und was geschieht. Code allein hilft uns nicht, Ihnen zu helfen. –

+0

indem ich alle Details vom Benutzer nehme, rufe ich das Servlet auf, jetzt durch Servlet möchte ich diese Details in der Datenbank speichern. – Shubh

Antwort

0

Ihre Vorgehensweise ist falsch. Sie übergeben Abfragen als Parameter an DAOLayer. Wenn Sie die Abfrage als String übergeben, werden die entsprechenden Werte von Variablen nicht gesendet. Es ist nur ein String = "select * from voter where vid = '" + id + "'"; Der Wert der Variablen-ID wird hier nicht gesendet. Stattdessen definieren Sie Abfragen innerhalb von Methoden in DAOLayer und erhalten dort Werte von Variablen. Der richtige MVC-Ansatz hierfür ist die Verwendung von Beans. Erstellen Sie eine einfache Registrierung Bean wie folgt aus: -

public class RegistrationBean { 
    private String name; 
    private String id; 
    private String age; 
    private String address; 
    private String pin; 
    private String state; 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public String getId() { 
     return id; 
    } 

    public void setId(String id) { 
     this.id = id; 
    } 

    public String getAge() { 
     return age; 
    } 

    public void setAge(String age) { 
     this.age = age; 
    } 

    public String getAddress() { 
     return address; 
    } 

    public void setAddress(String address) { 
     this.address = address; 
    } 

    public String getPin() { 
     return pin; 
    } 

    public void setPin(String pin) { 
     this.pin = pin; 
    } 

    public String getState() { 
     return state; 
    } 

    public void setState(String state) { 
     this.state = state; 
    } 
} 

Ändern Sie bitte Ihre Servlet-Code, um die Bean-Eigenschaften wie folgt festgelegt: -

RegistrationBean rb=new RegistrationBean(); 
     rb.setName(name); 
     rb.setId(id); 
     rb.setAge(age); 
     rb.setAddress(add); 
     rb.setPin(pin); 
     rb.setState(state); 

für die bestehenden Benutzer Überprüfung, ändern Sie Ihre selectData Methode in DAOLayer zu erhalten nur id und es so nennen: -

ResultSet rs = DAOLayer.selectData(id); 

Verwenden rd.forward(request,response); statt rd.include(request,response);. Nach der Ausführung dieser Anweisung wird die Kontrolle an Registration.jsp und diese Anweisungen übertragen: -

wird nicht ausgeführt. Dies ist ein weiterer Fehler in Ihrem Code. Bei der Einfügeoperation ändern Sie Ihre updateData-Methode, um RegistrationBean zu erhalten. Erhält Wert von Variablen gibt Getter Methoden des Bean verwendet, ist wie folgt: -

public int updateData(RegistrationBean rb){ 
    String name=rb.getName(); 
    String id=rb.getId(); 
    String age=rb.getAge(); 
    String address=rb.getAddress(); 
    String pin=rb.getPin(); 
    String state=rb.getState(); 
     . 
     . 
rest of your code. Execute insert query here. 

    } 

hier um die Steuerung zu Registration.jsp übertragen wird weniger Bedeutung. Erstellen Sie eine HTML-Seite namens Success.html, die die Erfolgsnachricht für die Transaktion anzeigt. Erstellen Sie eine andere Seite mit dem Namen Failure.Html die Fehlermeldung zeigt und nennen Sie es wie folgt aus: -

if(ur>0){ 
       response.sendRedirect("success.html"); 
      }else{ 
       response.sendRedirect("failure.html"); 
      } 

Hoffe, es hilft. Markieren Sie das Problem, indem Sie auf die rechte Markierung oben links in meiner Antwort klicken, wenn dies der Fall ist. Wenn nicht, lass es mich wissen. Glücklich Coding :)