JSP Example2
JSP Example2
The most important use of JSP is that we can use all the method available in core java.
The Date class is available in java.util package.
Below program shows how to print the current date and time. We can use simple Date
object with toString() to print current date and time.
test.jsp
<html>
<head><title>JSPApp</title></head>
<body>
<form>
<fieldset style="width:20%; background-color: #ccffeb;">
<legend><b><i>JSP Application<i><b></legend>
<h3>Current Date and Time is :</h3>
<% java.util.Date d = new java.util.Date();
out.println(d.toString()); %>
</fieldset>
</form>
</body>
</html>
web.xml
<web-app>
<servlet>
<servlet-name>xyz</servlet-name>
<jsp-file>/test.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>xyz</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
</web-app>
Output:
2. JSP Program to upload file into server
Answer:
JSP can be used with HTML form tag to upload file to the server. There are multiple
ways to upload the file to the server. We are using MultipartRequest class. It is utility
class to handle the multipart/form-data request.
In this example, we are creating two files index.html and upload.jsp. The HTML must
have the "post" methods and encrypt type should be multipart/form-data. For running
this application, we must have the latest version of commons-
fileupload.x.x.jar and commons-io-x.x.jar file.
index.html
<html>
<head>
<title>File Uploading Form</title>
</head>
<body>
<form action="upload.jsp" method="post" enctype="multipart/form-data">
<fieldset style="width:20%; background-color: #e6ff99">
<h2>File Upload Example</h2>
<hr>
Select a file to upload: <br /><br />
<input type="file" name="file" size="50" />
<br /><br />
<input type="submit" value="Upload File" />
</fieldset>
</form>
</body>
</html>
upload.jsp
<%@ page import="java.io.*,java.util.*, javax.servlet.*" %>
<%@ page import="javax.servlet.http.*" %>
<%@ page import="org.apache.commons.fileupload.*" %>
<%@ page import="org.apache.commons.fileupload.disk.*" %>
<%
File file ;
int maxFileSize = 5000 * 1024;
int maxMemSize = 5000 * 1024;
ServletContext context = pageContext.getServletContext();
String filePath = context.getInitParameter("file-upload");
out.println("<html>");
out.println("<head>");
out.println("<title>JSP File upload</title>");
out.println("</head>");
out.println("<body>");
while ( i.hasNext () )
{
FileItem fi = (FileItem)i.next();
if ( !fi.isFormField () )
{
// Get the uploaded file parameters
String fieldName = fi.getFieldName();
String fileName = fi.getName();
boolean isInMemory = fi.isInMemory();
long sizeInBytes = fi.getSize();
// Write the file
if( fileName.lastIndexOf("\\") >= 0 )
{
file = new File( filePath +
fileName.substring( fileName.lastIndexOf("\\"))) ;
}
else
{
file = new File( filePath +
fileName.substring(fileName.lastIndexOf("\\")+1)) ;
}
fi.write( file ) ;
out.println("Uploaded Filename: " + filePath +
fileName + "<br>");
}
}
out.println("</body>");
out.println("</html>");
}
catch(Exception ex)
{
System.out.println(ex);
}
}
else
{
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet upload</title>");
out.println("</head>");
out.println("<body>");
out.println("<p>No file uploaded</p>");
out.println("</body>");
out.println("</html>");
}
%>
web.xml
<web-app>
<context-param>
<description>Location to store uploaded file</description>
<param-name>file-upload</param-name>
<param-value>
D:\TOMCAT_HOME_6\apache-tomcat-6.0.48\webapps\data\
</param-value>
</context-param>
<servlet>
<servlet-name>xyz</servlet-name>
<jsp-file>/index.html</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>xyz</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
</web-app>
Output:
After successful upload of file, it displays the location of the uploaded file.
Uploaded Filename: D:\TOMCAT_HOME_6\apache-tomcat-6.0.48\webapps\data\
employee.jpg
Answer:
When we need to refresh the web page automatically after some time, we use
JSP setIntHeader() method. This method sends back header "Refresh" to the browser
along with an integer value which indicates time interval in seconds. It is used when we
need to display live game score, share market status etc.
Below example shows how to use setIntHeader() method to set Refresh header to
simulate a digital clock.
auto-refresh.jsp
<%@ page import="java.io.*,java.util.*" %>
<html>
<head>
<title>Auto Refresh</title>
</head>
<body>
<center>
<form>
<fieldset style="width:20%; background-color:#e6ffe6;">
<legend>Auto refresh</legend>
<h2>Auto Refresh Example</h2>
<%
// Set refresh, autoload time as 1 seconds
response.setIntHeader("Refresh", 1);
// Get current time
Calendar calendar = new GregorianCalendar();
String am_pm;
int hour = calendar.get(Calendar.HOUR);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
if(calendar.get(Calendar.AM_PM) == 0)
am_pm = "AM";
else
am_pm = "PM";
String CT = hour+":"+ minute +":"+ second +" "+ am_pm;
out.println("Crrent Time: " + CT + "\n");
%>
</fieldset>
</form>
</center>
</body>
</html>
web.xml
<web-app>
<servlet>
<servlet-name>xyz</servlet-name>
<jsp-file>/auto-refresh.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>xyz</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
</web-app>
Output:
It refreshes the browser every second and current time will be changed automatically.
Page counter means the number of times the page has been visited by the users.
Below example shows how to count total number of hit on the particular page.
count-visitor.jsp
<%@ page import="java.io.*,java.util.*" %>
<html>
<head>
<title>Count visitor</title>
</head>
<body>
<form>
<fieldset style="width:20%; background-color:#e6ffe6;">
<legend>Count visitor</legend>
<%
Integer hitsCount =
(Integer)application.getAttribute("hitCounter");
if( hitsCount ==null || hitsCount == 0 )
{
/* First visit */
out.println("Welcome to my website!!");
hitsCount = 1;
}
else
{
/* return visit */
out.println("Welcome to my website!!");
hitsCount += 1;
}
application.setAttribute("hitCounter", hitsCount);
%>
<p>You are visitor number: <%= hitsCount%></p>
</fieldset>
</form>
</body>
</html>
web.xml
<web-app>
<servlet>
<servlet-name>xyz</servlet-name>
<jsp-file>/count-visitor.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>xyz</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
</web-app>
Output:
Session is basically a time frame and tracking means maintaining user data for certain
period of time frame. Session Tracking is a mechanism used by the web container to
store session information for a particular user. It is used to recognize a particular user.
Below example shows how to use HttpSession object to find out creation time and last
accessed time for a session.
SessionDemo.jsp
<%@ page import="java.io.*,java.util.*" %>
<%
// Get session creation time.
Date createTime = new Date(session.getCreationTime());
// Get last access time of this web page.
Date lastAccessTime = new Date(session.getLastAccessedTime());
web.xml
<web-app>
<servlet>
<servlet-name>xyz</servlet-name>
<jsp-file>/SessionDemo.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>xyz</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
</web-app>
Output:
Below example describe the exception handling concept in JSP page. The exception
class works same as simple java program. There are 3 files in this example index.html,
process.html, error.jsp.
index.html
<html>
<head>
<title>Exception Example</title>
</head>
<body>
<form action="process.jsp">
<fieldset style="width:20%; background-color:#e6ffe6;">
<center>
<h3>Exception Example</h3>
Enter number: <input type="text" name="n1" /><br/><br/>
Enter number: <input type="text" name="n2" /><br/><br/>
<input type="submit" value="Divide"/>
</center>
</fieldset>
</form>
</body>
</html>
process.jsp
<%@ page errorPage="error.jsp" %>
<%
String num1=request.getParameter("n1");
String num2=request.getParameter("n2");
int a=Integer.parseInt(num1);
int b=Integer.parseInt(num2);
int c=a/b;
out.print("Division of numbers is: "+c);
%>
error.jsp
<%@ page isErrorPage="true" %>
web.xml
<web-app>
<servlet>
<servlet-name>xyz</servlet-name>
<jsp-file>/index.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>xyz</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
</web-app>
Output:
However, if we enter invalid number or leave any box blank, it gives error message.
Click the "Divide" button.
There are multiple checkbox in html page to perform different mathematical operations.
By default, Addition is checked and its add the given number in text box. At the time of
division operation when we enter any invalid data in text box, it generates error
message from "error.jsp" page.
input.html
<html>
<title>Sample Example </title>
<body>
<form method="post" action="index.jsp">
<fieldset style="width:30%; background-color:#b3d1ff">
<h2><center> Mathematical Operation</center></h2>
<hr>
<font size=5 face="Times New Roman">
<input type="radio" name="a1" value="add" checked>Addition</input><br>
<input type="radio" name="a1" value="sub">Subtraction</input><br>
index.jsp
<%@ page errorPage="error.jsp" %>
<html>
<body>
<H1><center>Result for <%=request.getParameter("a1")%></center></H1>
<%
String num1=request.getParameter("t1");
String num2=request.getParameter("t2");
int i=Integer.parseInt(num1);
int j=Integer.parseInt(num2);
int k=0;
String str=request.getParameter("a1");
if(str.equals("add"))
k=i+j;
if(str.equals("sub"))
k=i-j;
if(str.equals("mul"))
k=i*j;
if(str.equals("div"))
k=i/j;
%>
Result is: <%=k%>
</body>
</html>
error.jsp
<%@ page isErrorPage="true" %>
web.xml
<web-app>
<servlet>
<servlet-name>xyz</servlet-name>
<jsp-file>/input.html</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>xyz</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
</web-app>
Output:
There are some important methods which can be used to detect requester's location,
language and of course locale. For example getLocale(), getLanguage(), getCountry()
etc.
Following example shows how to detect locate, current language setting, local specific
time through JSP application.
Demo.jsp
<%@ page import="java.io.*,java.util.Locale" %>
<%@ page import="javax.servlet.*,javax.servlet.http.* "%>
<%@ page import="java.text.NumberFormat,java.util.Date" %>
<%@ page import="java.text.DateFormat,java.util.Date" %>
<%
//Get the client's Locale
Locale locale = request.getLocale();
String language = locale.getLanguage();
String country = locale.getCountry();
web.xml
<web-app>
<servlet>
<servlet-name>xyz</servlet-name>
<jsp-file>/Demo.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>xyz</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
</web-app>
Output:
9. Demonstrate JSP implicit object
Answer:
web.xml
<web-app>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<context-param>
<param-name>User</param-name>
<param-value>Surendra</param-value>
</context-param>
<servlet>
<servlet-name>xyz</servlet-name>
<jsp-file>/index.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>xyz</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
</web-app>
Output:
10. JSP Program to validate username and password
Answer:
We create a table which has the column username and password. The html page has
the text box to take username and password and it validate in JSP page. If username
and password are matched it displays welcome message.
Create table:
In the below example we are using Oracle database with type 4 driver to connect the
JSP program.
input.html
<!doctype html>
<html lang="en">
<head>
<title>Welcome </title>
</head>
<body>
<form method = "post" action = "JspDB.jsp">
<fieldset style="width:23%; background-color:#b3d1ff">
<h3><center> Login Page</center></h3>
<hr>
<table>
<tr>
<td>Username:</td>
<td> <input type = "text" name = "uname"></td>
</tr>
<tr>
<td>Password:</td>
<td><input type = "password" name = "pwd"></td>
</tr>
<tr>
<td></td>
<td><input type = "submit" value="check detail" name = "s1"></td>
</tr>
</table>
</fieldset>
</form>
<a href="JspDB.jsp? s1=link">Get all user detail</a>
</body>
</html>
JspDB.jsp
<%@ page import="java.sql.*"%>
<%@ page import="java.util.*"%>
<%!
Connection con;
PreparedStatement ps1, ps2;
public void jspInit()
{
try
{
//loading the driver
Class.forName("oracle.jdbc.driver.OracleDriver");
//establish the connection
con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE",
"local", "test");
//create statement object
ps1 = con.prepareStatement("select count(*) from userlist where username = ?
and password=?");
ps2 = con.prepareStatement("select * from userlist");
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
%>
<%
String param = request.getParameter("s1");
if(param =="link")
{
ResultSet rs = ps2.executeQuery();
out.println("<table>");
while(rs.next())
{
out.println("<tr>");
out.println("<td>"+rs.getString(1)+"</td>");
out.println("<td>"+rs.getString(2)+"</td");
out.println("</tr>");
}
out.println("</table>");
rs.close();
}
else
{
//write jdbc code for authentication
String user = request.getParameter("uname");
String pass = request.getParameter("pwd");
//set form data as param value
ps1.setString(1,user);
ps1.setString(2,pass);
//excute the query
ResultSet rs = ps1.executeQuery();
int cnt = 0;
if (rs.next())
cnt = rs.getInt(1);
if(cnt == 0)
out.println("<b><i><font color=red>Invalid credential</fonr></i></b>");
else
{
out.println("<form><fieldset style= width:25%; >");
web.xml
<web-app>
<servlet>
<servlet-name>xyz</servlet-name>
<jsp-file>/input.html</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>xyz</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
</web-app>
Output:
The username and password is correct, so it displays the welcome message.
There is an Employee table in database, we fetch the all record from the database table
and print them.
Create table Employees (id number, age number, FirstName varchar2(20), LastName
varchar2(20));
JspDB.jsp
<%@ page import="java.sql.*"%>
<%@ page import="java.util.*"%>
<html>
<head>
<title>SELECT Operation</title>
</head>
<body>
<%!
Connection con;
PreparedStatement ps;
public void jspInit()
{
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
con =
DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "local", "test");
while(rs.next())
{
out.println("<tr style='background-color:#b3ffd9;'>");
out.println("<td>"+rs.getInt(1)+"</td>");
out.println("<td>"+rs.getInt(2)+"</td>");
out.println("<td>"+rs.getString(3)+"</td>");
out.println("<td>"+rs.getString(4)+"</td");
out.println("</tr>");
}
out.println("</table>");
rs.close();
%>
</body>
</html>
web.xml
<web-app>
<servlet>
<servlet-name>xyz</servlet-name>
<jsp-file>/JspDB.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>xyz</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
</web-app>
Output:
Answer:
The index.html taking the number from the user and then change it into the words.
index.html
<!DOCTYPE html>
<html>
<body>
<form method=get action="test.jsp">
Enter Any Number : <input type=text name=num><br><br>
<input type=submit value="Display">
</form>
</body>
</html>
test.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<body>
<font color=red>
<%! int i,n;
String s1;
%>
<% s1= request.getParameter("num");
n=s1.length();
i=0;
do
{
char ch=s1.charAt(i);
switch(ch)
{
case '0': out.println("Zero ");
break;
case '1': out.println("One ");
break;
case '2': out.println("Two ");
break;
case '3': out.println("Three ");
break;
case '4': out.println("Four ");
break;
case '5': out.println("Five ");
break;
case '6': out.println("Six ");
break;
case '7': out.println("Seven ");
break;
case '8': out.println("Eight ");
break;
case '9': out.println("Nine ");
break;
}
i++;
}
while(i<n);
%>
</font>
</body>
</html>
web.xml
<web-app>
<servlet>
<servlet-name>xyz</servlet-name>
<jsp-file>/test.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>xyz</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
Output: