Professional Documents
Culture Documents
Servlets class-1
servlets:
CGI :
servlets :
if no of requests are increased then no of threads are incereased but performace ig good because thread is light
weight.
a. web servers
b. application servers
https://tomcat.apache.org/download-90.cgi
example
so change the port any 4-digit number because oracle default port 8080
password : tomcat
bin : it contains binary executables used to start & stop the server.
http://localhost:9999/
log : it contains log file track the error messages & server startup & ending time.
webapps :
deploy the applicaiton means we have to place the apllication in web apps folder.
so the webapps folder contains group of web application.
work:
in jsp technology every jsp page internally converted to servet. That converted serlet executed we will get the
response.
the jsp converted to servlet & these converted servlets are stored in work folder.
lib:
a. javax.servlet
b. javax.servlet.http
c. javax.servlet.annotations
Servlet class-2
a. implements Servlet
b. extends GenericServlet
c. extends HttpServlet
First Application:
package javax.servlet;
import java.io.IOException;
ServletConfig getServletConfig();
void service(final ServletRequest p0, final ServletResponse p1) throws ServletException, IOException;
String getServletInfo();
void destroy();
This interface defines methods to initialize a servlet, to service requests, and to remove a servlet from the server. These are
known as life-cycle methods and are called in the following sequence:
init() : The servlet is constructed, then initialized with the init method.
service() : Any calls from clients to the service method are handled.
destory() : The servlet is taken out of service, then destroyed with the destroy method, then garbage collected and
finalized.
In addition to the life-cycle methods, this interface provides the getServletConfig method, which the servlet can use to get
any startup information, and the getServletInfo method, which allows the servlet to return basic information about itself,
such as author, version, and copyright.
MyApp
|--->.html
|--->.jsp
|--->imags
|--->.js
|--->.css
|---> WEB-INF
|--->web.xml
|--->lib
|--->*.jar
|--->classes
|---> MyServlet1.class
|---> MyServlet2.class
|---> MyServlet3.class
//web.xml
Myservlet ----- To the servlet create the url then client can access the servlet using url.
<servlet>
<servlet-mapping>
<web-app>
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.tcs.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/MyServlet</url-pattern>
</servlet-mapping>
</web-app>
This method is only called after the servlet's init() method has completed successfully.
Parameters:
http://tomcat.apache.org/tomcat-5.5-doc/servletapi/
Servlets class-3
response.setContentType("text/html");
once the application is completed configure the server & run the applciation.
http://localhost:8888/ServletFirstApp/MyServlet
localhost : ip address
init(): this method executed only once when we sent first request.
To overcome above problem perfrom the servlet initialization during server startup use <load-on-startup> in web.xml
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.tcs.MyServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<load-on-startup> is taking positive number which represents priority(0,1,2,3...). it must be positive number but if we give
negative number no error just it will ignore <load-on-startup> configurations.
//MyServlet.java
package com.tcs;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public MyServlet() {
System.out.println("init() method");
System.out.println("destory() method");
System.out.println("getServletConfig() method");
return null;
System.out.println("getServletInfo() method");
return null;
System.out.println("Service() method");
//general setting
response.setContentType("text/html");
limitation of first Approach is we must implements 5-methods but generally we need only one method to write the logics.
Approach-2:
public abstract class GenericServlet extends java.lang.Object implements Servlet, ServletConfig, java.io.Serializable{
Defines a generic, protocol-independent servlet. To write an HTTP servlet for use on the Web, extend HttpServlet instead.
interface Servlet
{ 5- abstract methods
//SecondServlet.java
package com.tcs;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public SecondServlet() {
super();
response.setContentType("text/html");
//web.xml
<display-name>ServletFirstApp</display-name>
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.tcs.MyServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/MyServlet</url-pattern>
</servlet-mapping>
<servlet>
<description></description>
<display-name>SecondServlet</display-name>
<servlet-name>SecondServlet</servlet-name>
<servlet-class>com.tcs.SecondServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SecondServlet</servlet-name>
<url-pattern>/SecondServlet</url-pattern>
</servlet-mapping>
</web-app>
servlet Day - 4
Approach-3 :
interface Servlet
{ 5-methods
doGet()
doPost()
doPut()
doDelete()
doTrace()
doOptions()
doHead()
Based on the client request the related method will be executed at server side.
if the client sends get request --- server side doGet() method
if the client sends post request --- server side doPost() method
The server will call HttpServlet service() method, The HttpServlet contians two service() methods.
a. public service() :
b. protected service()
it is identifying the request type then forwarding the request to corresponding method.
protected void service(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException,
IOException {
if (method.equals("GET")) {
this.doGet(req, resp);
else if (method.equals("HEAD")) {
this.doHead(req, resp);
else if (method.equals("POST")) {
this.doPost(req, resp);
else if (method.equals("PUT")) {
this.doPut(req, resp);
else if (method.equals("DELETE")) {
this.doDelete(req, resp);
else if (method.equals("OPTIONS")) {
this.doOptions(req, resp);
else if (method.equals("TRACE")) {
this.doTrace(req, resp);
else {
resp.sendError(501, errMsg);
public void service(final ServletRequest req, final ServletResponse res) throws ServletException, IOException {
HttpServletRequest request;
HttpServletResponse response;
try {
request = (HttpServletRequest)req;
response = (HttpServletResponse)res;
catch (ClassCastException e) {
this.service(request, response); //calling the protected service by passsing the http types
ex:
package com.tcs;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public ThirdServlet() {
super();
response.setContentType("text/html");
//form.html
<html>
<body>
</body>
</html>
//LoginApplication
//login.html
<html>
<body bgcolor='red'>
</form>
</body>
</html>
//LoginServlet.java
package com.tcs;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public LoginServlet() {
response.setContentType("text/html");
else
doGet(request, response);
http://localhost:8888/LoginApplication/login.html
The first page of the web application is called welcome file. And we have to configure the the welcome file in web.xml
<welcome-file-list>
<welcome-file>login.html</welcome-file>
</welcome-file-list>
dispatcher.forward(request, response);
else
dispatcher.forward(request, response);
{ response.sendRedirect("http://www.nareshit.com");
else
{ response.sendRedirect("http://www.facebook.com");
Servlets class-6
doGet() :
http://localhost:8888/LoginApplication/LoginServlet?uname=ratan&upwd=anu
d. when we sent get request the protocal will create the "Request Format" with only header.
here no body field so the request body is append to haader field. so the requested data visisble in url.
e. using get() we can send the less request details to server side because it contians onnly header part.
b. this is not default request type. We have to specify using <form method="post">
http://localhost:8888/LoginApplication/LoginServlet
d. when we sent post request the protocal will create the "Request Format" with header & body fileds.
here body field avaialbel so the request body is append to body field. so the request body not visible in url
e. using POST() we can send the more request details to server side because it contians header & body part.
a. Transport protocal
HTTP , HTTPS
b. messageing protocal.
SOAP
HTTP protocal will take the request & create the connection based on ip addreess given in url.
Deployments
//Approach-1
the IDE will generate tomcat folder structure the location is,
E:\advjava9amonline\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
in above location we will find Application tomcat folder structure so we can deploy this folders into tomcat webapps folder.
create the war file using IDE then deploy in server console. Access the application.
//Servlet urls:
1. exact match method: here the servlet contians only one url so that we can the servlet using that url.
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/MyServlet</url-pattern>
</servlet-mapping>
http://localhost:9999/FirstApplciation/MyServlet Valid
http://localhost:9999/FirstApplciation/MyServlet1 Invalid
http://localhost:9999/FirstApplciation/MyServlet/MyServlet Invalid
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/abc/*</url-pattern>
</servlet-mapping>
http://localhost:8888/ServletFirstApp/abc/sdhf : valid
http://localhost:8888/ServletFirstApp/abc/abc : valid
http://localhost:8888/ServletFirstApp/xyz/abc : Invalid
http://localhost:8888/ServletFirstApp/abc/abc/xyz : valid
Note:In general in web applications, we will prefer to use directory match method to define an URL pattern when we have
a requirement to pass multiple numbers of requests to a particular server side resource.
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
http://localhost:8888/ServletFirstApp/abc.do valid
http://localhost:8888/ServletFirstApp/abc/xyx.do valid
http://localhost:8888/ServletFirstApp/abc.dooo Invalid
*/
Registraction Application
//reg.html
<html>
<head>
<center>Registration</center>
</head>
<body>
<pre>
<option value="C">C</option>
<option value="C++">C++</option>
<option value="JAVA">JAVA</option>
</select>
</pre>
</form>
</body>
</html>
//RegistrationServlet.java
package com.tcs;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public RegistrationServlet() {
response.setContentType("text/html");
writer.println("<html>");
writer.println("<body bgcolor='lightgreen'>");
writer.println("<center><b><font size='6'>");
writer.println("Name....."+uname);
writer.println("<br><br>");
writer.println("Password......"+upwd);
writer.println("<br><br>");
writer.println("Qualification<br><br>");
for(String q:uqual)
{ writer.println(q);
writer.println("<br><br>");
writer.println("Gender...."+ugen);
writer.println("<br><br>");
writer.println("Technologies<br><br>");
for(String t:utech)
{ writer.println(t);
writer.println("<br><br>");
writer.println("Comments......"+ucom);
writer.println("<br><br>");
writer.println("Congratulations....."+uname);
writer.println("</font></b></center></body></html>");
Enumeration<String> e = request.getParameterNames();
while(e.hasMoreElements())
{ String s = e.nextElement();
writer.println(s+"-----"+request.getParameter(s)+"<br><br>");
}
//server startup process :
a. when we start the server , server identifies each & every web application create one object for every applicaion is
called
ServletContext.
i. properties file
c. reading
if any context-data in web.xml it will read that data placed in ServletContext object.
if any init-param-data in web.xml it will read that data placed in ServletConfig object.
c. in web.xml file any <load-on-startup> it will do the servlet initilization during server startup.
once the above steps are done server is ready to take the request.
once the server started open the browser send the request to server then protocal will take request.
1. Protocol will establish virtual socket connection between client and server as part of the server IP address
and port number which we specified in the URL.
2. Protocol will prepare a request format having request header part and body part, where header part will
maintain request headers and body part will maintain request parameters provided by the user.
3. After getting the request format protocol will carry request format to the main server.
//server side process after taking request
server takes the request based on receiving the request from protocol main server will check whether the request
data is in well-formed format or not,, if it is in well-formed then the main server will bypass request to servlet container.
Upon receiving the request from main server container will pick up application name and resource name from
request and check whether the resource is for any html page or Jsp page or an URL pattern for a servlet.
If the resource name is any html page or Jsp page then container will pick up them application folder and send
them as a response to client.
If the resource name is an URL pattern for a particular servlet available under classes folder then container will go
to web.xml file identifies the respective servlet class name on the basis of the URL pattern.
once the servlet is identified servlet container will perfrom servlet life cycle methods.
Servlet loading
Servlet instantiation
Servlet initialization
init(ServletConfig config)
Servlet deinstantiation
ServletConfig destroyed
Servlet unloading
//server stop
//form.html
<html>
<body>
</body>
</html>
//FirstServlet.java
package com.tcs;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public FirstServlet() {
response.setContentType("text/html");
writer.println("<br>");
writer.println("<br>");
writer.println("<br>");
writer.println("<br>");
//SecondServlet.java
package com.tcs;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
response.setContentType("text/html");
writer.println("<br>");
writer.println("<br>");
writer.println("<br>");
writer.println("<br>");
//web.xml
<display-name>ConfigContextApp</display-name>
<welcome-file-list>
<welcome-file>form.html</welcome-file>
</welcome-file-list>
<context-param>
<param-name>username</param-name>
<param-value>system</param-value>
</context-param>
<context-param>
<param-name>password</param-name>
<param-value>manager</param-value>
</context-param>
<servlet>
<description></description>
<display-name>FirstServlet</display-name>
<servlet-name>FirstServlet</servlet-name>
<servlet-class>com.tcs.FirstServlet</servlet-class>
<init-param>
<param-name>apple</param-name>
<param-value>10</param-value>
</init-param>
<init-param>
<param-name>mango</param-name>
<param-value>20</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>FirstServlet</servlet-name>
<url-pattern>/FirstServlet</url-pattern>
</servlet-mapping>
<servlet>
<description></description>
<display-name>SecondServlet</display-name>
<servlet-name>SecondServlet</servlet-name>
<servlet-class>com.tcs.SecondServlet</servlet-class>
<init-param>
<param-name>iphone</param-name>
<param-value>30000</param-value>
</init-param>
<init-param>
<param-name>oneplus</param-name>
<param-value>20000</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>SecondServlet</servlet-name>
<url-pattern>/SecondServlet</url-pattern>
</servlet-mapping>
</web-app>
c. <form method="get">
to get the all init or context param data use below code:
Enumeration<String> e = config.getInitParameterNames();
while(e.hasMoreElements()){
String s = e.nextElement();
writer.println(s+"----"+config.getInitParameter(s));
writer.println("<br>");
}
Enumeration<String> e1 = context.getInitParameterNames();
while(e1.hasMoreElements()){
String s = e1.nextElement();
writer.println(s+"-----"+context.getInitParameter(s));
writer.println("<br>");
servlets day-10
observation-1: sendError
{ response.sendRedirect("http://www.nareshit.com");
else
dispatcher.forward(request, response);
else
{ writer.println("Login Fail....");
dispatcher.include(request, response);
}
SuccessServlet.java
response.setContentType("text/html");
forward:
used to forward the request to next resource that resource must be present in same server.
sendRedirect():
used to forward the request to next resource that resource must be present in same or different
server.
it will work at client side : beacuse the client has to generate new request.
observation-4:Request Redirection
a. RR using hyperlinks.
just give the hyper link when we clink hyper link the request is redirected to some
other website.
ResponseFormat
header : www.anuit.com
body
c. RR using sendRedirect.
directly use the url to send the request to target web site.
if(username.equalsIgnoreCase("ratan") && password.equals("anu"))
response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
response.setHeader("location","https://www.google.co.in");
//response.sendRedirect("http://www.nareshit.com");
else
preprocessing of request
{ init(FilterConfig config)
destory()
// Filter Mapping : To map the filter to servlet, the servlet url & filter url must be same.
<servlet>
url: /reg
<servlet-mapping>
<filter>
url: /reg
<filter-mapping>
<filter>
url: /reg
<filter-mapping>
ex:
//form.html
<html>
<body>
</form>
</body>
</html>
{ logics }
//MyFilter1.java
package com.tcs;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public MyFilter1() {
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,
ServletException {
response.setContentType("text/html");
if(age>20)
{ chain.doFilter(request, response);
else
dispatcher.include(request, response);
System.out.println("filter1 init");
}
//MyFilter2.java
package com.tcs;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public MyFilter2() {
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,
ServletException {
response.setContentType("text/html");
if(uaddr.equals("hyderabad"))
{ chain.doFilter(request, response);
else
request.getRequestDispatcher("form.html").include(request, response);
}
public void init(FilterConfig fConfig) throws ServletException {
System.out.println("filter2 init");
//RegServlet.java
package com.tcs;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public RegServlet() {
super();
response.setContentType("text/html");
writer.println("<br>");
writer.println("user name="+uname);
writer.println("<br>");
writer.println("<br>");
writer.println("user age="+uage);
writer.println("<br>");
writer.println("user naddress="+uaddr);
writer.println("<br>");
writer.println("<br>");
//CustomerDetails.html:
<html>
<body>
</form>
</body>
</html>
physical conn
once the connection usage completed use con.close() : here the connection is destroyed.
here we are using DriverManager
logical conn
once the connection usage completed use con.close() : here the connection not destroyed it is back pool.
Again the same conection used by other client.
https://docs.oracle.com/javase/tutorial/jdbc/basics/connecting.html
package com.tcs;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
public CustomerServlet() {
response.setContentType("text/html");
PrintWriter writer = response.getWriter();
String[] s = request.getParameterValues("t1");
for(String ss:s)
{ sb.append(ss+",");
try{
/*Class.forName("oracle.jdbc.driver.OracleDriver");
Connection connection =
DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system","ratan");
*/
DataSource ds = (DataSource)initContext.lookup("java:/comp/env/mypool");
preparedStatement.setString(1, firstname);
preparedStatement.setString(2, lastname);
preparedStatement.setString(3, email);
preparedStatement.setString(4, mobile);
preparedStatement.setString(5, addr);
int x = preparedStatement.executeUpdate();
if(x==1)
else
connection.close();
catch(Exception e)
{ e.printStackTrace();
package com.tcs;
import org.apache.commons.dbcp.BasicDataSource;
static{
dataSource.setUrl("jdbc:oracle:thin:@localhost:1521:xe");
dataSource.setDriverClassName("oracle.jdbc.driver.OracleDriver");
dataSource.setUsername("system");
dataSource.setPassword("ratan");
dataSource.setMaxActive(10);
<Context path="">
2) WEB\INF\web.xml
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<resource-ref>
<res-ref-name>mypool</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
3) servlet class
DataSource ds = (DataSource)initContext.lookup("java:/comp/env/mypool");
con = ds.getConnection();
ex-1 :
package com.tcs;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
try { connection.close();
catch (SQLException e) {
e.printStackTrace(); }
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
"ratan");
context.setAttribute("conn", connection);
e.printStackTrace();
}
<html>
<body>
</form>
</body>
</html>
package com.tcs;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public MyServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,
IOException {
response.setContentType("text/html");
try {
while(set.next())
{ writer.println(set.getString(1)+"---"+set.getString(2)+"---"+set.getString(3));
writer.println("<br><br>");
} catch (SQLException e) {
e.printStackTrace();
//foram1.html
user name :
HttpSession
age :
uname
next Servlet1 req,res
uage
qual
form2.html
desig
qualification :
desgination :
form3.html
email :
display 4-session
2-request
//form1.html
<html>
<body bgcolor="pink">
<center>
</form>
</center>
</body>
</html>
//form2.html
<html>
<body bgcolor="pink">
<center>
</form>
</center>
</body>
</html>
//form3.html
<html>
<body bgcolor="pink">
<center>
</form>
</center>
</body>
</html>
//FirstServlet.java
package com.tcs;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet("/FirstServlet")
public FirstServlet() {
session.setAttribute("uname", uname);
session.setAttribute("uage", uage);
dispatcher.forward(request, response);
//SecondServlet.java
package com.tcs;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet("/SecondServlet")
public SecondServlet() {
super();
session.setAttribute("uqual", uqual);
session.setAttribute("udesig", udesig);
dispatcher.forward(request, response);
//DisplayServlet.java
package com.tcs;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet("/DisplayServlet")
public DisplayServlet() {
super();
response.setContentType("text/html");
writer.println("*******Complete details*******");
writer.println("<br>");
writer.println("<br>");
writer.println("<br>");
writer.println("<br>");
writer.println("<br>");
writer.println("<br>");
session.invalidate();