Friday, 13 September 2013

how to Concate the JSON Arary in java

This example is use for the concate or merge the more than one json Aray into signle json Array and for this example we need to download the json-lib-2.4-jdk15 library.

 import net.sf.json.JSONArray;  
 import net.sf.json.JSONException;  
 public class JsonConcateDemo {  
       public static JSONArray concatArray(JSONArray... arrs)throws JSONException   
       {  
         JSONArray result = new JSONArray();  
         for (JSONArray arr : arrs) {  
           for (int i = 0; i < arr.size(); i++) {  
             result.add(arr.get(i));  
           }  
         }  
         return result;  
       }  
       public static void main(String args[])  
       {  
            JSONArray jsonArray1=new JSONArray();  
            jsonArray1.add(0,"one");  
            jsonArray1.add(1,"two");  
            JSONArray jsonArray2=new JSONArray();  
            jsonArray2.add(0,"three");  
            jsonArray2.add(1,"four");  
            System.out.println("the JSONARRAY1:"+jsonArray1.toString());  
            System.out.println("the JSONARRAY2:"+jsonArray2.toString());  
            System.out.println("New concate array JSONArray1 and JSONArray2"+concatArray(jsonArray1,jsonArray2));  
       }  
 }  

The Output
 the JSONARRAY1:["one","two"]  
 the JSONARRAY2:["three","four"]  
 now new concate array JSONArray1 and JSONArray2["one","two","three","four"]  

Saturday, 10 August 2013

How to bind datasource with InitialContext programatically in java class

This following way data source binding with the InitialContext is used for when you are implementing Junit testing in the project because when you run Junit testing the project is not deploy so if you initialized data source in tomee.xml and web.xml is not initialize.so for this reason you have to invoked one method for the initialize the data source problematically like following way.

Here i am showing example with java and MySQL if you are using any other database then you just need to
change 'url'  properties and 'driverClassName' properties.

Here i created two methods
1)initialdsn()
    This method binding the data source with InitialContext so in future we can get using jndi lookup.
2)checkdsn()
    This method is showing that how you will access data source.

NOTE:Don't forget to include jar file into the classpath.

 import java.sql.Connection;  
 import java.sql.ResultSet;  
 import java.sql.Statement;  
 import java.util.Properties;  
 import javax.naming.Context;  
 import javax.naming.InitialContext;  
 import javax.sql.DataSource;  
 import org.apache.commons.dbcp.BasicDataSourceFactory;  
 public class DSNDEMO {  
      public static void initialdsn()throws Exception  
      {  
                System.setProperty(Context.INITIAL_CONTEXT_FACTORY,"org.apache.naming.java.javaURLContextFactory");  
                System.setProperty(Context.URL_PKG_PREFIXES,"org.apache.naming");   
                Properties properties = new Properties ();  
                properties.setProperty("url", "jdbc:mysql://localhost:3306/ops");  
                properties.setProperty("driverClassName","com.mysql.jdbc.Driver");  
                properties.setProperty("maxActive", "10");  
                properties.setProperty("maxIdle", "8");  
                properties.setProperty("minIdle", "10");  
                properties.setProperty("maxWait", "10");  
                properties.setProperty("testOnBorrow", "true");  
                properties.setProperty("username", "root");  
                properties.setProperty("password", "");  
                properties.setProperty("validationQuery", "SELECT 1");  
                properties.setProperty("removeAbandoned", "true");  
                properties.setProperty("removeAbandonedTimeout", "1");  
                properties.setProperty("logAbandoned", "true");  
                DataSource ds = BasicDataSourceFactory.createDataSource(properties);  
                InitialContext ic = new InitialContext();  
                ic.createSubcontext("java:");  
                ic.createSubcontext("java:/comp");  
                  ic.createSubcontext("java:/comp/env");  
                ic.createSubcontext("java:/comp/env/jdbc");  
                 ic.bind("java:/comp/env/jdbc/mydb", ds);  
      }  
      public static void checkdsn()throws Exception  
      {  
           Context initContext = new InitialContext();  
            Context webContext = (Context)initContext.lookup("java:/comp/env");  
          DataSource ds = (DataSource) webContext.lookup("jdbc/mydb");  
          Connection con=ds.getConnection();  
          Statement stmt=con.createStatement();  
          ResultSet rs=stmt.executeQuery("select *from student_master");  
          while(rs.next())  
          {  
               System.out.println(rs.getString(1));  
          }  
      }  
 public static void main(String args[])throws Exception  
 {  
           DSNDEMO.initialdsn();  
           DSNDEMO.checkdsn();  
      }  
 }  

