how to pass variable from public void doGet to public void doPost?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • xirowei
    New Member
    • Jun 2007
    • 17

    how to pass variable from public void doGet to public void doPost?

    i'm newbie in java servlet, how to let public void doPost can access to public void doGet, stringLength variable?
    below is my code:

    Code:
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;
    
    public class LabWork3_Q1 extends HttpServlet
    {	
    	public void doGet(HttpServletRequest request, HttpServletResponse response) 
    		throws ServletException, IOException
    		{
    			response.setContentType("text/html");
    			PrintWriter out = response.getWriter();
    			[B]int stringLength = 0; <= this the variable need access by public void doPost method[/B]
    			String word = request.getParameter("word");
    			
    			if(word != null)
    			{
    				stringLength += word.length();
    			}
    			
    			out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
                                            "Transitional//EN\">");
                out.println("<HTML><HEAD><TITLE>Lab Work 3 - Q1</TITLE></HEAD><BODY>");
                out.println("Enter a word here:<input type=\"text\" name=\"word\" size=\"10\">");
                out.println("<form method=\"POST\" action=" +
                    				"http://localhost:8080/LabWork3_Q1/LabWork3_Q1>");
                out.println("<input type=\"submit\" value=\"Submit\">");
                out.println("<input type=\"reset\" value=\"Reset\">");
                out.println("</FORM></BODY></HTML>");
                out.close();
      		}
      		
      		public void doPost (HttpServletRequest request, HttpServletResponse response)
      			throws ServletException, IOException
      			{
      				response.setContentType("text/html");
      				PrintWriter out = response.getWriter();
      				
      				out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
                                            "Transitional//EN\">");
                	out.println("<HTML><HEAD><TITLE>Lab Work 3 - Q1</TITLE></HEAD><BODY>");
                	[B]out.println("Previous enter word lenght is:" + stringLength); <= This variable need access from public void doGet method[/B]
                	out.println("<br>Enter a word here:<input type=\"text\" name=\"word\" size=\"10\"><br>");
                	out.println("<form method=\"POST\" action=" +
                    				"http://localhost:8080/LabWork3_Q1/LabWork3_Q1>");
                	out.println("<input type=\"submit\" value=\"Submit\">");
                	out.println("<input type=\"reset\" value=\"Reset\">");
                	out.println("</FORM></BODY></HTML>");
                	out.close();
      			}
    }
  • xirowei
    New Member
    • Jun 2007
    • 17

    #2
    I had make some modify but now encounter new problem in count length function.
    After i enter a word and click on Submit button, Tomcat show line 34 error, may i know how to solve this problem?

    Code:
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;
    
    public class LabWork3_Q1 extends HttpServlet
    {		
    	public void doGet(HttpServletRequest request, HttpServletResponse response) 
    		throws ServletException, IOException
    		{
    			response.setContentType("text/html");
    			PrintWriter out = response.getWriter();
    					
    			out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
                                            "Transitional//EN\">");
                out.println("<HTML><HEAD><TITLE>Lab Work 3 - Q1</TITLE></HEAD><BODY>");
                out.println("Enter a word here:<input type=\"text\" name=\"word\" size=\"10\">");
                out.println("<form method=\"POST\" action=" +
                    				"http://localhost:8080/LabWork3_Q1/LabWork3_Q1>");
               	out.println("<input type=\"submit\" value=\"Submit\">");
               	out.println("<input type=\"reset\" value=\"Reset\">");
               	out.println("</FORM></BODY></HTML>");
               	out.close();	
    		}
    			  		
      		public void doPost (HttpServletRequest request, HttpServletResponse response)
      			throws ServletException, IOException
      			{
      				response.setContentType("text/html");
      				PrintWriter out = response.getWriter();
      				
      				String word = request.getParameter("word");
      				int stringLength = 0;
      				
      				[B]if(word.length() != 0)[/B]
    				{
    					stringLength += word.length();
    					out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
                                            "Transitional//EN\">");
                		out.println("<HTML><HEAD><TITLE>Lab Work 3 - Q1</TITLE></HEAD><BODY>");
                		out.println("Previous enter word lenght is:" + stringLength);
                		out.println("<br>Enter a word here:<input type=\"text\" name=\"word\" size=\"10\"><br>");
                		out.println("<form method=\"POST\" action=" +
                    				"http://localhost:8080/LabWork3_Q1/LabWork3_Q1>");
                		out.println("<input type=\"submit\" value=\"Submit\">");
                		out.println("<input type=\"reset\" value=\"Reset\">");
                		out.println("</FORM></BODY></HTML>");
                		out.close();
    				}
    				
    				else
    				{
    					out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
                                            "Transitional//EN\">");
                		out.println("<HTML><HEAD><TITLE>Lab Work 3 - Q1</TITLE></HEAD><BODY>");
                		out.println("Please enter a word, Blank not allow");
                		out.println("<br>Enter a word here:<input type=\"text\" name=\"word\" size=\"10\"><br>");
                		out.println("<form method=\"POST\" action=" +
                    				"http://localhost:8080/LabWork3_Q1/LabWork3_Q1>");
                		out.println("<input type=\"submit\" value=\"Submit\">");
                		out.println("<input type=\"reset\" value=\"Reset\">");
                		out.println("</FORM></BODY></HTML>");
                		out.close();
    				}
    								
      			}
    }
    Last edited by xirowei; Oct 1 '07, 05:45 PM. Reason: incomplete explaination on question

    Comment

    • xirowei
      New Member
      • Jun 2007
      • 17

      #3
      I had been working on this question and here is my latest version (still contain problem)
      My problem is WHY the doPost method UNABLE to receive parameter of textfield name "word" from doGet method?

      Code:
      import javax.servlet.*;
      import javax.servlet.http.*;
      import java.io.*;
      
      public class LabWork3_Q1 extends HttpServlet
      {		
      	public void doGet(HttpServletRequest request, HttpServletResponse response) 
      		throws ServletException, IOException
      		{
      			response.setContentType("text/html");
      			PrintWriter out = response.getWriter();
      			
      			out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
                                              "Transitional//EN\">");
                  out.println("<HTML><HEAD><TITLE>Lab Work 3 - Q1</TITLE></HEAD><BODY>");
                  out.println("Enter a word here:<input type=\"text\" name=\"word\" size=\"10\">");
                  out.println("<form method=\"POST\" action=" +
                      				"http://localhost:8080/LabWork3_Q1/LabWork3_Q1>");
                 	out.println("<input type=\"submit\" value=\"Submit\">");
                 	out.println("<input type=\"reset\" value=\"Clear\">");
                 	out.println("</FORM></BODY></HTML>");
                 	out.close();	
      		}
      			  		
        		public void doPost(HttpServletRequest request, HttpServletResponse response)
        			throws ServletException, IOException
        			{
        				response.setContentType("text/html");
        				PrintWriter out = response.getWriter();
        				
        				[B]String enter = request.getParameter("word");<= this variable unable to receive the parameter after click on Submit button.[/B] 
        				
        				try 
        				{
      					if(enter.length() == 0)
      					{
      						out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
                                              "Transitional//EN\">");
                  			out.println("<HTML><HEAD><TITLE>Lab Work 3 - Q1</TITLE></HEAD><BODY>");
                  			out.println("You must enter a word!<br>");
                  			out.println("Enter a word here:<input type=\"text\" name=\"word\" size=\"10\">");
                 		 		out.println("<form method=\"POST\" action=" +
                      				"http://localhost:8080/LabWork3_Q1/LabWork3_Q1>");
                 				out.println("<input type=\"submit\" value=\"Submit\">");
                 				out.println("<input type=\"reset\" value=\"Clear\">");
                 				out.println("</FORM></BODY></HTML>");
                 				out.close();	
      					}
      					else
      					{
                  			String previous = enter;
      						out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
                                              "Transitional//EN\">");
                  			out.println("<HTML><HEAD><TITLE>Lab Work 3 - Q1</TITLE></HEAD><BODY>");
                  			out.println("Previous enter word is:" + previous);
                  			out.println("<br>Enter a word here:<input type=\"text\" name=\"word\" size=\"10\"><br>");
                  			out.println("<form method=\"POST\" action=" +
                      				"http://localhost:8080/LabWork3_Q1/LabWork3_Q1>");
                  			out.println("<input type=\"submit\" value=\"Submit\">");
                  			out.println("<input type=\"reset\" value=\"Reset\">");
                  			out.println("</FORM></BODY></HTML>");
                  			out.close();
      					}
      				}
      				catch(Exception ex)
      				{
      					out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
                                              "Transitional//EN\">");
                  		out.println("<HTML><HEAD><TITLE>Lab Work 3 - Q1</TITLE></HEAD><BODY>");
                  		out.println("Error:" + ex.getMessage());
                  		out.println("</FORM></BODY></HTML>");
                  		out.close();
      				}			
        			}
      }

      Comment

      • r035198x
        MVP
        • Sep 2006
        • 13225

        #4
        All this does not make any sense.
        You should write your code in such a way that either the doGet or the doPost method gets called (depending on the JSP's submit method) not both.

        Comment

        • JosAH
          Recognized Expert MVP
          • Mar 2007
          • 11453

          #5
          Originally posted by r035198x
          All this does not make any sense.
          You should write your code in such a way that either the doGet or the doPost method gets called (depending on the JSP's submit method) not both.
          And even then you could do this:

          [code=java]
          public void doGet( ... ) { ... }
          public void doPost( ... ) { doGet( ... ); }
          [/code]

          or this:

          [code=java]
          public void doPost( ... ) { ... }
          public void doGet( ... ) { doPost( ... ); }
          [/code]

          kind regards,

          Jos

          Comment

          • xirowei
            New Member
            • Jun 2007
            • 17

            #6
            I finally figure out the correct way to do this question. Below is the working code.

            Code:
            import javax.servlet.*;
            import javax.servlet.http.*;
            import java.io.*;
            
            public class LabWork3_Q1 extends HttpServlet
            {		
            	public void doGet(HttpServletRequest request, HttpServletResponse response) 
            		throws ServletException, IOException
            		{
            			response.setContentType("text/html");
            			PrintWriter out = response.getWriter();
            			
            			out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
                                                    "Transitional//EN\">");
                        out.println("<HTML><HEAD><TITLE>Lab Work 3 - Q1</TITLE></HEAD><BODY>");
                        out.println("<form method=\"POST\" action=" +
                            				"http://localhost:8080/LabWork3_Q1/LabWork3_Q1>");
                        out.println("Enter a word here:<input type=\"text\" name=\"word\" size=\"10\">");
                       	out.println("<input type=\"submit\" value=\"Submit\">");
                       	out.println("<input type=\"reset\" value=\"Clear\">");
                       	out.println("</FORM></BODY></HTML>");
                       	out.close();	
            		}
            			  		
              		public void doPost(HttpServletRequest request, HttpServletResponse response)
              			throws ServletException, IOException
              			{
              				response.setContentType("text/html");
              				PrintWriter out = response.getWriter();
              				
              				String enter = request.getParameter("word");
              				int enterLength = 0;
              				
              				try 
              				{
            					if(enter.length() == 0)
            					{
            						out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
                                                    "Transitional//EN\">");
                        			out.println("<HTML><HEAD><TITLE>Lab Work 3 - Q1</TITLE></HEAD><BODY>");
                        			out.println("You must enter a word!<br>");
                       		 		out.println("<form method=\"POST\" action=" +
                            				"http://localhost:8080/LabWork3_Q1/LabWork3_Q1>");
                            		out.println("Enter a word here:<input type=\"text\" name=\"word\" size=\"10\">");
                       				out.println("<input type=\"submit\" value=\"Submit\">");
                       				out.println("<input type=\"reset\" value=\"Clear\">");
                       				out.println("</FORM></BODY></HTML>");
                       				out.close();	
            					}
            					else
            					{
                        			enterLength += enter.length();
            						out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
                                                    "Transitional//EN\">");
                        			out.println("<HTML><HEAD><TITLE>Lab Work 3 - Q1</TITLE></HEAD><BODY>");
                        			out.println("Previous enter word length is:" + enterLength);
                        			out.println("<form method=\"POST\" action=" +
                            				"http://localhost:8080/LabWork3_Q1/LabWork3_Q1>");
                            		out.println("<br>Enter a word here:<input type=\"text\" name=\"word\" size=\"10\"><br>");
                        			out.println("<input type=\"submit\" value=\"Submit\">");
                        			out.println("<input type=\"reset\" value=\"Reset\">");
                        			out.println("</FORM></BODY></HTML>");
                        			out.close();
            					}
            				}
            				catch(Exception ex)
            				{
            					out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
                                                    "Transitional//EN\">");
                        		out.println("<HTML><HEAD><TITLE>Lab Work 3 - Q1</TITLE></HEAD><BODY>");
                        		out.println("Error:" + ex.getMessage());
                        		out.println("</FORM></BODY></HTML>");
                        		out.close();
            				}			
              			}
            }

            Comment

            Working...