Buat lah sebuah project web application menggunakan netbeans. Kemudian beri nama ServletListener. Adapun struktur program nya seperti berikut ini :
DBConnectionManager.java
import java.sql.Connection; public class DBConnectionManager { private String dbURL; private String user; private String password; private Connection con; public DBConnectionManager(String url, String u, String p){ this.dbURL = url; this.user = u; this.password = p; //create db connection now } public Connection getConnection() { return this.con; } public void closeConnection() { // close DB connection here } }
MyServlet.java
import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class MyServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * Processes requests for both HTTPGET
andPOST
* methods. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); try (PrintWriter out = response.getWriter()) { /* TODO output your page here. You may use following sample code. */ out.println(""); out.println(""); out.println(""); out.println("Servlet MyServlet "); out.println(""); out.println(""); out.println("Servlet MyServlet at " + request.getContextPath() + "
"); out.println(""); out.println(""); } } ///** * Handles the HTTP }GET
method. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //processRequest(request, response); ServletContext ctx = request.getServletContext(); ctx.setAttribute("User", "Firman Sari"); String user = (String) ctx.getAttribute("User"); ctx.removeAttribute("User"); HttpSession session = request.getSession(); session.invalidate(); PrintWriter out = response.getWriter(); out.write("Hi " + user); } /** * Handles the HTTPPOST
method. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } /** * Returns a short description of the servlet. * * @return a String containing servlet description */ @Override public String getServletInfo() { return "Short description"; }//
AppContextListener.java
import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ /** * Web application lifecycle listener. * * @author Azie */ public class AppContextListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent sce) { ServletContext ctx = sce.getServletContext(); String url = ctx.getInitParameter("DBURL"); String u = ctx.getInitParameter("DBUSER"); String p = ctx.getInitParameter("DBPWD"); //create database connection from init parameters and set it to context DBConnectionManager dbManager = new DBConnectionManager(url, u, p); ctx.setAttribute("DBManager", dbManager); System.out.println("Database connection initialized for application."); } @Override public void contextDestroyed(ServletContextEvent sce) { ServletContext ctx = sce.getServletContext(); DBConnectionManager dbManager = (DBConnectionManager) ctx.getAttribute("DBManager"); System.out.println("Database connection closed for application."); } }
AppContextAttributeListener.java
MySessionListener.java
MyServletRequestListener.java
import javax.servlet.ServletContextAttributeEvent; import javax.servlet.ServletContextAttributeListener; /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ /** * Web application lifecycle listener. * */ public class AppContextAttributeListener implements ServletContextAttributeListener { @Override public void attributeAdded(ServletContextAttributeEvent event) { System.out.println("ServletContext attribute added::{" + event.getName() + ", " + event.getValue() + "}"); } @Override public void attributeRemoved(ServletContextAttributeEvent event) { System.out.println("ServletContext attribute removed::{" + event.getName() + ", " + event.getValue() + "}"); } @Override public void attributeReplaced(ServletContextAttributeEvent event) { System.out.println("ServletContext attribute replaced::{" + event.getName() + ", " + event.getValue() + "}"); } }
MySessionListener.java
import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ /** * Web application lifecycle listener. * */ public class MySessionListener implements HttpSessionListener { @Override public void sessionCreated(HttpSessionEvent se) { System.out.println("Session Created:: ID=" + se.getSession().getId()); } @Override public void sessionDestroyed(HttpSessionEvent se) { System.out.println("Session Destroyed:: ID=" + se.getSession().getId()); } }
MyServletRequestListener.java
import javax.servlet.ServletRequest; import javax.servlet.ServletRequestEvent; import javax.servlet.ServletRequestListener; /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ /** * Web application lifecycle listener. * */ public class MyServletRequestListener implements ServletRequestListener { @Override public void requestDestroyed(ServletRequestEvent sre) { ServletRequest servletRequest = sre.getServletRequest(); System.out.println("ServletRequest destroyed. Remote IP=" + servletRequest.getRemoteAddr()); } @Override public void requestInitialized(ServletRequestEvent sre) { ServletRequest servletRequest = sre.getServletRequest(); System.out.println("ServletRequest initialized. Remote IP=" + servletRequest.getRemoteAddr()); } }
No comments:
Post a Comment