For this you have to download this  naming-common-4.1.31.jar and you need to include in your classpath or you can download from here

So for the above program you need to include following jar file into classpath.

1)naming-common-4.1.31.jar  (This contains class org.apache.naming.java.javaURLContextFactory)
2)commons-pool-1.5.7.jar
3)commons-dbcp-1.4.jar
4)mysql-connector-java-3.0.17-ga-bin

for Junit you create one method and include the initialdsn() source code in that method.

if you are getting any exception then free for comment here.

Friday, 9 August 2013

How to encrypt password in java

This is one of the method for encrypt the password using MD5 and using this method you can encrypt but you can not decrypt the password .

 import java.security.MessageDigest;  
 public class PasswordEncryptDemo {  
      public static String Password(String plainText) throws Exception  
      {  
           MessageDigest mdAlgorithm = MessageDigest.getInstance("MD5");  
           mdAlgorithm.update(plainText.getBytes());  
           byte[] digest = mdAlgorithm.digest();  
           StringBuffer hexString = new StringBuffer();  
           for (int i = 0; i < digest.length; i++)  
           {  
             plainText = Integer.toHexString(0xFF & digest[i]);  
             if (plainText.length() < 2)   
             {  
               plainText = "0" + plainText;  
             }  
             hexString.append(plainText);  
           }  
           return hexString.toString();  
      }  
      public static void main(String args[])throws Exception  
      {  
           String planinText="poolof123";  
           System.out.println("The plain text is:"+planinText);  
           System.out.println("The encrypted text is:"+PasswordEncryptDemo.Password(planinText));  
      }  
 }  

output:
 The plain text is:poolof123  
 The encrypted text is:15e3c36a6a68803819c5d25a053b5535  

Saturday, 25 May 2013

How to import our own java class file in jsp page.

This example is showing  how to create class file and how to use that class file in jsp page.
here I am showing example without using eclipse or any IDE.
When we are developing any project, we need to create one separate class file for connecting with database so here I am creating one class file which is java class file and  I will use whenever i need to connect with database.

First you  need to create class.
DatabaseConnection.java

package myCon;
import java.sql.*;
public class DatabaseConnection
{

    private static Connection connection;

    static
    {
        try
        {
            Class.forName("com.mysql.jdbc.Driver");
            connection = DriverManager.getConnection("jdbc:mysql://localhost/cosociety", "root", "");
        } catch (Exception e)
        {
            System.out.println(e.toString());
        }
    }

    public static Connection getConnection()
    {
        return connection;
    }
  
}
The above java file which i created is to get connection with the database.
When you are creating class, you have to create package for that.If you are not creating package, then at run time jvm always search class file in default package and the class file will not found so jvm will throw errors.so for that we need to create package and our class file we need to store in package.
Now for compilation:
This following compilation is doing using the cmd.
C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\slvsc\inc>javac -
d .  DatabaseConnection.java
after executing the above command, your  class file will be available inside the package, "myConn".
Now you have to create structure for your project.
You have to put myConn package inside the
WEB-INF->classes
you have to create folder like above and put your package inside classes  folder.
Now structure is
WEB-INF->classes-> myCon->DatabaseConnection.class
Then you can call it using the following way.

