title: Passing integer variable from jsp to servlet
body: <p>I have a jsp page where there are two variables which are flag variables....I want to pass these variables to a servlet. How should I pass these variables to a servlet?</p>
  
  <p>This is my jsp page.</p>
  
  <pre><code>&lt;html&gt;
  &lt;head&gt;
  &lt;title&gt;Student Registration Form&lt;/title&gt;
  &lt;style type="text/css"&gt;
  h3{font-family: Calibri; font-size: 22pt; font-style: normal; font-weight: bold; color:SlateBlue;
  text-align: center; text-decoration: underline }
  table{font-family: Calibri; color:white; font-size: 11pt; font-style: normal;
  text-align:; background-color: SlateBlue; border-collapse: collapse; border: 2px solid navy}
  table.inner{border: 0px}
  &lt;/style&gt;
  &lt;/head&gt;
  
  &lt;body&gt;
  
  &lt;h3&gt;Create Category&lt;/h3&gt;
  &lt;form action="insert_category" method="POST"&gt;
  
  &lt;table align="center" cellpadding = "10"&gt;
  
  &lt;tr&gt;
  &lt;td&gt;Category Name&lt;/td&gt;
  &lt;td&gt;&lt;input type="text" name="category_name" maxlength="30"/&gt;
  (max 30 characters a-z and A-Z)
  &lt;/td&gt;
  &lt;/tr&gt;
  
  
      &lt;%
  int flag=1;
  int operation=1;
  request.setAttribute("flag", String.valueOf(flag));
  request.setAttribute("operation", String.valueOf(operation));
  %&gt;
  
  &lt;tr&gt;
  &lt;td&gt;Category Code&lt;/td&gt;
  &lt;td&gt;&lt;input type="text" name="category_code" maxlength="30"/&gt;
  (max 30 characters a-z and A-Z)
  &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
  &lt;td colspan="2" align="center"&gt;
  &lt;input type="submit" value="Submit"&gt;
  &lt;input type="reset" value="Reset"&gt;
  &lt;/td&gt;
  &lt;/tr&gt;
  &lt;/table&gt;
  
  &lt;/form&gt;
  
  &lt;/body&gt;
  &lt;/html&gt;
  </code></pre>
  
  <p>Servlet</p>
  
  <pre><code>package com.kunal.servlet;
  
  import java.io.IOException;
  import java.sql.*;
  
  import javax.servlet.RequestDispatcher;
  import javax.servlet.ServletException;
  import javax.servlet.annotation.WebServlet;
  import javax.servlet.http.HttpServlet;
  import javax.servlet.http.HttpServletRequest;
  import javax.servlet.http.HttpServletResponse;
  
  /**
   * Servlet implementation class CreateCategory
   */
  @WebServlet("/CreateCategory")
  public class InsertCategory extends HttpServlet {
      private static final long serialVersionUID = 1L;
  
      /**
       * @see HttpServlet#HttpServlet()
       */
      public InsertCategory() {
          super();
          // TODO Auto-generated constructor stub
      }
  
      /**
       * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
       */
      protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
          // TODO Auto-generated method stub
      }
  
      /**
       * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
       */
      protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
          // TODO Auto-generated method stub
          String category__name=request.getParameter("category_name");
          String category_code=request.getParameter("category_code");
          int flag=(int)request.getAttribute("flag");
          int operation=(int)request.getAttribute("operation");
          if(flag==1 &amp;&amp; operation==1)
          {
          String connectionURL = "jdbc:mysql://localhost:3306/agro";
  
          Connection connection = null;
          long catcode=Integer.parseInt(category_code);
          try {
              // Load the database driver
              Class.forName("com.mysql.jdbc.Driver");
              // Get a Connection to the database
              connection = DriverManager.getConnection(connectionURL, "root", "");
              //Add the data into the database
  
              //String sql = "insert into sample values(?,?)";
  
              PreparedStatement pst = connection.prepareStatement("INSERT into tbl_category VALUES(?,?,?)");
  
              pst.setString(1,null);
              pst.setString(2,category__name);
              pst.setLong(3,catcode);
  
              int numRowsChanged = pst.executeUpdate();
              if(numRowsChanged!=0){
                  System.out.println("Successfull execution");
                  RequestDispatcher rd = request.getRequestDispatcher("adminhome.jsp");
                  rd.forward(request, response);
              }
              else{
                              System.err.println("Problem with the insertion query");
              }
              pst.close();
              }
              catch(ClassNotFoundException e){
                              e.printStackTrace();
              }
              catch(SQLException e){
                              e.printStackTrace();
              }
              catch (Exception e){
                              e.printStackTrace();
              }
              finally {
              // Always close the database connection.
              try {
              if (connection != null) connection.close();
              }
              catch (SQLException ignored){
              }
              }
          }
      }
  }
  </code></pre>
  
  <p>I cannot use getParameters() method because these are simply two variables. Is there any way to pass these to servlet? I am getting a NullPointerException</p>
  
  <p>StackTrace</p>
  
  <pre><code>Aug 12, 2014 1:22:10 PM org.apache.catalina.core.AprLifecycleListener init
  INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
  Aug 12, 2014 1:22:11 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
  WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:Agro' did not find a matching property.
  Aug 12, 2014 1:22:11 PM org.apache.coyote.AbstractProtocol init
  INFO: Initializing ProtocolHandler ["http-nio-8080"]
  Aug 12, 2014 1:22:11 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
  INFO: Using a shared selector for servlet write/read
  Aug 12, 2014 1:22:11 PM org.apache.coyote.AbstractProtocol init
  INFO: Initializing ProtocolHandler ["ajp-nio-8009"]
  Aug 12, 2014 1:22:11 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
  INFO: Using a shared selector for servlet write/read
  Aug 12, 2014 1:22:11 PM org.apache.catalina.startup.Catalina load
  INFO: Initialization processed in 673 ms
  Aug 12, 2014 1:22:11 PM org.apache.catalina.core.StandardService startInternal
  INFO: Starting service Catalina
  Aug 12, 2014 1:22:11 PM org.apache.catalina.core.StandardEngine startInternal
  INFO: Starting Servlet Engine: Apache Tomcat/8.0.9
  Aug 12, 2014 1:22:11 PM org.apache.jasper.servlet.TldScanner scanJars
  INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
  Aug 12, 2014 1:22:11 PM org.apache.coyote.AbstractProtocol start
  INFO: Starting ProtocolHandler ["http-nio-8080"]
  Aug 12, 2014 1:22:11 PM org.apache.coyote.AbstractProtocol start
  INFO: Starting ProtocolHandler ["ajp-nio-8009"]
  Aug 12, 2014 1:22:11 PM org.apache.catalina.startup.Catalina start
  INFO: Server startup in 675 ms
  Aug 12, 2014 1:22:25 PM org.apache.catalina.core.StandardWrapperValve invoke
  SEVERE: Servlet.service() for servlet [InsertServlet] in context with path [/Agro] threw exception
  java.lang.NullPointerException
      at com.kunal.servlet.InsertCategory.doPost(InsertCategory.java:42)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:644)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:136)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
      at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:526)
      at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
      at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:655)
      at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222)
      at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1566)
      at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1523)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
      at java.lang.Thread.run(Thread.java:745)
  </code></pre>