Thursday 7 November 2013

How to create a report using Jasper Report in java

Jasper Report is an open source java reporting engine. It is a Java class library, and is not meant for end users, but rather is targeted towards Java developers who need to add reporting capabilities to their applications.

Here i am showing you, how to create a reaport with Jasper Reporting engine in Eclipse.

Requirements 

jdk 1.6
Eclipse IDE

commons-beanutils-1.8.0.jar
commons-collections-2.1.1.jar
commons-digester-2.1.jar
commons-javaflow-20060411.jar
commons-lang-2.1.jar
commons-logging-1.1.1.jar
iText-2.1.7.js2.jar
jasperreports-5.5.0.jar
mysql-connector-java-3.1.7-bin.jar
servlet-api.jar



//-------------------- Save as ReportGenerator.java ----------------------------

package com.ramsis;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Map;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;

public class ReportGenerator {

Connection conn;

public void generateReport() {

try {
//Class.forName("oracle.jdbc.driver.OracleDriver");
//conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system","ABCD");
Class.forName("com.mysql.jdbc.Driver");
//con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","public");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/gts","root","public");
System.out.println("Loading Report Designs");
InputStream input = new FileInputStream(new File("jrxml/EmployeeReport.jrxml"));
JasperDesign jasperDesign = JRXmlLoader.load(input);

System.out.println("Compiling Report Designs");
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);

System.out.println("Creating JasperPrint Object");
Map<String, String> parameters = new HashMap<String, String>();
parameters.put("ReportTitle", "PDF JasperReport");

JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,null,conn);

//Exporting the report
OutputStream output = new FileOutputStream(new File("Report/EmployeeReport4.pdf"));

JasperExportManager.exportReportToPdfStream(jasperPrint, output);

System.out.println("Report Generation Complete");
conn.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (JRException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new ReportGenerator().generateReport();
}

}


//----------------------- Save as EmployeeReport.jrxml ------------------------

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN"
"http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
<jasperReport name="EmployeeReport_aman.kumar">
<queryString>
<![CDATA[select First_Name, Last_Name from employee e]]>
</queryString>
<field name="First_Name" />
<field name="Last_Name" />
<title>
<band height="50">
<staticText>
<reportElement x="0" y="0" width="180" height="15"/>
<textElement/>
<text><![CDATA[Jasper Report - By Java]]></text>
</staticText>
</band>
</title>
<pageHeader>
<band height="30">
<staticText>
<reportElement x="0" y="0" width="69" height="24" />
<textElement verticalAlignment="Bottom" />
<text>
<![CDATA[First Name: ]]>
</text>
</staticText>
<staticText>
<reportElement x="100" y="0" width="79" height="24" />
<text>
<![CDATA[Last Name: ]]>
</text>
</staticText>
</band>
</pageHeader>
<detail>
<band height="30">
<textField>
<reportElement x="0" y="0" width="69" height="24" />
<textFieldExpression>
<![CDATA[$F{First_Name}]]>
</textFieldExpression>
</textField>
<textField>
<reportElement x="100" y="0" width="69" height="24" />
<textFieldExpression>
<![CDATA[$F{Last_Name}]]>
</textFieldExpression>
</textField>
</band>
</detail>
</jasperReport>


Out Put:




//------------------------- Save as HelloJasper.java ---------------------

package com.ramsis;

import java.util.HashMap;
import java.util.Map;

import net.sf.jasperreports.engine.JREmptyDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.view.JasperViewer;

public class HelloJasper {

public static void main(String args[]){

String reportSource = "jrxml/HelloReportWorld.jrxml";
String reportDest = "jrxml/HelloReportWorld.html";



Map <String, Object> params = new HashMap <String, Object>();

//params.put("reportTitle", "Hello Report World");
//params.put("author", "Craig Conover");
//params.put("startDate", (new java.util.Date()).toString());


try
{
JasperReport jasperReport =
JasperCompileManager.compileReport(reportSource);

JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, new JREmptyDataSource());

JasperExportManager.exportReportToHtmlFile(
jasperPrint, reportDest);
JasperViewer.viewReport(jasperPrint);
}

catch (JRException ex)
{
ex.printStackTrace();
}
}

}