The following example is used for retrieving data from employee table.
<%@ page import="myCon.DatabaseConnection"%> //this line used for import class in jsp page
<%@ page import="java.sql.*"%>
<%@ page import="java.util.*" %>


<%!
    Connection connection;
    String sql="";
    Statement stmt;
    ResultSet rs,rsn;
%>
<%
   
  try
   {      
    connection=DatabaseConnection.getConnection();
    stmt=connection.createStatement();
    sql="select *from employee";
    rs=stmt.executeQuery(sql);
    while(rs.next())
    {
        out.println(rs.getString("EMP_Name"));
    }
   
   }
    catch(SQLException sa)
   {
        out.println("Error loading driver:" + sa.getMessage());   
   }

%>



How to give validation for email id and mobile number using pattern matching in java script

This is html file which checks for proper email id and mobile number using pattern matching in java script.

 <html>  
 <head>  
 <style>  
 .message  
 {  
 border:0px solid black;  
 background-color:orange;  
 height:20px;  
 width:180px;  
 text-align:center;  
 display:none;  
 }  
 .header11  
 {  
 border:0px solid black;  
 background-color:orange;  
 height:20px;  
 width:180px;  
 text-align:center;  
 display:none;  
 }  
 </style>  
 <script>  
 function validation()  
 {  
   var name=document.getElementById("name").value;  
   var email=document.getElementById("email").value;  
   var mono=document.getElementById("mono").value;  
   var add=document.getElementById("add").value;  
   var loc=document.getElementById("loc").value;  
   if(name=="" && email=="" && mono=="" && add=="" && loc=="")  
   {  
           document.getElementById("name").focus();  
     alert("please Fill the information!");  
     return false;  
   }  
      else if(name=="")  
   {  
             document.getElementById("name").value="";  
             document.getElementById("name").focus();  
       alert("please enter name");  
       return false;  
   }  
   else if(!email.match(/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/) || email=="")  
   {  
     alert("please enter Email id");  
           document.getElementById("email").value="";  
     document.getElementById("email").focus();  
     return false;  
   }  
   else if(!mono.match (/^(\+91-|\+91|0|9)?\d{10}$/) || mono=="")  
   {  
     alert("please enter Mobile Number");  
     document.getElementById("mono").value="";  
     document.getElementById("mono").focus();  
     return false;  
   }  
   else if(add.trim()=="")  
   {  
     alert("please enter Address");  
     document.getElementById("add").value="";  
     document.getElementById("add").focus();  
     return false;  
   }  
   else if (!loc.match(/^[a-zA-Z]+$/) || loc=="")  
   {  
     alert("please enter Location");  
     document.getElementById("loc").value="";  
     document.getElementById("loc").focus();  
     return false;  
   }  
   else  
        return true;  
 }  
 </script>  
 </head>  
 <body>  
 <div class="header">  
 <div class="header11" id="demo">All Fields manadatory</div>  
 <form action="connect.jsp" onsubmit="return validation()">  
 <div>Name<input type="text" id="name"></div></div>  
 <div>Email<input type="text" id="email" ></div>  
 <div>Mobile No<input type="text" id="mono"></div>  
 <div>Address<textarea rows="5" cols="20" id="add"></textarea></div>  
 <div>Location<input type="text" id="loc"></div>  
 <input type="submit" value="submit">  
 </form>  
 </div>  
 </body>  
 </html>  

Here we use meta-characters (can have special meanings in patterns--do not match themselves)
 meta-characters are:     \ | ( ) [ ] { } ^ $ * + ? .

 A meta-character is treated as a normal character if it is back-slashed.
 period is a special meta-character which matches any character except newline

