//listeners concept in servlet with example
Step1 :- Declare your listeners in web.xml as given bellow
<?xml version="1.0" ?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<listener>
<listener-class>web.prac.MyContextListener</listener-class>
</listener>
<listener>
<listener-class>web.prac.MyContextAttributeListener</listener-class>
</listener>
<servlet>
<servlet-name>SetContextAttributes</servlet-name>
<servlet-class>webcert.ch04.ex0403.SetContextAttributes</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SetContextAttributes</servlet-name>
<url-pattern>/SetContextAttributes/*</url-pattern>
</servlet-mapping>
</web-app>
Step2 :- Create the servlet which generates events so thant we can implement them
package web.prac;
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class SetContextAttributes extends HttpServlet {
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
response.setContentType("text/html");
out.write("<HTML><HEAD>");
out.write("<TITLE>Set and Display Context Attributes</TITLE>");
out.write("</HEAD><BODY>");
ServletContext context = getServletContext();
// Add, replace & remove some context attributes
context.setAttribute("attribute1", "first attribute");
context.setAttribute("attribute2", "second attribute");
context.setAttribute("attribute1", "changed first attribute value");
context.setAttribute("attribute2", "changed second attribute value");
context.removeAttribute("attribute2");
// Display context attributes
Enumeration e = context.getAttributeNames();
out.write("<H2>Context Attributes</H2>");
while (e.hasMoreElements()) {
String name = (String) e.nextElement();
String value = "" + context.getAttribute(name);
out.write("<BR />Name: " + name + ", value: " + value);
}
// Conclude page
out.write("</BODY></HTML>");
response.flushBuffer();
}
public void init() throws ServletException {
super.init();
System.out.println("In SetContextAttributes init() method.");
ServletContext context = getServletContext();
context.setAttribute("servletInitAttribute", "This attribute value added in servlet init() method.");
}
}
Step 3 :- Now create your listeneres which were declared in the web.xml
package web.prac;
import javax.servlet.*;
public class MyContextAttributeListener implements
ServletContextAttributeListener {//this listenes for change of context attributes
public void attributeAdded(ServletContextAttributeEvent event) {
String name = event.getName();
String value = "" + event.getValue();
System.out.println("Added context attribute: " + name + ", " + value);
}
public void attributeReplaced(ServletContextAttributeEvent event) {
ServletContext context = event.getServletContext();
String name = event.getName();
String oldValue = "" + event.getValue();
String newValue = "" + context.getAttribute(name);
System.out.println("Replaced context attribute: " + name
+ ", old value: " + oldValue + ", new value: " + newValue);
}
public void attributeRemoved(ServletContextAttributeEvent event) {
String name = event.getName();
String value = "" + event.getValue();
System.out.println("Removed context attribute: " + name + ", " + value);
}
}
Step 4 :- The other listener declared in the web.xml
package webcert.ch04.ex0403;
import javax.servlet.*;
public class MyContextListener implements ServletContextListener {//this listenes for context initilization and destroying
public void contextInitialized(ServletContextEvent event) {
System.out.println("In MyContextListener contextInitialized() method.");
ServletContext context = event.getServletContext();
context.setAttribute("contextInitAttribute", "Made in the ServletContextListener");
}
public void contextDestroyed(ServletContextEvent event) {
System.out.println("In MyContextListener contextDestroyed() method.");
ServletContext context = event.getServletContext();
context.removeAttribute("contextInitAttribute");
}
}
Step1 :- Declare your listeners in web.xml as given bellow
<?xml version="1.0" ?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<listener>
<listener-class>web.prac.MyContextListener</listener-class>
</listener>
<listener>
<listener-class>web.prac.MyContextAttributeListener</listener-class>
</listener>
<servlet>
<servlet-name>SetContextAttributes</servlet-name>
<servlet-class>webcert.ch04.ex0403.SetContextAttributes</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SetContextAttributes</servlet-name>
<url-pattern>/SetContextAttributes/*</url-pattern>
</servlet-mapping>
</web-app>
Step2 :- Create the servlet which generates events so thant we can implement them
package web.prac;
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class SetContextAttributes extends HttpServlet {
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
response.setContentType("text/html");
out.write("<HTML><HEAD>");
out.write("<TITLE>Set and Display Context Attributes</TITLE>");
out.write("</HEAD><BODY>");
ServletContext context = getServletContext();
// Add, replace & remove some context attributes
context.setAttribute("attribute1", "first attribute");
context.setAttribute("attribute2", "second attribute");
context.setAttribute("attribute1", "changed first attribute value");
context.setAttribute("attribute2", "changed second attribute value");
context.removeAttribute("attribute2");
// Display context attributes
Enumeration e = context.getAttributeNames();
out.write("<H2>Context Attributes</H2>");
while (e.hasMoreElements()) {
String name = (String) e.nextElement();
String value = "" + context.getAttribute(name);
out.write("<BR />Name: " + name + ", value: " + value);
}
// Conclude page
out.write("</BODY></HTML>");
response.flushBuffer();
}
public void init() throws ServletException {
super.init();
System.out.println("In SetContextAttributes init() method.");
ServletContext context = getServletContext();
context.setAttribute("servletInitAttribute", "This attribute value added in servlet init() method.");
}
}
Step 3 :- Now create your listeneres which were declared in the web.xml
package web.prac;
import javax.servlet.*;
public class MyContextAttributeListener implements
ServletContextAttributeListener {//this listenes for change of context attributes
public void attributeAdded(ServletContextAttributeEvent event) {
String name = event.getName();
String value = "" + event.getValue();
System.out.println("Added context attribute: " + name + ", " + value);
}
public void attributeReplaced(ServletContextAttributeEvent event) {
ServletContext context = event.getServletContext();
String name = event.getName();
String oldValue = "" + event.getValue();
String newValue = "" + context.getAttribute(name);
System.out.println("Replaced context attribute: " + name
+ ", old value: " + oldValue + ", new value: " + newValue);
}
public void attributeRemoved(ServletContextAttributeEvent event) {
String name = event.getName();
String value = "" + event.getValue();
System.out.println("Removed context attribute: " + name + ", " + value);
}
}
Step 4 :- The other listener declared in the web.xml
package webcert.ch04.ex0403;
import javax.servlet.*;
public class MyContextListener implements ServletContextListener {//this listenes for context initilization and destroying
public void contextInitialized(ServletContextEvent event) {
System.out.println("In MyContextListener contextInitialized() method.");
ServletContext context = event.getServletContext();
context.setAttribute("contextInitAttribute", "Made in the ServletContextListener");
}
public void contextDestroyed(ServletContextEvent event) {
System.out.println("In MyContextListener contextDestroyed() method.");
ServletContext context = event.getServletContext();
context.removeAttribute("contextInitAttribute");
}
}
No comments:
Post a Comment