Showing posts with label Servlet. Show all posts
Showing posts with label Servlet. Show all posts

Sunday, April 7, 2013

Woking with enctype="multipart/form-data" and request.getParameter for file upload with jsp,servlet using Eclipse and Apache Tomcat



when we works with enctype="multipart/form-data" many coders faces problem regarding request.getParameter that it is not working and here we are providing solution regarding this problem.
Here we are using enctype="multipart/form-data" on jsp form page for uploading file(eg. image and image size limit is 1 mb for multipart)
To work with MultipartRequest class you need to import cos.jar to your project. So firstly Download it.

Download link:

Project Structure in Project Explorer:

stuform.jsp
here in form tag you can see enctype="multipart/form-data"  which we are using for file upload.
 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"  
   pageEncoding="ISO-8859-1"%>  
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
 <html>  
 <head>  
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">  
 <title>Insert title here</title>  
 </head>  
 <body bgcolor="gray">  
 <center >  
 <h1> Student Information</h1>  
 <form action="Test" method="post" enctype="multipart/form-data" >  
 <table bgcolor="lightblue"><tr><td>Select Image:</td><td><input type="file" name="pic"/><br/></td></tr>  
 <tr><td>Select Sign:</td><td><input type="file" name="sign"/><br/></td></tr>  
 <tr><td>Name:</td><td><input type="text" name="name"/><br/></td></tr>  
 <tr><td>Email:</td><td><input type="text" name="email"/><br/></td></tr>  
 <tr><td>Password:</td><td><input type="password" name="pwd"/><br/></td></tr>  
 <tr><td><input type="submit" value="Upload"></td></tr></table>  
 </form>  
 </center></body>  
 </html>  


web.xml
 <?xml version="1.0" encoding="UTF-8"?>  
 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">  
  <display-name>Test</display-name>  
  <welcome-file-list>  
    <welcome-file>stuform.jsp</welcome-file>  
  </welcome-file-list>  
  <servlet>  
   <description></description>  
   <display-name>Test</display-name>  
   <servlet-name>Test</servlet-name>  
   <servlet-class>blog.webideaworld.Test</servlet-class>  
  </servlet>  
  <servlet-mapping>  
   <servlet-name>Test</servlet-name>  
   <url-pattern>/Test</url-pattern>  
  </servlet-mapping>  
 </web-app>  

Test.java
com.oreilly.servlet.MultipartRequest
A utility class to handle multipart/form-data requests,the kind of requests that support file uploads.
 package blog.webideaworld;  
 import java.io.IOException;  
 import java.io.PrintWriter;  
 import javax.servlet.ServletException;  
 import javax.servlet.http.HttpServlet;  
 import javax.servlet.http.HttpServletRequest;  
 import javax.servlet.http.HttpServletResponse;  
 import com.oreilly.servlet.MultipartRequest;  
 @SuppressWarnings("serial")  
 public class Test extends HttpServlet {  
      protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
      }  
      protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
           response.setContentType("text/html");  
           PrintWriter out=response.getWriter();  
           MultipartRequest m=new MultipartRequest(request, "C:/MyWork/Test/WebContent/images/");  
           String pic=m.getFilesystemName("pic");  
           String sign=m.getFilesystemName("sign");  
           String name=m.getParameter("name");  
           String email=m.getParameter("email");  
           String pwd=m.getParameter("pwd");  
           out.println("<body bgcolor=gray><center><h1>Student Information</h1>");  
           out.println("<table bgcolor=lightblue><tr><td>Photo of "+name+" :</td><td><img src=/Test/images/" +pic + " width=120px height=150px><br/></td></tr>");  
           out.println("<tr><td>Sign of "+name+" :</td><td><img src=/Test/images/" +sign + " width=120px height=40px><br/></td></tr>");  
           out.println("<tr><td>Email:</td><td>"+email+"</td></tr>");  
           out.println("<tr><td>Password:</td><td>" +pwd+"</td></tr></table>");  
           out.println("</center></body>");  
      }  
 }  

Download Code(Test.rar-78kb)

View in Browser:

Saturday, March 23, 2013

How to use radio button with Servlet in Eclipse or NetBeans

If you have any problem that how we can get radio button value using servlet then you can easily solve out this problem by below example or you can also download code by clicking on Download Code Link.......


Suppose you have two pages one is jsp and other is servlet page and source code is below.
mypage.jsp
Test.java