In some places we use [],that means we can specify a sequence of characters ex..[abcd]. this exactly matches the specified text.we also specify the range or spans of characters by giving dashes.
ex:[a-z] this matches a character with small letter a to z .
 A caret at the left end of a class definition means the opposite.

    Character class abbreviations

   Abbr.       Equiv. Pattern          Matches

   \d               [0-9]                    a digit
   \D              [^0-9]                  not a digit
   \w           [A-Za-z_0-9]           a word character
   \W          [^A-Za-z_0-9]         not a word character
   \s             [ \r\t\n\f]         a whitespace character
   \S             [^ \r\t\n\f]       not a whitespace character


   Quantifiers

    {n} exactly n repetitions
    {m, n} at least m but not more than n
repetitions


Other quantifiers (just abbreviations for the most commonly used quantifiers)
      * means zero or more repetitions
          e.g., \d* means zero or more digits

      + means one or more repetitions
          e.g.,  \d+ means one or more digits

     ? Means zero or one
          e.g., \d? means zero or one digit

    Anchors

 The pattern can be forced to match only at the
      left end with ^; at the end with $

     e.g.1 (mobile number):
(/^(\+91-|\+91|0|9)?\d{10}$/)
in this example we are checking for the proper mobile number.
we gave the expression inside the / / symbol.So that expression will be compared to check the valid        contact number.
here we have given \ symbol.so that the literal meaning(plus) will be retained.
^ symbol is to check at the starting of the expression.

so here we are checking for +91 at the starting of the expression. The meaning of | symbol is 'or' meaning, if the previous condition doesn't match,it checks with the second pattern.so  /^(\+91-|\+91|0|9) is to check +91 'or' +90. and ? symbol is to check 1 or more occurrence of the previous pattern.and finally \d{10}$/  is for checking 10 digits at the end of the expression.


      e.g.2  (email):
    if(!email.match(/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/) || email=="")

     here we have given caret symbol inside /  /  that means it should check at the starting of the expression.
and also we specified the range..
so ^[_a-z0-9-]+  is to find one or more occurrence of small letter a to z and digits from 0 to 9 at the starting of the expression.

   (\.[_a-z0-9-]+)*  is to literally match the " . "  symbol since its literal meaning is obtained by giving \ symbol and one or more occurrence of alphabets and numeric.  * symbol is to check zero or more occurrence of the pattern.

(\.[a-z]{2,3})$/) and $ at the end of the expression means it checks the pattern at the end of the expression.
here a character should be there at least 2 times but not more than 3 times.

Wednesday, 15 May 2013

How to display pdf file in html page

This is following example will display pdf file using iframe.

 <html>  
      <head>  
           <title>pDf file Display demo</title>  
 </head>  
 <body>  
      <iframe src="TAX.PA.pdf" title="your_title" align="top" height="620" width="100%" frameborder="0" scrolling="auto" target="_self">  
 </body>  
 </html>  

here just you need to give src="pdf file name" then its will display the pdf file name in html page.

Monday, 29 April 2013

How to generate dynamic row and delete that row using add and delete button using jQuery

Hi friends. I am sharing with you that how to generate dynamic row and also delete that dynamic generated row this concept is used when u will developed billing software because in billing software we do not know how many item purchase by customer. So base on customer item we need to generate row or this can be used in the storing contact details of person. Here I giving example for storing contact details of person

For This example we need to include the jQuery.js file.

