Saturday, November 15, 2014

Uploading Image in jsp, java, Netbeans

i had spent a lot of time for uploading an image in jsp page.so to help you guys i am writing this blog.
the way to upload the desired image is as below(neteans project)

1. Put the image file in web folder(where all the web pages are placed.)
2. Wright the code

<%String s=request.getContextPath() + "/abc.JPG";%>
<img src="<%=s%>" width = "500" hight = "600" aligh = "center" />

3. Mention the extensions of image carefully i.e(.jpeg, jpg are not treated as same)

for any other query keep posting.
Good Luck!!!

Monday, November 10, 2014

Create and display dynamic Chart in JSP using Database inputs(jFreeChart Library)


   
  <% // JSP code that generates chart of database(Time-Speed  which was my application requirement) and //returns chart image whenever called  %>

<%// required packages  %>
<%@ page import="java.awt.Image" %>
<%@ page import="java.awt.*"%>
<%@ page import="java.text.SimpleDateFormat"%>
<%@ page import="java.awt.BasicStroke"%>
<%@ page import ="org.jfree.ui.ApplicationFrame"%>
<%@ page import="java.io.*" %>
<%@ page import="java.io.File"%>
<%@ page import="org.jfree.chart.*" %>
<%@ page import="org.jfree.chart.axis.*" %>
<%@ page import="org.jfree.chart.entity.*" %>
<%@ page import="org.jfree.chart.labels.*" %>
<%@ page import="org.jfree.chart.plot.*" %>
<%@ page import="org.jfree.chart.renderer.category.*" %>
<%@ page import="org.jfree.chart.urls.*" %>
<%@ page import="org.jfree.data.category.*" %>
<%@ page import="org.jfree.data.general.*" %>
<%@ page import="org.jfree.data.time.Minute"%>
<%@ page import="org.jfree.data.time.Hour"%>
<%@ page import="org.jfree.data.time.TimeSeries"%>
<%@ page import="org.jfree.data.time.TimeSeriesCollection"%>
<%@ page import="org.jfree.data.xy.XYDataset"%>
<%@ page import="org.jfree.chart.plot.XYPlot"%>
<%@ page import="org.jfree.chart.renderer.xy.StandardXYItemRenderer"%>
<%@ page import="org.jfree.chart.renderer.xy.XYItemRenderer"%>
 <%@ page import=  "java.sql.Connection" %>
<%@ page import  ="java.sql.DriverManager" %>
<%@ page import = "java.sql.SQLException" %>
<%@ page import = "java.sql.PreparedStatement" %>
<%@ page import = "java.sql.ResultSet" %>
<%@ page import = "java.sql.Statement" %>
 <%@ page import=  "javax.servlet.*" %>
<%@ page import  ="javax.servlet.http.*" %>

<%@ page import="java.awt.image.BufferedImage"%>
<%
 try
 {
 File image = File.createTempFile("image", "tmp");

 //chart class instance
Fms fm = new Fms("Graph");

JFreeChart chart = fm.createChart(fm.dataset);
 ChartUtilities.saveChartAsPNG(image, chart, 500, 400);
//get input stream
 FileInputStream fileInStream = new FileInputStream(image);
//output stream foe returning chart as image
 OutputStream outStream = response.getOutputStream();
 long fileLength;
 byte[] byteStream;
 fileLength = image.length();
 byteStream = new byte[(int)fileLength];
//read chart image
 fileInStream.read(byteStream, 0, (int)fileLength);
//returns chart image whenever called
 response.setContentType("image/png");
 response.setContentLength((int)fileLength);
 response.setHeader("Cache-Control","no-store,no-cache, must-revalidate, post-check=0, pre-check=0");
 response.setHeader("Pragma", "no-cache");
 fileInStream.close();
 outStream.write(byteStream);
 outStream.flush();
 outStream.close();
 }
 catch (IOException e)
 {
 System.err.println("Problem occurred creating chart.");
 }
%>
<%! public class Fms extends ApplicationFrame {  
//Main class
   XYDataset dataset= null;
   public Fms(final String title) {
        super(title);
      dataset= createDataset();
        final JFreeChart chart = createChart(dataset);
        final ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new java.awt.Dimension(700, 570));
        chartPanel.setMouseZoomable(true, false);
        setContentPane(chartPanel);
    }