//-------------------------- Save as HelloReportWorld.jrxml ------------------



<jasperReport name="HelloReportWorld">

<detail>
<band height="200">
<staticText>
<reportElement mode="Opaque" x="50" y="10" width="500" height="30" />
<text><![CDATA[ ID Name Phone City ]]></text>
</staticText>

<staticText>
<reportElement x="50" y="20" width="500" height="30" />
<text><![CDATA[101 Aman Kumar 997152663 Noida ]]></text>
</staticText>

<staticText>
<reportElement x="50" y="30" width="500" height="30" />
<text><![CDATA[102 Suraj Kumar 929300440 New Delhi ]]></text>
</staticText>

<staticText>
<reportElement x="50" y="40" width="500" height="30" />
<text><![CDATA[102 Pavan Yadav 9293344550 Noida ]]></text>
</staticText>
</band>
</detail>
</jasperReport>


Out Put:



  

Monday 4 November 2013

How to canvert java object into xml file (Vice Versa)

JAXB, stands for Java Architecture for XML Binding, using JAXB annotation we can convert Java object into XML file and Xml file into java object (Vice versa).
No extra jaxb libraries are required if you are using JDK1.6  


For object that need to convert to / from XML file, it have to annotate with JAXB annotation

//---------------- Save as Customer.java ------------------------

package com.ramsiscode.jaxb;

import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;


@XmlRootElement
public class Customer {

int id;
String name;
int age;
String address;
public int getId() {
return id;
}
@XmlElement
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
@XmlElement
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
@XmlElement
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
@XmlElement
public void setAddress(String address) {
this.address = address;
}

}


//-----------------------------------------------------------

JAXB marshalling example, for convert customer object into a XML file

//------------------- save as ConvertXML.java -------------------------



package com.ramsiscode.jaxb;
import java.io.File;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;


public class ConvertXML {

public static void main(String args[]){

Customer customer = new Customer();
customer.setId(101);
customer.setName("Aman");
customer.setAge(28);
customer.setAddress("Noida, Uttar Pradesh India.");

try{

File file = new File("D:\\customer.XML");
JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class);
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
jaxbMarshaller.marshal(customer, file);
jaxbMarshaller.marshal(customer, System.out);

}
catch (Exception ex){

ex.printStackTrace();

}

}

}


//----------------- output -----------------------------------




//------------------------------------------------------------------------------
JAXB unmarshalling example, convert a XML file content into a customer object

//------------------------- save as CustomerXMLRead.java ------------------------

package com.ramsiscode.jaxb;

import java.io.File;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;


public class CustomerXMLRead {

public static void main(String args[]){

try {

File file = new File("D:\\customer.XML");
JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class);

Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
Customer customer = (Customer) jaxbUnmarshaller.unmarshal(file);
System.out.println(customer.getName());
System.out.println(customer.getId());
System.out.println(customer.getAge());
System.out.println(customer.getAddress());


} catch (JAXBException e) {
e.printStackTrace();
}

}

}

 



Monday 28 October 2013