This GenerateRow.html  file which is generated row and delete row.


 <html>  
 <head>  
 <script src="jquery.js"></script>  
 <script>  
 var k;  
 $(document).ready(function()  
 {  
      k=1;     //for first row  
      $("#rdata").append(showData());  
      $("#add").live('click',function()  
     {  
               k++;        
       $('#rdata').append(showData());  
                $("#counter").val(k);      
     });  
 });  
 function lremove(l)  
 {  
            var lid=l.id;  
            var rowno = lid.match(/\d+$/);  
            if(rowno>1)  //if only one row then i am now allow to remove.if more than then remove that row
             {  
                 $("#line"+rowno).remove();  
             }  
 }  
 function showData()  
 {       
           var str="<table><tr id='line"+k+"'>"  
                     +"<td align='center' width='20'>"  
                          +"<font face='calibri' size='2' color='#'><b>"+k+")</b></font>"  
                     +"</td>"  
                     +"<td align='center' width='150'>"  
                     +"<input type='text' name='name"+k+"' id='name"+k+"' >"  
                     +"</td>"  
                  +"<td align='center' width='80'>"  
                          +"<input type='text' name='number"+k+"' id='number"+k+"' value=''>"  
               +"</td>"  
                  +"<td align='center'>"  
               +"<input type='button' id='add' value='+' height='15' width='15'/></td>"  
                     +"<td><input type='button' value='x' id='remove"+k+"' onclick='lremove(this)' src='Delete.png' height='30' width='30'/></td>"  
                +"</tr></table>";  
       return str;  
 }  
 </script>  
 </head>  
 <body>  
 <table>  
 <caption>Storing Mobile Number</catption>  
 <tr>  
      <td width='70'></td>  
      <td width='140' align='left'>Name</td>  
      <td width='150' align='left'>Mobile Number</td>  
 </tr>  
 </table>  
 <form name="frminfom" action="ConnectRowGenerate.jsp">  
      <div id="rdata">  
      </div>  
      <input type="hidden" value="1" name="counter" id="counter">  
      <input type="submit" value="submit">  
      <input type="reset" value="clear">  
 </form> 
  </body>  
 </html>  

in this above example i used the

$(document).ready(function()
{
   
    code
});
this above function of jQuery which is called after document will be load or after your document will be ready.
inside this i am writing following code.

k=1;   
$("#rdata").append(showData());

k-> variable i used for giving each row unique name.
rdata-> is an div id in which i need to add a row

append(showData())
this append method is used for append content at last in div(rdata).

showData() is an function which it will return the Dynamically generated row so that row i am passing as a parameter of append so its will append to rdata (div tag).
eg.append(showData()).

The ShowData function containt
str="<table><tr id='line"+k+"'>"
.....
return str;

here i used table and i am storing this table into the str variable because i need to return thats why and i assigning the unique row id
like  id='line"+k"'
so this will replace as line1 after u generated second row it will line2 as k variable will increase when you add the new row.


$("#add").live('click',function()
{
});
this function will invokes when user click on the add button
the live() is an method which is providing the fecilities for firing the on click(othere even) event on new generated add button if you will not used live then its add only one row.

Removing row
<input type='button' value='x' id='remove"+k+"' onclick='lremove(this)' src='Delete.png' height='30' width='30'/>


here when user click on remove button i am passing the 'this' object which is reffere the current row remove button object and in function
function lremove(l)
Now here  'this' is an object will replace with 'l' object name and get id from object.
var lid=l.id
now lid will store the id of remove button..e.g remove1,remove2..
var rowno = lid.match(/\d+$/);
this will extract last digits from the string.
e.g remove1 then its will return 1.

$("#line"+rowno).remove();
here line is common when you generating row its one row value containt line1,line2.
so line will same just i need to contacate the number of line and  remove() method is used for remove the specific tag.

How to Read values using jsp file ConnectRowGenerate.jsp when user click on submit button.
code.
 <%  
 int counter=Integer.parseInt(request.getParameter("counter"));  
 for(int i=1;i<=counter;i++)  
 {  
       try  
       {  
        String name=request.getParameter("name"+i);  
        String number=request.getParameter("number"+i);  
    out.println(name + " "+number+"<br>");  
   }  
   catch(Exception e)  
   {  
           continue;  
      }  
 }  
 %>  


Now we will understand above code
counter variable which containt thea number of row add in page.

try and catch block as if user will removed line from middle and we try to read that value which is not available then it will throw exception so for that i am writing code in try and catch block and if it will throw error then its will go in catch block and again its will continue reading with next row or line.

output:
when you open GenerateRow.html its will show like following.




if you click on add button it will add new row.

if you click on delete button it will remove row but here first row its not remove as i am gave validation so now when u click on submit its will call the ConnectRowGenerate.jsp file and its will display the data.
 
You can download above example from  here