//chart creation method
   JFreeChart createChart(final XYDataset dataset) {
        final JFreeChart chart = ChartFactory.createTimeSeriesChart(
            "Speed Chart",
            "Time",
            "Speed",
            dataset,
            true,
            true,
            false
        );
        chart.setBackgroundPaint(Color.white);
       final XYPlot plot = chart.getXYPlot();
        plot.setBackgroundPaint(Color.lightGray);
        plot.setDomainGridlinePaint(Color.white);
        plot.setRangeGridlinePaint(Color.white);
        plot.setDomainCrosshairVisible(true);
        plot.setRangeCrosshairVisible(false);
        final XYItemRenderer renderer = plot.getRenderer();
        if (renderer instanceof StandardXYItemRenderer) {
            final StandardXYItemRenderer rr = (StandardXYItemRenderer) renderer;
            rr.setShapesFilled(true);
            renderer.setSeriesStroke(0, new BasicStroke(1.0f));
            renderer.setSeriesStroke(1, new BasicStroke(1.0f));
           }      
        final DateAxis axis = (DateAxis) plot.getDomainAxis();
        axis.setDateFormatOverride(new SimpleDateFormat("dd:MM"));
        try{
        final ChartRenderingInfo info = new ChartRenderingInfo
(new StandardEntityCollection());
final File file1 = new File("c:/Documents and Settings/accounts/WebApplication2/web/barchart.png");
ChartUtilities.saveChartAsPNG(file1, chart, 600, 400, info);
        }catch(Exception e){}
        return chart;
    }  
//data set generation method
    private XYDataset createDataset() {
        final TimeSeriesCollection dataset = new TimeSeriesCollection();
        dataset.setDomainIsPointsInTime(true);      
        final TimeSeries s1 = new TimeSeries("Series 1", Minute.class);
         int str = 0;
         int i =0,j= 0 ;
         String str1 = null;
        try{            
      Class.forName("sun.jdbc.odbc.JdbcOdbc");
      Connection con=DriverManager.getConnection("jdbc:odbc:FMSDB",null,null);
      PreparedStatement st;  
      Statement stmt = con.createStatement();
      String query = "Select * from Job_Status";
      stmt.executeQuery(query);
       ResultSet rs = stmt.executeQuery(query);      
           while( rs.next() )
        {                
         str1= rs.getString("Time");
         String sa = str1.substring(11,13);
         String ha = str1.substring(14,16);
        str= rs.getInt("Speed");
        j=Integer.parseInt(sa);
        i=Integer.parseInt(ha);
        String date = rs.getString("Date");
        String y = date.substring(0,4);
         String m = date.substring(5,7);
          String d = date.substring(8,10);
         s1.add(new Minute(i, j, Integer.parseInt(d), Integer.parseInt(m), Integer.parseInt(y)), str);
          }
          }
          catch(Exception e)
          {            
          }
         System.out.println(str1.substring(11,13));
          System.out.println(str1.substring(14,16)+"\t"+str1);                
        dataset.addSeries(s1);  
        return dataset;
    }
    }
%>



HTML Code for calling this JSP file
exp.jsp is the name of above jsp code file in my application
<html>
<body>
<img src="exp.jsp" alt="Progress chart" />
</body>
</html>

Note: To implement this code you will need jFreeChart Library from jFree Org.

Tuesday, November 4, 2014

Reading Data from comm port in Java

//this code first write 0x80 to comm port then it reads 0x32 from comm port and then sends 6 more bytes and  //to terminate the packet it receives  0x70 form comm port.
import java.io.*;
import java.util.*;
import javax.comm.*;
import java.sql.Connection;
import  java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