Dynamically Add/Remove Rows In HTML Table Using JavaScript and Jquery




 <link href="Styles/ui-lightness/jquery-ui-1.8.21.custom.css" rel="stylesheet" type="text/css" />
    <script src="Scripts/jquery-1.7.2.min.js" type="text/javascript"></script>
    <script src="Scripts/jquery-ui-1.8.22.custom.min.js" type="text/javascript"></script>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<script> $(document).ready(function(){ function Reset() { //$("#tblpodetail").empty(); $("#rerID").hide(); $("#lblmsg").html(''); //$("#totalamt").html(''); //$("#container tr").remove(); } function valid() { var id = $('.trdelete').attr('id').split('-')[1]; //alert(id); return false; } $("#addanother").click(function(){ $("#rerID").show(); //validateForm(); var count = 0; $("#container tr").each(function () { count++; }); var str='<tr id ="tr-' + count + '" ><td align="center" height="35px">
<select class="degreeclass" name="degree-' + count + '" id="degree-' + count + '"
style="background-color:#F8FCFC; color:#284D4D;"><option>
</option><option value="10th">10th</option><option value="12th">12th</option>
<option value="B.A">B.A</option> <option value="B.SC">B.SC</option>
<option value="B.COM">B.COM</option> <option value="BBA">BBA</option>
<option value="BCA">BCA</option><option value="B.Tech">B.Tech</option>
<option value="M.A">M.A</option> <option value="M.SC">M.SC</option>
<option value="M.COM">M.COM</option> <option value="MBA">MBA</option>
<option value="MCA">MCA</option><option value="M.Tech">M.Tech</option>
</select></td><td align="center" height="35px">
<input style="background-color:#F8FCFC; color:#284D4D;" type="text"
name="year_of_passing-' + count + '" id="year_of_passing-' + count + '" size="5"/>
</td><td><center><a href="#" class="trdelete" id ="delete-' + count + '">delete</a>
</center> </td></tr>';
$("#container").append(str); }); $("#Reset").live('click', function () { $("#btnshow").show(); $("#btndelete").hide(); Reset(); return false; }); $("#submit").live('click', function () { //valid(); validateForm(); return true; }); $(".trdelete").live('click', function () { var id = $(this).attr('id').split('-')[1]; var trid = "#tr-" + id; //alert(trid); $(trid).remove(); return false; }); $("#btndelete").click(function () { if (confirm('Are you sure want to delete This.') === true) { PoDelete($("#txtpoid").val()); } else { return false; } }); $("#btnok").live('click', function () { var count = 0; var itemcode = ''; $(".item").each(function () { if (this.checked === true) { count++; itemcode = $(this).attr('id'); } }); if (count === 0) { //alert('Please select at least one item.'); $("#rerID").append('<p>Please select at least one item.</p>'); Reset(); } else { $(UniversalId).val(itemcode); if (UniversalId === '#txtpoid') { $("#txtpoid").change(); } else { $(".itemcode").change(); } $(".black_overlay").hide(); $("#div-child").hide(); } return false; }); }); </script> <script> function validateForm() { var x=document.forms["eduform"]["degree"].value; if (x==null || x=="") { document.forms["eduform"]["degree"].focus(); document.forms["eduform"]["degree"].style.borderColor='#FF778B'; document.forms["eduform"]["degree"].style.borderWidth='1px'; document.forms["eduform"]["degree"].style.borderStyle='solid'; alert("Qualification must be filled out"); $("#rerID").html('<p style="color:RED;">Qualification must be filled out.</p>'); $( "#degree" ).focus(); return false; } else{ $("#rerID").html(''); } var y=document.forms["eduform"]["year_of_passing"].value; if (y==null || y=="") { document.forms["eduform"]["year_of_passing"].focus(); document.forms["eduform"]["year_of_passing"].style.borderColor='#FF778B'; document.forms["eduform"]["year_of_passing"].style.borderWidth='1px'; document.forms["eduform"]["year_of_passing"].style.borderStyle='solid'; alert("Year Of Passing must be filled out"); $("#rerID").html('<p style="color:RED;">Year Of Passing must be filled out.</p>'); $( "#year_of_passing" ).focus(); return false; } else{ $("#rerID").html(''); } } </script>

<P align="center" style="color:#386B6B;">
<%
if
(request.getParameter("msg")!=null){out.println(request.getParameter("msg"));}
%></p>
<body>
  <div align="center">
  <div style="border:1px solid #386B6B; background-color:#d7eaea; width:800px; height:auto;">
  <div style="background-color:#d7eaea;width:800px;height:60px;padding-top:10px;font-size:35px;color:#386B6B;">Employee Education</div>
  <form action="emp_edu_action.jsp" method="post" name="eduform" id="eduform" onsubmit="return validateForm();">
    <div>
<table id="container" border="1px" cellpadding="0" style="color:#386B6B; width: 800px; border-collapse: collapse;" >
       <tr>
      <td align="center" height="35px"><strong>Qualification:</strong></td>
<td align="center"height="35px"><strong>Year Of Passing:</strong></td>
<td align="center"height="35px"><b>Operation</b></td>
</tr>
<tr><td align="center"height="35px">
<select name="degree" onClick="this.style.borderColor='#333EFF';this.style.borderStyle='solid';this.style.borderWidth='1px'" style="background-color:#F8FCFC;color:#284D4D;">
<option></option>
<option value="B.A">B.A</option>
<option value="B.SC">B.SC</option>
<option value="B.COM">B.COM</option>
<option value="BBA">BBA</option>
<option value="BCA">BCA</option>
<option value="B.Tech">B.Tech</option>
<option value="M.A">M.A</option>
<option value="M.SC">M.SC</option>
<option value="M.COM">M.COM</option>
<option value="MBA">MBA</option>
<option value="MCA">MCA</option>
<option value="M.Tech">M.Tech</option>
</select></td>           
<td align="center"height="35px"><input style="background-color:#F8FCFC; color:#284D4D;" type="text" name="year_of_passing" id="year_of_passing" size="5" onClick="this.style.borderColor='#333EFF';this.style.borderStyle='solid';this.style.borderWidth='1px'"/></td>
   <td align="center"rowspan="auto"height="35px"><input style="background-color:#9DCCCC; color:#284D4D;" type="button" id="addanother" class="addanother" value="add more" onclick="return validateForm();"></td>
</tr>
</table>
<table>
 <tr>
<td id="rerID">  </td>
 </tr>
<tr height="35px">
         <td ><input style="background-color:#9DCCCC; color:#284D4D;width:60px; height:25px;font-size:15px;"" type="submit" value="Submit" id="submit" name="submit"/>
<input style="background-color:#9DCCCC; color:#284D4D;width:60px; height:25px;font-size:15px;"" type="reset" value="Reset" id="Reset" name="Reset"/>
</td>
</tr>
</table>
  </div>
  </form>
  </div>
  </div>
</body>
</html>

Thursday 10 October 2013

How to convert and download HTML Format into ( MS_Excel, Excel , Xls) Formats in jsp


In this code i am showing you, How to convert any HTML or jsp code into ( MS_Excel, Excel , Xls) formats,
and also you can download same format in to Excel , xls. It is very usefull when you will generating a report with download feature in excel format.

 

//---------------------- Save As "GetExcel.jsp" -------------------//

<table width="60%" cellpadding="5px;" align="center" border="1" style="border-color: RED;"  class="textn">
  <tbody bgcolor="#ffdebf">
   <tr>
 <td colspan="3"><strong>Convert HTML code in to Excel format and also download it </strong></td>
   <br/>
   </tr>
  </tbody>
  </table>

<table width="60%" align="center" border="1" style="border-collapse: collapse; border-color: #df6e00;" bordercolor="#111111" class="textn">
 
  <th style="">Emp Name</th>  
 <th>Emp ID</th>
    <th>Mobile</th>
    <th>City</th>
<tr>
  <td>
      <center>Aman Kumar</center> 
</td>
<td>
      <center>1099</center> 
</td>
<td>
      <center>9918299393</center> 
</td>
<td>
      <center>Noida</center> 
</td> 
  </tr>
<tr>
  <td>
      <center>Nitin Kumar</center> 
</td>
<td>
      <center>1233</center> 
</td>
<td>
      <center>956829937</center> 
</td>
<td>
      <center>Ghaziabad</center> 
</td> 
  </tr>
<tr>
  <td>
      <center>Brijesh Bhagat</center> 
</td>
<td>
      <center>1405</center> 
</td>
<td>
      <center>9338299345</center> 
</td>
<td>
      <center>Lucknow</center> 
</td> 
  </tr>
<tr>
  <td>
      <center>Suraj Kumar</center> 
</td>
<td>
      <center>2035</center> 
</td>
<td>
      <center>9938244340</center> 
</td>
<td>
      <center>New Delhi</center> 
</td> 
  </tr>

</table>

<P align="center"><a href="DownloadExcel.jsp" style="color:Blue;">Download Excel</a></P>



//---------------------- Save As "DownloadExcel.jsp" -------------------//


 <%   
     response.setHeader("Content-Disposition","attachment;filename=Report.xls");   
     response.setContentType("application/vnd.excel");  
 %> 

<table width="60%" align="center" border="1" style="border-collapse: collapse" bordercolor="#111111" class="textn">
<tr>
  
<td colspan="3"><strong>Download Report:</strong></td>
<br/>
</tr>

</table>

<table width="60%" align="center" border="1" style="border-collapse: collapse" bordercolor="#111111" class="textn">
 
  <th style="">Emp Name</th>  
 <th>Emp ID</th>
    <th>Mobile</th>
    <th>City</th>
<tr>
  <td>
      <center>Aman Kumar</center> 
</td>
<td>
      <center>1099</center> 
</td>
<td>
      <center>9918299393</center> 
</td>
<td>
      <center>Noida</center> 
</td> 
  </tr>
<tr>
  <td>
      <center>Nitin Kumar</center> 
</td>
<td>
      <center>1233</center> 
</td>
<td>
      <center>956829937</center> 
</td>
<td>
      <center>Ghaziabad</center> 
</td> 
  </tr>
<tr>
  <td>
      <center>Brijesh Bhagat</center> 
</td>
<td>
      <center>1405</center> 
</td>
<td>
      <center>9338299345</center> 
</td>
<td>
      <center>Lucknow</center> 
</td> 
  </tr>
<tr>
  <td>
      <center>Suraj Kumar</center> 
</td>
<td>
      <center>2035</center> 
</td>
<td>
      <center>9938244340</center> 
</td>
<td>
      <center>New Delhi</center> 
</td> 
  </tr>
</table>

Tuesday 24 September 2013

How to validate username and password from database in jsp



<!-- login.jsp -->

<Body>
<form action="loginAction.jsp" method="GET" name="login" >
<table border="1" style="border-collapse:collapse;" cellpadding="5px">
  <tr>
    <td>
      <Strong>User Name:</strong>
    <input type="text" name="username" id="username" size="30" maxlength="50" />
   </td>
 </tr>
  <tr>
    <td>
      <Strong>Password:&nbsp;&nbsp;&nbsp;</strong>
    <input type="password" name="password" id="password" size="30"  maxlength="50" />
   </td>
 </tr>
  <tr>
    <td>
      <input type="submit" id="submit" name="submit"  value="Submit"></input>
    <input type="reset" id="reset" name="reset" value="Reset"></input>
   </td>
 </tr>
</table>
</form>
</Body>

// ------------------------------------------------------------------------------------------------

<!-- loginAction.jsp -->

<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.io.*"%>
<%@ page import="java.text.*"%>

<%
Statement st=null;
Connection con=null;
ResultSet rs=null;

 
   // JDBC driver name and database URL
     final String DB_URL  = "jdbc:mysql://127.0.0.1:3306/test";
//  Database credentials
      final String DB_USER = "root";
      final String DB_PASS = "public";
String user = request.getParameter("username");
String pass = request.getParameter("password");

try{
 
Class.forName("com.mysql.jdbc.Driver").newInstance();
con = DriverManager.getConnection(DB_URL,DB_USER,DB_PASS);
st = con.createStatement();

String QueryString = "select username,pass from auth where username='"+user+"' and pass = '"+pass+"'";
rs = st.executeQuery(QueryString);
if(rs.next()){
out.print("Login Successfully."); 
}
else
out.print("User Name and password are not Valid..");
}
catch (Exception e){
  out.print(e);
}
finally{
st.close();
rs.close();
con.close();
}
%>

Friday 13 September 2013

How to calculate text length of Textarea in Jquery




<script type="text/javascript" src="js/jquery-1.8.0.js"></script>
<script type="text/javascript">
$(document).ready(function(){

var TotalLength = 50;

$("#txt-imgdisc").keyup(function(evt){
  var charCode = (evt.which) ? evt.which : event.keyCode;

var textlength = $(this).val().length;
if(textlength > TotalLength)
{
if(charCode === 8)
{
return true;
}
return false;
}
$("#spresult").text(TotalLength-textlength);

});
$("#txt-imgdisc").keydown(function(evt){
  var charCode = (evt.which) ? evt.which : event.keyCode;
var textlength = $(this).val().length;
if(textlength > TotalLength)
{
if(charCode === 8)
{
return true;
}
return false;
}
  $("#spresult").text(TotalLength-textlength);
  });
});
 </script>
<p style="color:red; font-weight:bold;">Enter Text Less then 50</p> <textarea id="txt-imgdisc" name="imgdisc" rows="5" cols="30" class="required require" maxlength="400" validate="Please enter the image discription."></textarea>
 <span id ="spresult" style="color:green; font-weight:bold;" >50</span>


Tuesday 10 September 2013

How to send MD5 encrypted password to Server in jsp

The MD5 Message-Digest Algorithm is a widely used cryptographic hash function that produces a 128-bit (16-byte) hash value.

Below this image i am showing you. How to send md5 hash Encrypted data to Server. You can also use other Hash Algorithms like ( SHA, SHA1, SHA256, SHA512 )

It is very necessary to encrypt the data. When you are sending data throw URL.


          
<script type="text/javascript">

/**
*  MD5 (Message-Digest Algorithm)
**/

function md5(string) {
  function RotateLeft(lValue, iShiftBits) {
    return (lValue<<iShiftBits) | (lValue>>>(32-iShiftBits));
  }

  function AddUnsigned(lX,lY) {
    var lX4,lY4,lX8,lY8,lResult;
    lX8 = (lX & 0x80000000);
    lY8 = (lY & 0x80000000);
    lX4 = (lX & 0x40000000);
    lY4 = (lY & 0x40000000);
    lResult = (lX & 0x3FFFFFFF)+(lY & 0x3FFFFFFF);
    if (lX4 & lY4) {
      return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
    }
    if (lX4 | lY4) {
      if (lResult & 0x40000000) {
        return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);
      } else {
        return (lResult ^ 0x40000000 ^ lX8 ^ lY8);
      }
    } else {
      return (lResult ^ lX8 ^ lY8);
    }
   }

   function F(x,y,z) { return (x & y) | ((~x) & z); }
   function G(x,y,z) { return (x & z) | (y & (~z)); }
   function H(x,y,z) { return (x ^ y ^ z); }
  function I(x,y,z) { return (y ^ (x | (~z))); }
  function FF(a,b,c,d,x,s,ac) {
    a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));
    return AddUnsigned(RotateLeft(a, s), b);
  };

  function GG(a,b,c,d,x,s,ac) {
    a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));
    return AddUnsigned(RotateLeft(a, s), b);
  };

  function HH(a,b,c,d,x,s,ac) {
    a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));
    return AddUnsigned(RotateLeft(a, s), b);
  };

  function II(a,b,c,d,x,s,ac) {
    a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac));
    return AddUnsigned(RotateLeft(a, s), b);
  };

  function ConvertToWordArray(string) {
    var lWordCount;
    var lMessageLength = string.length;
    var lNumberOfWords_temp1=lMessageLength + 8;
    var lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1 % 64))/64;
    var lNumberOfWords = (lNumberOfWords_temp2+1)*16;
    var lWordArray=Array(lNumberOfWords-1);
    var lBytePosition = 0;
    var lByteCount = 0;
    while ( lByteCount < lMessageLength ) {
      lWordCount = (lByteCount-(lByteCount % 4))/4;
      lBytePosition = (lByteCount % 4)*8;
      lWordArray[lWordCount] = (lWordArray[lWordCount] | (string.charCodeAt(lByteCount)<<lBytePosition));
      lByteCount++;
    }
    lWordCount = (lByteCount-(lByteCount % 4))/4;
    lBytePosition = (lByteCount % 4)*8;
    lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80<<lBytePosition);
    lWordArray[lNumberOfWords-2] = lMessageLength<<3;
    lWordArray[lNumberOfWords-1] = lMessageLength>>>29;
    return lWordArray;
  };

  function WordToHex(lValue) {
    var WordToHexValue="",WordToHexValue_temp="",lByte,lCount;
    for (lCount = 0;lCount<=3;lCount++) {
      lByte = (lValue>>>(lCount*8)) & 255;
      WordToHexValue_temp = "0" + lByte.toString(16);
      WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length-2,2);
    }
    return WordToHexValue;
  };

  function Utf8Encode(string) {
    string = string.replace(/\r\n/g,"\n");
    var utftext = "";

    for (var n = 0; n < string.length; n++) {
      var c = string.charCodeAt(n);

      if (c < 128) {
        utftext += String.fromCharCode(c);
      }
      else if((c > 127) && (c < 2048)) {
        utftext += String.fromCharCode((c >> 6) | 192);
        utftext += String.fromCharCode((c & 63) | 128);
      }
      else {
        utftext += String.fromCharCode((c >> 12) | 224);
        utftext += String.fromCharCode(((c >> 6) & 63) | 128);
        utftext += String.fromCharCode((c & 63) | 128);
      }
    }

    return utftext;
  };

  var x=Array();
  var k,AA,BB,CC,DD,a,b,c,d;
  var S11=7, S12=12, S13=17, S14=22;
  var S21=5, S22=9 , S23=14, S24=20;
  var S31=4, S32=11, S33=16, S34=23;
  var S41=6, S42=10, S43=15, S44=21;

  string = Utf8Encode(string);

  x = ConvertToWordArray(string);

  a = 0x67452301; b = 0xEFCDAB89; c = 0x98BADCFE; d = 0x10325476;

  for (k=0;k<x.length;k+=16) {
    AA=a; BB=b; CC=c; DD=d;
    a=FF(a,b,c,d,x[k+0], S11,0xD76AA478);
    d=FF(d,a,b,c,x[k+1], S12,0xE8C7B756);
    c=FF(c,d,a,b,x[k+2], S13,0x242070DB);
    b=FF(b,c,d,a,x[k+3], S14,0xC1BDCEEE);
    a=FF(a,b,c,d,x[k+4], S11,0xF57C0FAF);
    d=FF(d,a,b,c,x[k+5], S12,0x4787C62A);
    c=FF(c,d,a,b,x[k+6], S13,0xA8304613);
    b=FF(b,c,d,a,x[k+7], S14,0xFD469501);
    a=FF(a,b,c,d,x[k+8], S11,0x698098D8);
    d=FF(d,a,b,c,x[k+9], S12,0x8B44F7AF);
    c=FF(c,d,a,b,x[k+10],S13,0xFFFF5BB1);
    b=FF(b,c,d,a,x[k+11],S14,0x895CD7BE);
    a=FF(a,b,c,d,x[k+12],S11,0x6B901122);
    d=FF(d,a,b,c,x[k+13],S12,0xFD987193);
    c=FF(c,d,a,b,x[k+14],S13,0xA679438E);
    b=FF(b,c,d,a,x[k+15],S14,0x49B40821);
    a=GG(a,b,c,d,x[k+1], S21,0xF61E2562);
    d=GG(d,a,b,c,x[k+6], S22,0xC040B340);
    c=GG(c,d,a,b,x[k+11],S23,0x265E5A51);
    b=GG(b,c,d,a,x[k+0], S24,0xE9B6C7AA);
    a=GG(a,b,c,d,x[k+5], S21,0xD62F105D);
    d=GG(d,a,b,c,x[k+10],S22,0x2441453);
    c=GG(c,d,a,b,x[k+15],S23,0xD8A1E681);
    b=GG(b,c,d,a,x[k+4], S24,0xE7D3FBC8);
    a=GG(a,b,c,d,x[k+9], S21,0x21E1CDE6);
    d=GG(d,a,b,c,x[k+14],S22,0xC33707D6);
    c=GG(c,d,a,b,x[k+3], S23,0xF4D50D87);
    b=GG(b,c,d,a,x[k+8], S24,0x455A14ED);
    a=GG(a,b,c,d,x[k+13],S21,0xA9E3E905);
    d=GG(d,a,b,c,x[k+2], S22,0xFCEFA3F8);
    c=GG(c,d,a,b,x[k+7], S23,0x676F02D9);
    b=GG(b,c,d,a,x[k+12],S24,0x8D2A4C8A);
    a=HH(a,b,c,d,x[k+5], S31,0xFFFA3942);
    d=HH(d,a,b,c,x[k+8], S32,0x8771F681);
    c=HH(c,d,a,b,x[k+11],S33,0x6D9D6122);
    b=HH(b,c,d,a,x[k+14],S34,0xFDE5380C);
    a=HH(a,b,c,d,x[k+1], S31,0xA4BEEA44);
    d=HH(d,a,b,c,x[k+4], S32,0x4BDECFA9);
    c=HH(c,d,a,b,x[k+7], S33,0xF6BB4B60);
    b=HH(b,c,d,a,x[k+10],S34,0xBEBFBC70);
    a=HH(a,b,c,d,x[k+13],S31,0x289B7EC6);
    d=HH(d,a,b,c,x[k+0], S32,0xEAA127FA);
    c=HH(c,d,a,b,x[k+3], S33,0xD4EF3085);
    b=HH(b,c,d,a,x[k+6], S34,0x4881D05);
    a=HH(a,b,c,d,x[k+9], S31,0xD9D4D039);
    d=HH(d,a,b,c,x[k+12],S32,0xE6DB99E5);
    c=HH(c,d,a,b,x[k+15],S33,0x1FA27CF8);
    b=HH(b,c,d,a,x[k+2], S34,0xC4AC5665);
    a=II(a,b,c,d,x[k+0], S41,0xF4292244);
    d=II(d,a,b,c,x[k+7], S42,0x432AFF97);
    c=II(c,d,a,b,x[k+14],S43,0xAB9423A7);
    b=II(b,c,d,a,x[k+5], S44,0xFC93A039);
    a=II(a,b,c,d,x[k+12],S41,0x655B59C3);
    d=II(d,a,b,c,x[k+3], S42,0x8F0CCC92);
    c=II(c,d,a,b,x[k+10],S43,0xFFEFF47D);
    b=II(b,c,d,a,x[k+1], S44,0x85845DD1);
    a=II(a,b,c,d,x[k+8], S41,0x6FA87E4F);
    d=II(d,a,b,c,x[k+15],S42,0xFE2CE6E0);
    c=II(c,d,a,b,x[k+6], S43,0xA3014314);
    b=II(b,c,d,a,x[k+13],S44,0x4E0811A1);
    a=II(a,b,c,d,x[k+4], S41,0xF7537E82);
    d=II(d,a,b,c,x[k+11],S42,0xBD3AF235);
    c=II(c,d,a,b,x[k+2], S43,0x2AD7D2BB);
    b=II(b,c,d,a,x[k+9], S44,0xEB86D391);
    a=AddUnsigned(a,AA);
    b=AddUnsigned(b,BB);
    c=AddUnsigned(c,CC);
    d=AddUnsigned(d,DD);
  }

  var temp = WordToHex(a)+WordToHex(b)+WordToHex(c)+WordToHex(d);

  return temp.toLowerCase();
}