web.xml




servlet page

Wednesday, December 26, 2012

Sql Query Tool using Servlet


Project View
 
public interface ResultSetMetaData extends Wrapper
An object that can be used to get information about the types and properties of the columns in a ResultSet object.

public ResultSetMetaData getMetaData() throws SQLException
Retrieves the number, types and properties of this ResultSet object's columns. 


QueryServlet.java
 package blog.webideaworld;  
 import javax.servlet.*;  
 import java.sql.*;  
 import java.io.IOException;  
 import java.io.PrintWriter;  
 import javax.servlet.ServletException;  
 import javax.servlet.http.HttpServlet;  
 import javax.servlet.http.HttpServletRequest;  
 import javax.servlet.http.HttpServletResponse;  
 public class QueryServlet extends HttpServlet  
 {  
   protected void doGet(HttpServletRequest request, HttpServletResponse response)  
   throws ServletException, IOException  
   {      
    myForm(request,response);  
   }  
   private void myForm(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException  
   {  
      response.setContentType("text/html");  
      PrintWriter out = response.getWriter();  
      try  
      {  
      out.println("<html><body bgcolor=brown><center><h1>SQL Tool</h1><form method=post>");  
      out.println("<table border=1 bgcolor=green> <tr> <td><textarea rows=15 cols=55 name=t1></textarea></td></tr>");  
      out.println("<tr><td><input type=submit value=execute name=t3></td></tr> </table>");  
      out.println("</form></center></body></html>");  
     }  
      catch(Exception e){}  
   }  
    protected void doPost(HttpServletRequest request, HttpServletResponse response)  
   throws ServletException, IOException  
   {  
     response.setContentType("text/html");  
     PrintWriter out = response.getWriter();  
     myForm(request, response);  
     String query=request.getParameter("t1");  
     ServletConfig config=getServletConfig();  
     ServletContext context=config.getServletContext();  
       String s1=context.getInitParameter("d1");  
       String s2=context.getInitParameter("d2");  
       String s3=context.getInitParameter("d3");  
       String s4=context.getInitParameter("d4");  
     try {  
        Class.forName(s1);  
        Connection con=DriverManager.getConnection(s2,s3,s4);  
        PreparedStatement ps=con.prepareStatement(query);  
        if(query.startsWith("select"))  
        {  
          ResultSet rs=ps.executeQuery(query);  
          ResultSetMetaData rsmd=rs.getMetaData();  
          int columncount=rsmd.getColumnCount();  
          out.println("<center><table bgcolor=yellow border=2>");  
          out.println("<tr>");  
          for(int k=1;k<=columncount;k++)  
          {  
            out.println("<th>");  
            out.println(rsmd.getColumnName(k));  
            out.println("</th>");  
          }  
          out.println("</tr>");  
          while(rs.next())  
          {  
            out.println("<tr>");  
            for(int j=1;j<=columncount;j++)  
            {  
              out.println("<td>");  
              out.println(rs.getString(j));  
              out.println("</td>");  
            }  
            out.println("</tr>");  
          }  
          out.println("</table></center>");  
        }  
      else if(query.startsWith("insert"))  
      {  
       int i=ps.executeUpdate();  
       if(i!=0)  
       out.println("<center>"+i+ "row(s) inserted Successfully"+"</center>");  
      }  
      else if(query.startsWith("delete"))  
        {  
         int i=ps.executeUpdate();  
       if(i!=0)  
       out.println("<center>"+i+ " row(s) deleted Successfully"+"</center>");  
       }  
        else if(query.startsWith("update"))  
        {  
       int i=ps.executeUpdate();  
       if(i!=0)  
        out.println("<center>"+i+ "row(s) updated Successfully"+"</center>");  
        }  
     }  
     catch(Exception e) { }  
   }  
 }  

web.xml
 <?xml version="1.0" encoding="UTF-8"?>  
 <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
   <context-param>  
     <param-name>d1</param-name>  
     <param-value>oracle.jdbc.driver.OracleDriver</param-value>  
   </context-param>  
   <context-param>  
     <param-name>d2</param-name>  
     <param-value>jdbc:oracle:thin:@localhost:1521:xe</param-value>  
   </context-param>  
   <context-param>  
     <param-name>d3</param-name>  
     <param-value>hr</param-value>  
   </context-param>  
   <context-param>  
     <param-name>d4</param-name>  
     <param-value>hr</param-value>  
   </context-param>  
   <servlet>  
     <servlet-name>QueryServlet</servlet-name>  
     <servlet-class>blog.webideaworld.QueryServlet</servlet-class>  
   </servlet>  
   <servlet-mapping>  
     <servlet-name>QueryServlet</servlet-name>  
     <url-pattern>/Queryrun</url-pattern>  
   </servlet-mapping>  
   <session-config>  
     <session-timeout>  
       30  
     </session-timeout>  
   </session-config>  
   <welcome-file-list>  
     <welcome-file>Queryrun</welcome-file>  
   </welcome-file-list>  
 </web-app>  


Download Code Link 1
Download Code Link 2


Output:

Tuesday, December 25, 2012

Session Tracking using Hidden Forms Field


Project View

Hidden fields are not visible to user on browser so we can hide data that we invoke from previous page using getParameter() method.Hidden Form Fields used in a proper sequence.

Hidden Form Field Example:
In index.jsp page on submit button action is page1 and method is post which redirects index.jsp to page1.java's doPost() method. 
In page1.java using hidden form field we hide previous page data and on submit button click redirect page1.java to page2.java and print all data on page2.java

index.jsp
 <html>  
   <head>  
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
     </head>  
   <body>  
     <h1>Register Yourself</h1>  
     <form action="page1" method="post">  
     UserName:<input type="text" name="t1">  
     Password:<input type="password" name="t2"><br>  
     <input type="submit" value="Next">  
     </form>  
   </body>  
 </html>  

page1.java
 import java.io.IOException;  
 import java.io.PrintWriter;  
 import javax.servlet.ServletException;  
 import javax.servlet.http.HttpServlet;  
 import javax.servlet.http.HttpServletRequest;  
 import javax.servlet.http.HttpServletResponse;  
 public class page1 extends HttpServlet {  
   protected void doPost(HttpServletRequest request, HttpServletResponse response)  
   throws ServletException, IOException {  
     PrintWriter out=response.getWriter();  
     String s1=request.getParameter("t1");  
     String s2=request.getParameter("t2");  
     out.println("<form action=page2 method=post>");  
     out.println("<input type=hidden name=t1 value='"+s1+"'>");  
     out.println("<input type=hidden name=t2 value='"+s2+"'>");  
     out.println("FirstName:<input type=text name=t3 >");  
     out.println("LastName:<input type=text name=t4 ><br>");  
     out.println("<input type=submit value=Finish>");  
     out.println("</form>");  
   }   
 }  

page2.java
 import java.io.IOException;  
 import java.io.PrintWriter;  
 import javax.servlet.ServletException;  
 import javax.servlet.http.HttpServlet;  
 import javax.servlet.http.HttpServletRequest;  
 import javax.servlet.http.HttpServletResponse;  
 public class page2 extends HttpServlet {  
   protected void doPost(HttpServletRequest request, HttpServletResponse response)  
   throws ServletException, IOException {  
     PrintWriter out=response.getWriter();  
     String s1=request.getParameter("t1");  
     String s2=request.getParameter("t2");  
     String s3=request.getParameter("t3");  
     String s4=request.getParameter("t4");  
     out.print("<h1>Registration</h1>");  
     out.print("<h4>UserName:"+s1+"</h4>");  
     out.print("<h4>Password:"+s2+"</h4>");  
     out.print("<h4>FirstName:"+s3+"</h4>");  
     out.print("<h4>LastName:"+s4+"</h4>");  
   }  
 }  


Download Code Link 1
Download Code Link 2

Output:



Session Tracking using URL Rewriting


Project View After Completion
Create login table and insert data into login table using insert command and here we are using Oracle10g database(you can also use other database)
 create table login ( id number,  
 uname varchar2(20),  
 upass varchar2(20)  
 );  


 insert into login values (1,'him','him123');
 insert into login values (2,'bon','bon123');
 insert into login values (3,'jim','jim123');
 commit;  

URL Rewriting Example:
In this example we are searching all users in login table using username or password and if you want to see all users present in login table just make a click on submit button.
Then we are performing Update and delete operation on row data using URL Rewriting.
Every row has a unique id created into database table and we append that id into URL of Servlet on which we are performing the task.
      <a href=UpdateServlet?id="+i+">Update</a>  
      <a href=DeleteServlet?id="+i+">Delete</a>    
To get the Parameter value of Parameter Name(id) we use getParameter() method. we can send multiple Parameter values append with multiple Parameter names using Ampersand(&) to separate them.
<a href=Servlet?PN1=PV1&PN2=PV2&PN3=PV3>LinkName</a>
 
index.jsp
click on Search Link.
 <html>  
   <head>  
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
     <title></title>  
   </head>  
   <body>  
     <h1><a href="Search_Servlet">Search</a></h1>  
   </body>  
 </html>  

web.xml
 <?xml version="1.0" encoding="UTF-8"?>  
 <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
   <servlet>  
     <servlet-name>Search_Servlet</servlet-name>  
     <servlet-class>Search_Servlet</servlet-class>  
   </servlet>  
   <servlet>  
     <servlet-name>UpdateServlet</servlet-name>  
     <servlet-class>UpdateServlet</servlet-class>  
   </servlet>  
   <servlet>  
     <servlet-name>DeleteServlet</servlet-name>  
     <servlet-class>DeleteServlet</servlet-class>  
   </servlet>  
   <servlet-mapping>  
     <servlet-name>Search_Servlet</servlet-name>  
     <url-pattern>/Search_Servlet</url-pattern>  
   </servlet-mapping>  
   <servlet-mapping>  
     <servlet-name>UpdateServlet</servlet-name>  
     <url-pattern>/UpdateServlet</url-pattern>  
   </servlet-mapping>  
   <servlet-mapping>  
     <servlet-name>DeleteServlet</servlet-name>  
     <url-pattern>/DeleteServlet</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>  


MyDAO.java
 import java.sql.*;  
 public class MyDAO {  
   public static Statement getSt()  
   {  
     Statement st=null;  
     try  
     {  
       Class.forName("oracle.jdbc.driver.OracleDriver");  
       Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","hr","hr");  
       st=con.createStatement();  
     }  
     catch(Exception e)  
     {  
       System.out.println(e);  
     }  
     return st;  
   }  
 }  


Search_Servlet.java
 import java.io.IOException;  
 import java.io.PrintWriter;  
 import javax.servlet.ServletException;  
 import javax.servlet.http.HttpServlet;  
 import javax.servlet.http.HttpServletRequest;  
 import javax.servlet.http.HttpServletResponse;  
 import java.sql.*;  
 public class Search_Servlet extends HttpServlet {  
   protected void doGet(HttpServletRequest request, HttpServletResponse response)  
   throws ServletException, IOException {  
     searchForm(request,response);  
     }   
   protected void doPost(HttpServletRequest request, HttpServletResponse response)  
   throws ServletException, IOException {  
     response.setContentType("text/html");  
     PrintWriter out=response.getWriter();  
     searchForm(request, response);  
     out.println("<center>");  
     String s1=request.getParameter("t1");  
     try  
     {  
      Statement st=MyDAO.getSt();  
      ResultSet rs=st.executeQuery("select * from login where uname like '%"+s1+"%' or upass like '%"+s1+"%'");  
      out.println("<table border=1>");  
      while(rs.next())  
      {  
        int i=rs.getInt(1);  
        out.println("<tr>");  
        out.println("<td>"+rs.getString(2)+"</td>");  
        out.println("<td>"+rs.getString(3)+"</td>");  
        out.println("<td><a href=UpdateServlet?id="+i+">Update</a></td>");  
        out.println("<td><a href=DeleteServlet?id="+i+">Delete</a></td>");  
        out.println("</tr>");  
      }  
      out.println("</table>");  
     }  
     catch(Exception e)  
     {  
       out.println(e);  
     }  
   }  
   private void searchForm(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException {  
     response.setContentType("text/html");  
     PrintWriter out=response.getWriter();  
     out.println("<html><body>");  
     out.println("<form method=post>");  
     out.println("<center>");  
     out.println("<h1>Make Your Search</h1>");  
     out.println("<br>");  
     out.println("<input type=text name=t1>");  
     out.println("<br>");  
     out.println("<input type=submit value=Submit>");  
     out.println("</center>");  
     out.println("</form>");  
     out.println("</body></html>");  
   }  
 }  


UpdateServlet.java
 import java.io.IOException;  
 import java.io.PrintWriter;  
 import javax.servlet.ServletException;  
 import javax.servlet.http.HttpServlet;  
 import javax.servlet.http.HttpServletRequest;  
 import javax.servlet.http.HttpServletResponse;  
 import java.sql.*;  
 public class UpdateServlet extends HttpServlet {  
   String uname,upass;  
   Statement st;  
   static String ii;  
   protected void doGet(HttpServletRequest request, HttpServletResponse response)  
   throws ServletException, IOException {  
     response.setContentType("text/html");  
     PrintWriter out=response.getWriter();  
     try  
     {  
       ii=request.getParameter("id");  
       st=MyDAO.getSt();  
       ResultSet i=st.executeQuery("select * from login where id='"+ii+"'");  
       if(i.next())  
       {  
         uname=i.getString(2);  
         upass=i.getString(3);  
       }  
       out.println("<html><body>");  
       out.println("<form method=post>");  
       out.println("<center>");  
       out.println("<h1>Update Form</h1>");  
       out.println("<table>");  
       out.println("<tr>");  
       out.println("<td>");  
       out.println("User Name : ");  
       out.println("</td>");  
       out.println("<td>");  
       out.println("<input type=text name=t1 value="+uname+">");  
       out.println("</td>");  
       out.println("</tr>");  
       out.println("<tr>");  
       out.println("<td>");  
       out.println("Password : ");  
       out.println("</td>");  
       out.println("<td>");  
       out.println("<input type=text name=t2 value="+upass+">");  
       out.println("</td>");  
       out.println("</tr>");  
       out.println("<tr>");  
       out.println("<td>");  
       out.println("<input type=submit value=Submit>");  
       out.println("</td>");  
       out.println("</tr>");  
       out.println("</table>");  
       out.println("</center>");  
       out.println("</form>");  
       out.println("</body></html>");  
     }  
     catch(Exception e){out.println(e);}  
   }  
 protected void doPost(HttpServletRequest request, HttpServletResponse response)  
   throws ServletException, IOException {  
     response.setContentType("text/html");  
     PrintWriter out=response.getWriter();  
     String s1=request.getParameter("t1");  
     String s2=request.getParameter("t2");  
     out.println(s1+" "+s2+" "+ii);  
     try  
     {  
      Statement st=MyDAO.getSt();  
      int i=st.executeUpdate("update login set uname='"+s1+"',upass='"+s2+"' where id='"+ii+"'");  
      if(i!=0)  
      {  
        out.println("Updated Successfully");  
      }  
     }  
     catch(Exception e){out.println(e);}  
   }  
 }  

DeleteServlet.java
 import java.io.IOException;  
 import java.io.PrintWriter;  
 import javax.servlet.ServletException;  
 import javax.servlet.http.HttpServlet;  
 import javax.servlet.http.HttpServletRequest;  
 import javax.servlet.http.HttpServletResponse;  
 import java.sql.*;  
 public class DeleteServlet extends HttpServlet {  
   protected void doGet(HttpServletRequest request, HttpServletResponse response)  
   throws ServletException, IOException {  
     response.setContentType("text/html");  
     PrintWriter out=response.getWriter();  
     try  
     {  
       String i=request.getParameter("id");  
       Statement st=MyDAO.getSt();  
       int j=st.executeUpdate("delete from login where id='"+i+"'");  
       out.println("<html><body><h1>");  
       out.println(j+" record(s) deleted");  
       out.println("</h1></body></html>");  
     }  
     catch(Exception e){out.println(e);}  
   }   
 }  

Download Code Link 1
Download Code Link 1
  Output:








Monday, December 24, 2012

Session Tracking using HttpSession Interface


To recognize particular user we create a session and bind that user with that session object. For every new user, program creates a new session and the same thing we are doing here we are creating a session during user login. If user exists in the database then page will redirect to valid page and a session will generate else it'll redirect to Invalid page.

If you copy valid page url to another browser then it'll redirect it to index.jsp page because we are checking whether session is null or not.

public HttpSession getSession(boolean create)
Returns the current HttpSession associated with this request or, if there is no current session and create is true, returns a new session.
If create is false and the request has no valid HttpSession, this method returns null.

On Valid.java page our create is false and if we try to go to this page directly then null will redirect it to index.jsp page.
 
Project View After Completion
Create login table and insert data into login table using insert command and here we are using Oracle10g database(you can also use other database)
 create table login ( id number,  
 uname varchar2(20),  
 upass varchar2(20)  
 );  


 insert into login values (1,'him','him123');  
 commit;  

HttpSession Interface and Methods  :

public interface HttpSession
Provides a way to identify a user across more than one page request or visit to a Web site and to store information about that user. 


public HttpSession getSession()
Returns the current session associated with this request, or if the request does not have a session, creates one. 


public void setAttribute(String name, Object value)
Binds an object to this session, using the name specified. If an object of the same name is already bound to the session, the object is replaced.


public Object getAttribute(String name)
Returns the object bound with the specified name in this session, or null if no object is bound under the name. 


HttpSession Example: 

index.jsp
This is page for user's view  and on submit action is run1

 <html>  
  <head>  
   <title></title>  
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  </head>  
  <body>  
    <center>  
    <h1>Application Form</h1>  
    <form action="run1" method="get">  
      <table>  
        <tr>  
          <td>User Name : </td>  
          <td><input type="text" name="t1"></td>  
        </tr>  
        <tr>  
          <td>Password : </td>  
          <td><input type="password" name="t2"></td>  
        </tr>  
        <tr>  
          <td>  
            <input type="submit" value="Sign In"/>  
          </td>  
        </tr>  
      </table>  
    </form>  
  </center>  
  </body>  
 </html>  


web.xml
 <?xml version="1.0" encoding="UTF-8"?>  
 <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
   <servlet>  
     <servlet-name>LoginServlet</servlet-name>  
     <servlet-class>LoginServlet</servlet-class>  
   </servlet>  
   <servlet>  
     <servlet-name>Invalid</servlet-name>  
     <servlet-class>Invalid</servlet-class>  
   </servlet>  
   <servlet>  
     <servlet-name>Valid</servlet-name>  
     <servlet-class>Valid</servlet-class>  
   </servlet>  
   <servlet-mapping>  
     <servlet-name>LoginServlet</servlet-name>  
     <url-pattern>/run1</url-pattern>  
   </servlet-mapping>  
   <servlet-mapping>  
     <servlet-name>Invalid</servlet-name>  
     <url-pattern>/Invalid</url-pattern>  
   </servlet-mapping>  
   <servlet-mapping>  
     <servlet-name>Valid</servlet-name>  
     <url-pattern>/Valid</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>  

LoginServlet.java
 import java.io.IOException;  
 import java.io.PrintWriter;  
 import javax.servlet.ServletException;  
 import javax.servlet.http.*;  
 import java.sql.*;  
 public class LoginServlet extends HttpServlet {  
   protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {  
     resp.setContentType("text/html");  
     PrintWriter out=resp.getWriter();  
     String s1=req.getParameter("t1");  
     String s2=req.getParameter("t2");  
     try  
     {  
       Class.forName("oracle.jdbc.driver.OracleDriver");  
       Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","hr","hr");  
       Statement st=con.createStatement();  
       ResultSet rs=st.executeQuery("select * from login where uname='"+s1+"' and upass='"+s2+"'");  
       if(rs.next())  
       {  
         HttpSession session=req.getSession();  
         session.setAttribute("user", s1);  
         resp.sendRedirect("Valid");  
       }  
        else  
       {  
         resp.sendRedirect("Invalid");  
        }  
     }  
     catch(Exception e)  
     {  
       out.println(e);  
     }  
   }  
  }  

Valid.java
 import java.io.IOException;  
 import java.io.PrintWriter;  
 import javax.servlet.ServletException;  
 import javax.servlet.http.*;  
 public class Valid extends HttpServlet {  
   protected void service(HttpServletRequest request, HttpServletResponse response)  
   throws ServletException, IOException {  
     response.setContentType("text/html;charset=UTF-8");  
     PrintWriter out = response.getWriter();  
     HttpSession session=request.getSession(false);  
     if(session==null)  
     {  
       response.sendRedirect("index.jsp");  
      }  
  else  
     {  
       String name=(String)session.getAttribute("user");  
       out.println("<h1>Welcome!"+ name +"</h1>");  
      }  
    }   
 }  

Invalid.java
 import java.io.IOException;  
 import java.io.PrintWriter;  
 import javax.servlet.ServletException;  
 import javax.servlet.http.HttpServlet;  
 import javax.servlet.http.HttpServletRequest;  
 import javax.servlet.http.HttpServletResponse;  
 public class Invalid extends HttpServlet {  
   protected void service(HttpServletRequest request, HttpServletResponse response)  
   throws ServletException, IOException {  
     response.setContentType("text/html;charset=UTF-8");  
     PrintWriter out = response.getWriter();  
       out.println("<html>");  
       out.println("<head>");  
       out.println("<title>Servlet Invalid</title>");  
       out.println("</head>");  
       out.println("<body>");  
       out.println("<h1>Invalid User!</h1>");  
       out.println("</body>");  
       out.println("</html>");  
     }  
 }  

Download Code Link 1
Download Code Link 2

Output:

Friday, December 21, 2012

Session Tracking using Cookies


Http is a stateless protocol so that it can't maintain user's state or can't recognize that request is coming from same user to server so that to maintain user's state we are using Session Tracking with the help of Cookie Class.

Project View After Completion


Create login table and insert data into login table using insert command and here we are using Oracle10g database(you can also use other database)
 create table login ( id number,  
 uname varchar2(20),  
 upass varchar2(20)  
 );  


 insert into login values (1,'him','him123');  
 commit;  

Cookie Class and Methods

public class Cookie extends Object implements Cloneable
Creates a cookie, a small amount of information sent by a servlet to a Web browser, saved by the browser, and later sent back to the server. A cookie's value can uniquely identify a client, so cookies are commonly used for session management.


public Cookie(String name, String value)
Constructs a cookie with the specified name and value. 

public void addCookie(Cookie cookie)
Adds the specified cookie to the response. This method can be called multiple times to set more than one cookie.


public Cookie[] getCookies()

Returns an array containing all of the Cookie objects the client sent with this request. This method returns null if no cookies were sent. 

public String getName()
Returns the name of the cookie. The name cannot be changed after creation. 


public String getValue()
Gets the current value of this Cookie. 


public int getMaxAge()
Gets the maximum age in seconds of this Cookie.
By default, -1 is returned, which indicates that the cookie will persist until browser shutdown.


public void setMaxAge(int expiry)
Sets the maximum age in seconds for this Cookie. 

Cookie Example:

index.jsp
This is page for user's view  and on submit action is run1
 <html>  
  <head>  
   <title></title>  
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  </head>  
  <body><center>  
    <h1>Application Form</h1>  
    <form action="run1" method="get">  
      <table>  
        <tr>  
          <td>User Name : </td>  
          <td><input type="text" name="t1"></td>  
        </tr>  
        <tr>  
          <td>Password : </td>  
          <td><input type="password" name="t2"></td>  
        </tr>  
        <tr>  
          <td>  
            <input type="submit" value="Sign In"/>  
          </td>  
        </tr>  
      </table>  
    </form>  
    </center></body>  
 </html>  

web.xml
 <?xml version="1.0" encoding="UTF-8"?>  
 <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
   <servlet>  
     <servlet-name>LoginServlet</servlet-name>  
     <servlet-class>LoginServlet</servlet-class>  
   </servlet>  
   <servlet>  
     <servlet-name>Invalid</servlet-name>  
     <servlet-class>Invalid</servlet-class>  
   </servlet>  
   <servlet>  
     <servlet-name>Valid</servlet-name>  
     <servlet-class>Valid</servlet-class>  
   </servlet>  
   <servlet-mapping>  
     <servlet-name>LoginServlet</servlet-name>  
     <url-pattern>/run1</url-pattern>  
   </servlet-mapping>  
   <servlet-mapping>  
     <servlet-name>Invalid</servlet-name>  
     <url-pattern>/Invalid</url-pattern>  
   </servlet-mapping>  
   <servlet-mapping>  
     <servlet-name>Valid</servlet-name>  
     <url-pattern>/Valid</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>  

LoginServlet.java
 import java.io.IOException;  
 import java.io.PrintWriter;  
 import javax.servlet.ServletException;  
 import javax.servlet.http.*;  
 import java.sql.*;  
 public class LoginServlet extends HttpServlet {  
   @Override  
   protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {  
     resp.setContentType("text/html");  
     PrintWriter out=resp.getWriter();  
     String s1=req.getParameter("t1");  
     String s2=req.getParameter("t2");  
     try  
     {  
       Class.forName("oracle.jdbc.driver.OracleDriver");  
       Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","hr","hr");  
       Statement st=con.createStatement();  
       ResultSet rs=st.executeQuery("select * from login where uname='"+s1+"' and upass='"+s2+"'");  
       if(rs.next())  
       {  
         Cookie c=new Cookie("name",s1);  
         resp.addCookie(c);  
         resp.sendRedirect("Valid");  
       }  
  else  
       {  
         resp.sendRedirect("Invalid");  
        }  
     }  
     catch(Exception e)  
     {  
       out.println(e);  
     }  
   }  
  }  

Valid.java
 import java.io.IOException;  
 import java.io.PrintWriter;  
 import javax.servlet.ServletException;  
 import javax.servlet.http.*;  
 public class Valid extends HttpServlet {  
   protected void service(HttpServletRequest request, HttpServletResponse response)  
   throws ServletException, IOException {  
     response.setContentType("text/html;charset=UTF-8");  
     PrintWriter out = response.getWriter();  
     try {  
       Cookie c[]=request.getCookies();  
       if(c==null)  
       {  
         response.sendRedirect("index.jsp");  
       }  
  else  
       {  
         out.println("<h1>Welcome!"+c[0].getValue()+"</h1>");  
  }  
     } finally {   
       out.close();  
     }  
   }   
 }  

Invalid.java
 import java.io.IOException;  
 import java.io.PrintWriter;  
 import javax.servlet.ServletException;  
 import javax.servlet.http.HttpServlet;  
 import javax.servlet.http.HttpServletRequest;  
 import javax.servlet.http.HttpServletResponse;  
 public class Invalid extends HttpServlet {  
   protected void service(HttpServletRequest request, HttpServletResponse response)  
   throws ServletException, IOException {  
     response.setContentType("text/html;charset=UTF-8");  
     PrintWriter out = response.getWriter();  
     try {  
       out.println("<html>");  
       out.println("<head>");  
       out.println("<title>Servlet Invalid</title>");   
       out.println("</head>");  
       out.println("<body>");  
       out.println("<h1>Invalid User!</h1>");  
       out.println("</body>");  
       out.println("</html>");  
     } finally {   
       out.close();  
     }  
   }   
 }  

Download Code Link 1
Download Code Link 2
Output:

Session Tracking

Http is a stateless protocol so that it can't maintain user's state or can't recognize that request is coming from same user to server because of this to maintain user's state we use Session Tracking.

There are four ways of performing Session Tracking.
1.Cookies
2.HttpSession
3.Hidden Form Field
4.Url Rewriting

Thursday, December 20, 2012

RequestDispatcher Interface and SendRedirect() Method


RequestDispatcher Interface 

public interface RequestDispatcher
 
Defines an object that receives requests from the client and sends them to any resource (such as a servlet, HTML file, or JSP file) on the server. 


public RequestDispatcher getRequestDispatcher(String path)
 
Returns a RequestDispatcher object that acts as a wrapper for the resource located at the given path. A RequestDispatcher object can be used to forward a request to the resource or to include the resource in a response. The resource can be dynamic or static. 
  
public void include(ServletRequest request, ServletResponse response) throws ServletException, IOException
 
Includes the content of a resource (servlet, JSP page, HTML file) in the response. In essence, this method enables programmatic server-side includes. 

login.java
 ResultSet rs=st.executeQuery("select * from login where Uname='"+s1+"'and Upass='"+s2+"'");  
    if(rs.next())  
        {  
         RequestDispatcher rd=request.getRequestDispatcher("validUser");  
         rd.include(request, response);  
       }  
    else  
     {  
         out.print("invalid user");  
      RequestDispatcher rd=request.getRequestDispatcher("Register.jsp");  
     rd.include(request, response);  
    }  


SendRedirect() Method

public void sendRedirect(String location) throws IOException

Sends a temporary redirect response to the client using the specified redirect location URL and clears the buffer.

login.java
 ResultSet rs=st.executeQuery("select * from login where Uname='"+s1+"'and Upass='"+s2+"'");  
    if(rs.next())  
        {  
         response.sendRedirect("validUser");  
       }  
    else  
     {  
         out.print("invalid user");  
         response.sendRedirect("Register.jsp");
    }  

web.xml
  <?xml version="1.0" encoding="UTF-8"?>  
   <servlet>  
     <servlet-name>login</servlet-name>  
     <servlet-class>login</servlet-class>  
   </servlet>    
   <servlet>  
     <servlet-name>validUser</servlet-name>  
     <servlet-class>validUser</servlet-class>  
   </servlet>  
   <servlet-mapping>  
     <servlet-name>login</servlet-name>  
     <url-pattern>/login</url-pattern>  
   </servlet-mapping>  
   <servlet-mapping>  
     <servlet-name>validUser</servlet-name>  
     <url-pattern>/validUser</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>  


Download Code Link 1
Download Code Link 2

Popular Posts