2016-05-16 1 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> 

сервлетServlet ничего не показывая ни показывать какую-либо ошибку

/* 
* 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 "> Loginservlet web1.Loginservlet Registrationservlet 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

На мой сервлет работает оно не показывать ничего ни показывая какую-то ошибку.

+0

Измените свой вопрос и объясните свою проблему более подробно, как то, что именно вы хотите сделать и что происходит. Только код не поможет нам помочь вам. –

+0

, взяв все данные от пользователя, я вызываю сервлет, теперь через сервлет я хочу сохранить эти данные в базе данных. – Shubh

ответ

0

Ваш подход неправильный. Вы передаете запросы в качестве параметров для DAOLayer. Когда вы передаете запрос как String, соответствующие значения переменных не отправляются. Это просто String = "select * from voter, где vid = '" + id + "'"; . Значение идентификатора varible здесь не отправляется. Вместо этого он определяет запросы в методах в DAOLayer и получает там значения переменных. Правильный подход MVC для этого - использование Beans. Создание простой регистрации Bean, как это: -

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; 
    } 
} 

Измените код сервлета, чтобы установить свойство компонента, как это: -

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

Для проверки существующего пользователя, изменить ваш метод selectData в DAOLayer получить только идентификатор и назвать это так: -

ResultSet rs = DAOLayer.selectData(id); 

Использование rd.forward(request,response); вместо rd.include(request,response);. После выполнения этого заявления контроль будет передан в Registration.jsp и эти заявления: -

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>"); 

не будет выполнен. Это еще одна ошибка в коде. Для операции вставки измените свой метод updateData, чтобы получить RegistrationBean. Получение значений переменных есть с использованием методов получения из бобов, которые, как это: -

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. 

    } 

Здесь передающее управление на Registration.jsp это означает меньше. Создайте HTML-страницу с именем Success.html, которая показывает успешное сообщение для транзакции. Создайте еще одну страницы с именем Failure.Html, который показывает сообщение об ошибке, и называют это следующим образом: -

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

Надеется, что это поможет. Отметьте проблему, нажав правую метку в левой верхней части моего ответа, если это произойдет. Если нет, дайте мне знать. Happy Coding :)

Смежные вопросы