problem with MVC pattern
hi everybody
i was trying this Model View Controller pattern but got stuck.
the servlet(EmailServlet_2) that is the controller looks like this:
_________________________________________________________________
package servpack;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import business.*;
import data.*;
public class EmailServlet_2 extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse
response)
throws ServletException, IOException{
String firstName=request.getParameter("firstName");
String lastName=request.getParameter("lastName");
String eID=request.getParameter("eID");
String[] music=request.getParameterValues("music");
//page forward control
if((firstName.length()==0)||(lastName.length()==0)||
(eID.length()==0)){
RequestDispatcher
dispatcher=getServletContext().getRequestDispatcher("/
get_missing_fields.jsp");
dispatcher.forward(request,response);
}
else if(music[0].length()==0){
RequestDispatcher
dispatcher=getServletContext().getRequestDispatcher("/
select_an_option.jsp");
dispatcher.forward(request,response);
}
User user=new User(firstName, lastName, eID);
UserIO.addRecord(user,"C:/Program Files/Apache Software
Foundation/Tomcat 6.0/webapps/m_egs/WEB-INF/etc/UserEmail.txt");
RequestDispatcher
dispatcher=getServletContext().getRequestDispatcher("/
show_email_entry_2.jsp");
dispatcher.forward(request,response);
}
public void doPost(HttpServletRequest request,HttpServletResponse
response)
throws ServletException, IOException{
doGet(request,response);
}
}
___________________________________________________________________
the 'music' element is a list box.
when i fill all fields i.e. firstName, lastName and eID and when i
select
at least one option in 'music' list box the 'show_email_entry_2.jsp'
is called
(as it should be) and application works correctly.
but when i leave any of the 3 fields (firstName, lastName and eID)
empty,
rather than showing 'get_missing_fields.jsp' this shows up in browser:
_________________________________________________________________________________
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented
it from fulfilling this request.
exception
java.lang.IllegalStateException: Cannot forward after response has
been committed
servpack.EmailServlet_2_ex6.doGet(EmailServlet_2_ex6.java:33)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
note The full stack trace of the root cause is available in the Apache
Tomcat/6.0.13 logs.
Apache Tomcat/6.0.13
_________________________________________________________________________________
also when all three fields (firstName, lastName and eID) are filled
but
no option in 'music' list box is selected then server returns this:
_________________________________________________________________________
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented
it from fulfilling this request.
exception
java.lang.NullPointerException
servpack.EmailServlet_2_ex6.doGet(EmailServlet_2_ex6.java:24)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
note The full stack trace of the root cause is available in the Apache
Tomcat/6.0.13 logs.
Apache Tomcat/6.0.1
________________________________________________________________________
please tell me where i m wrong