UNIT- 4 (SERVLETS)
Examples:
1.Servlet application to Print a message.
web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/myservlet</url-pattern>
</servlet-mapping>
</web-app>
HelloServlet.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Hello Servlet!</title>");
out.println("</head>");
out.println("<body bgcolor=dodgerblue>");
out.println("<center>");
out.println("<h1>Hello Servlet!</h1>");
out.println("</center>");
out.println("</body>");
out.println("</html>");
}
}
index.html
<html>
<head>
<title>Simple Servlet</title>
</head>
< body bgcolor="dodgerblue">
<center>
<h2><a href=./myservlet>Simple Servlet</a></h2>
</center>
</body>
</html>
Execution Procedure for Servlets:
1. Create your own folder. Eg : servletdemos
2. Create a folder with name “WEB-INF“in the root directory(servletdemos)
3. Create a folder with name “classes “in WEB-INF folder.
4. Compile the java file and place “ .class “ file in “ classes “ folder.
5. Place “ Index.html “ file in root directory.
6. Create a “ war “ file in root directory as follows:
C:\> < path>\ <root directory name > jar cvf file-name.war *.* index.html
7. Run the Tomcat Service.
8. Open Tomcat Manager by typing “ http://localhost:8085/ “in Browser.
9. Click on “Tomcat Manager”.
10. Deploy the created “ war file “.
11. Click on war file to execute the Servlet.
Output:-
2 . Servlet Program to accept form data and print
Web.xml
<?xml version="1.0"?>
<web-app>
<servlet>
<servlet-name>printformdata</servlet-name>
<servlet-class>Printformdata</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>printformdata</servlet-name>
<url-pattern>/myservlet</url-pattern>
</servlet-mapping>
</web-app>
printformdata.java
import java.io.*;
import java.lang.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Printformdata extends HttpServlet{
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html");
PrintWriter pw = response.getWriter();
String username = request.getParameter("username");
String password = request.getParameter("password");
pw.println("<html>");
pw.println("<head>");
pw.println("<title>Form Servlet!</title>");
pw.println("</head>");
pw.println("<body bgcolor=orange>");
pw.println(username);
pw.println("<br>");
pw.println(password);
}
}
index.html
<html>
<head>
<title>Login Form</title>
</head>
<body bgcolor="green">
<form method="post" action="./myservlet">
Enter Name: <input type="text" name="username" size="20">
Enter Password: <input type="password" name="password" size="20">
<input type="submit" value="Submit" name="B1">
</form>
</body>
</html>
Output:
3.Servlet Program to implement ServletConfig and ServletContext.
Web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app>
<servlet>
<servlet-name> ExServletConfig </servlet-name>
<servlet-class>ExServletConfig</servlet-class>
<init-param>
<param-name>Name</param-name>
<param-value>Veena</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name> ExServletConfig </servlet-name>
<url-pattern>/myservlet</url-pattern>
<context-param>
<param-name>Phone</param-name>
<param-value>Vivo</param-value>
</context-param>
</servlet-mapping>
</web-app>
ExServletConfig.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ExServletConfig extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html");
PrintWriter pw = response.getWriter();
ServletConfig config=getServletConfig();
ServletContext sc=getServletContext();
String str1=config.getInitParameter("Name");
String str2=sc.getInitParameter(("Phone");
pw.println(str1);
pw.println(str2);
pw.close();
}
}
Output:- Veena
Vivo
4. Servlet Program to accept form data and insert into database
Web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app>
<servlet>
<servlet-name>ServletInsert</servlet-name>
<servlet-class>ServletInsert</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletInsert</servlet-name>
<url-pattern>/myservlet</url-pattern>
</servlet-mapping>
</web-app>
ServletInsert.java
import java.io.*;
import java.lang.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ServletInsert extends HttpServlet{
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
response.setContentType("text/html");
PrintWriter pw = response.getWriter();
Connection con;
try
{
String username = request.getParameter("username");
String password = request.getParameter("password");
pw.println(username);
pw.println(password);
Class.forName("oracle.jdbc.driver.OracleDriver ");
con=DriverManager.getConnection(jdbc:oracle:thin:@localhost:1521:xe","system"
,"manager");
PreparedStatement pst = con.prepareStatement("insert into login
values(?,?)");
pst.setString(1,username);
pst.setString(2,password);
int i = pst.executeUpdate();
if(i!=0)
{
pw.println("<br>Record has been inserted");
}
else
{
pw.println("failed to insert the data");
}
}
catch (SQLException e)
{
pw.println(e);
}
catch(ClassNotFoundException e)
{
pw.println(e);
}
}
}
index.html
<html>
<head>
<title>Login Form</title>
</head>
<body bgcolor="green">
<form method="POST" action="./myservlet">
Enter Name: <input type="text" name="username" size="20">
Enter Password: <input type="password" name="password" size="20">
<input type="submit" value="Submit" name="B1">
</form>
</body>
</html>
Output:-
5. Servlet Program to retrieve data from database.
Web.xml
<?xml version="1.0"?>
<web-app>
<servlet>
<servlet-name>RetrieveData</servlet-name>
<servlet-class>RetrieveData</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>RetrieveData</servlet-name>
<url-pattern>/myservlet</url-pattern>
</servlet-mapping>
</web-app>
RetrieveData.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
public class RetrieveData extends HttpServlet
{
Connection con;
Statement stmt;
ResultSet rs;
public void doGet(HttpServletRequest req, HttpServletResponse res) throws
ServletException,IOException
{
res.setContentType("text/html");
PrintWriter pw=res.getWriter();
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system","manage
r");
stmt=con.createStatement();
rs=stmt.executeQuery("select * from login");
while(rs.next())
{
String username=rs.getString("username");
String password=rs.getString("password");
pw.println(username);
pw.println(password);
}
pw.close();
}
catch(Exception e)
{
pw.println(e);
}
}
}
index.html
<html>
<head>
<title>Simple Servlet</title>
</head>
<body bgcolor="yellow">
<center>
<h2><a href=./myservlet>Retrieve Data</a></h2>
</center>
</body>
</html>
Output:-
6. Servlet Program to manage sessions
web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app>
<servlet>
<servlet-name>Exservlet</servlet-name>
<servlet-class>Exservlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Exservlet</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>SessionSample</servlet-name>
<servlet-class>SessionSample</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SessionSample</servlet-name>
<url-pattern>/sessiondemo</url-pattern>
</servlet-mapping>
</web-app>
SessionSample.java
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class SessionSample extends HttpServlet {
public void doGet (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Get the Session object
boolean create = true;
HttpSession session = request.getSession(create);
// Get the session data value
Integer ival = (Integer)session.getAttribute ("sessiontest.counter");
if (ival == null) ival = new Integer (1);
else
ival = new Integer (ival.intValue () + 1);
session.setAttribute ("sessiontest.counter", ival);
// Output the page
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>Session Tracking Test</title></head>");
out.println("<body>");
out.println("<h1>Session Tracking Test</h1>");
out.println ("You have hit this page " + ival + " times" + "<br>");
out.println ("Your " + request.getHeader("Cookie"));
out.println("</body></html>");
}
}
index.html
<html>
<body>
<a href="./login">dbservlet</a>
<a href="./sessiondemo">Session Servlet</a>
</body>
</html>
Output:-