public class Fms implements Runnable{ 
    static Enumeration portList;
    static CommPortIdentifier portId;
    static SerialPort serialPort;
    static OutputStream outputStream;
    static InputStream inputStream;
    static Thread readThread,dataBase;
    static int crf;
    static int cwf;
    static byte cxc[] = new byte[4];
    static int cxm = 128;//0x80
    static byte[] creadBuffer;//1byte read
    static int creadBuff[]; 
    write rt=new write();
    static read rd;   
     public void run() {
     };
    public static void main(String[] args) {
        int a=10;
        write wr = new write();
        read rd = new read(1);
         int b = 0;
        int speed=0,tcount=0,jcount=0,status=0;
      while(b!=10){      
       for(int j =0 ; j<=1;j++){
            try{
        wr.cwritemain(a); 
         rd.cmainx(a);          
         readThread.sleep(1000);
            }
            catch(Exception e){}
            if(j==0){
                status =creadBuff[1];
                jcount =creadBuff[5];
          System.out.println("results : "+status +"\t"+jcount); 
            }
            if(j==1){
                speed =creadBuff[1]*256+creadBuff[2];//to convert received data in decimal
                tcount =creadBuff[6];
          System.out.println("results : "+speed +"\t"+tcount); 
            }
             }    
    }            
       }
 static class write{        
         public void cwritemain(int m)
{       
             cwf = m;
             cxc[0] = 0x26;
             portList = CommPortIdentifier.getPortIdentifiers();
             System.out.println(portList.hasMoreElements());
while (portList.hasMoreElements()) {                                   
                                        portId = (CommPortIdentifier) portList.nextElement();
                                        if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
                                    
if (portId.getName().equals("COM1"))
{                                  
try {
serialPort = (SerialPort) portId.open("SimpleWriteApp32", 2000);
                                                  } catch (PortInUseException e) {
}
try {
outputStream = serialPort.getOutputStream();

} catch (Exception e) {
}
try {
serialPort.setSerialPortParams(9600,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
} catch (Exception e) {
}
                                               if(cwf==10){
try {
outputStream.write(cxm);// 0x80 written
serialPort.close();
                                                                outputStream.close();
} catch (Exception e) {
}
                                               }
                                        }
                                }
                        }
         }        
    }   
   static class read implements SerialPortEventListener{
      public read(int s) {}
      public void cmainx(int cp) {
crf = 10;
portList = CommPortIdentifier.getPortIdentifiers();
while (portList.hasMoreElements()) {
portId = (CommPortIdentifier) portList.nextElement();
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
if (portId.getName().equals("COM1")) {
try {
                                                    serialPort = (SerialPort) portId.open("readapp32",
2000);
} catch (PortInUseException e) {
System.out.println(e.getMessage());
}
try {
inputStream = serialPort.getInputStream();
} catch (Exception e) {
System.out.println(e);
}
try {
serialPort.addEventListener(this);
} catch (Exception e) {
System.out.println(e);
}
serialPort.notifyOnDataAvailable(true);
try {
serialPort.setSerialPortParams(9600,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);                                                
} catch (Exception e) {
System.out.println(e);
}
}
}
}                       
}
        public void serialEvent(SerialPortEvent event) {            
            switch (event.getEventType()) {
case SerialPortEvent.DATA_AVAILABLE:
creadBuffer = new byte[8];
                                creadBuff= new int[8];
try {
                                   int i = 0;                               
while (inputStream.available() > 0) { 
                                          creadBuff[i]=inputStream.read();
                                          System.out.println("Data available is: "+creadBuff[i]);                                                  
                                               i++;
}
                                      inputStream.close();
} catch (IOException e) {
}
                                System.out.println("event");
System.out.println("recieved \t"+creadBuffer[0] );
if (creadBuffer[0] == 0x70) {
                                    System.out.println("Got 0x70"+creadBuffer[0] );
serialPort.close();
rd = new read(5);
rd.cmainx(1);// ag
                                }
                                if (creadBuffer[0] == 0x32) {
                                    System.out.println("Got"+creadBuffer[0] );
serialPort.close();                                
                                }
                                serialPort.close();
            }
        }
   }  
   }

Tuesday, May 29, 2012

Datagram Client in Java

// Datagram Client or UDP client
// purpose of this example is to provide a fare idea about the working of UDP client server
// this client example works with server example and link to server example is given at the end of this code
// example works on the concept of UDP protocol (simple transmission model without implicit handshaking)

import java.io.*;
import java.net.*;

public class Client {
   
    public static void main(String[] args) {
     
      DatagramSocket clientSkt = null;
      InetAddress IPAdd = null;
      String text =null;
      DatagramPacket receivePkt= null;
      BufferedReader inFromUser =
         new BufferedReader(new InputStreamReader(System.in));
      try{
      clientSkt = new DatagramSocket();
      IPAdd = InetAddress.getByName("localhost");
      }
      catch(SocketException exp){
          System.out.println(exp);
      }
      catch(UnknownHostException exp){
          System.out.println(exp);
      }     
      byte[] sendData = new byte[1024];
      byte[] receiveData = new byte[1024];
      try{
      text = inFromUser.readLine();
      sendData = text.getBytes();
      DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAdd, 3030);
      clientSkt.send(sendPacket);
      receivePkt = new DatagramPacket(receiveData, receiveData.length);
      clientSkt.receive(receivePkt);
      }
      catch(IOException exp){
          System.out.println(exp);
      }
      String modifiedSentence = new String(receivePkt.getData());
      System.out.println("FROM SERVER:" + modifiedSentence);
      clientSkt.close();
    }
}

Datagram Server Source

Datagram Server in Java

// Datagram Server or UDP server
// purpose of this example is to provide a fare idea about the working of UDP client server
// this server example works with client example and link to the client example is given at the end of this code
// example works on the concept of UDP protocol (simple transmission model without implicit handshaking)


import java.io.*;
import java.net.*;

public class Server {

  
    public static void main(String[] args) {
       
        DatagramSocket serverSkt= null;
        try{
            serverSkt = new DatagramSocket(3030);
        }
        catch(SocketException exp)
        {
            System.out.println(exp);
        }
        byte[] receiveData = new byte[1024];
        byte[] sendData = new byte[1024];
        while(true)
          {
            DatagramPacket receivePkt = new DatagramPacket(receiveData, receiveData.length);
            try{
                serverSkt.receive(receivePkt);
            }
            catch(IOException exp)
            {
                System.out.println(exp);
            }
            String sentence = new String( receivePkt.getData());
            System.out.println("RECEIVED: " + sentence);
            InetAddress IPAddress = receivePkt.getAddress();
            int port = receivePkt.getPort();
            String capitalizedSentence = sentence.toUpperCase();
            sendData = capitalizedSentence.getBytes();
            DatagramPacket sendPkt =
            new DatagramPacket(sendData, sendData.length, IPAddress, port);
            try{
            serverSkt.send(sendPkt);
            }
            catch(IOException exp)
            {
                System.out.println(exp);
            }  
        }
      }
       
    }

Datagram Client Source

Friday, February 10, 2012

Get Your PC's IP Address in Java

//this example returns IP address of your PC

import java.net.*;

public class tellMyIP {

public static void main(String[] args) {
 InetAddress localHostIP= null;
   //creates instance of InetAddress
  try{
  localHostIP=InetAddress.getLocalHost();
  //initializes localHostIP
  System.out.println("IP ADDRESS OF MY PC IS = "+localHostIP.getHostAddress());
  //gets IP address and prints it
  }catch (Exception exception){
  System.out.println("Something that went wrong is :"+exception.getMessage());
  }
   }
}

Wednesday, March 30, 2011

Send email in Java with attachment

//javax.mail API is required to work with this code
//send email in Java from Gmail account with attachments

import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

public class MailWithAttachment
{
public static void main(String args[]) throws Exception
{
    String host = "smtp.gmail.com";//host name
    String from = "abc@gmail.com";//sender id
    String to = "xyz@yahoo.com";//reciever id
    String pass = "***";//sender's password
    String fileAttachment = "test.txt";//file name for attachment
    //system properties
    Properties prop = System.getProperties();
    // Setup mail server properties
    prop.put("mail.smtp.gmail", host);
    prop.put("mail.smtp.starttls.enable", "true");
    prop.put("mail.smtp.host", host);
    prop.put("mail.smtp.user", from);
    prop.put("mail.smtp.password", pass);
    prop.put("mail.smtp.port", "587");
    prop.put("mail.smtp.auth", "true");
    //session
    Session session = Session.getInstance(prop, null);
    // Define message
    MimeMessage message = new MimeMessage(session);
    message.setFrom(new InternetAddress(from));
    message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
    message.setSubject("Hello Java Mail Attachment");
    // create the message part
    MimeBodyPart messageBodyPart = new MimeBodyPart();
    //message body
    messageBodyPart.setText("Hi");
    Multipart multipart = new MimeMultipart();
    multipart.addBodyPart(messageBodyPart);
    //attachment
    messageBodyPart = new MimeBodyPart();
    DataSource source = new FileDataSource(fileAttachment);
    messageBodyPart.setDataHandler(new DataHandler(source));
    messageBodyPart.setFileName(fileAttachment);
    multipart.addBodyPart(messageBodyPart);
    message.setContent(multipart);
    //send message to reciever
    Transport transport = session.getTransport("smtp");
    transport.connect(host, from, pass);
    transport.sendMessage(message, message.getAllRecipients());
    transport.close();
}
}