</script>


<script language="JavaScript">
function chk()
{

if(document.login.username.value=="")
{
alert("Please Enter Login name! ");
document.login.username.focus();
return false;
}
if(document.login.password.value=="")
{
alert("Please Enter Password ! ");
document.login.password.select();
return false;
}
  // encrypts data in md5 hash
  document.login.password.value = md5(document.login.password.value); 
}
</script>

<%
String user = request.getParameter("username");
String ecryptPass = request.getParameter("password");
%>

<Body>
<form action="md5-Submit.jsp" method="GET" name="login" onsubmit="return chk();" >
<table border="1" style="border-collapse:collapse;" cellpadding="5px">
  <tr>
  <td>
   <Strong>User Name:</strong>
<input type="text" name="username" id="username" size="30" maxlength="50" />
</td>
</tr>
<tr>
  <td>
   <Strong>Password:&nbsp;&nbsp;&nbsp;</strong>
<input type="password" name="password" id="password" size="30" autocomplete="true"  maxlength="50" />
</td>
</tr>
<tr>
  <td>
   <input type="submit" id="submit" name="submit"  value="Submit"></input>
<input type="reset" id="reset" name="reset" value="Reset"></input>
</td>
</tr>
</table>
</form>
 <p>User Name is: <b><%=user%></b></p>
<p>Encrypted password: <b><%=ecryptPass%></b></p>
</Body>