Dieser Blog ist eine verwandte Zusammenfassung der Filter-, Listener- und Servlet -Technologien, die eine einfache Anzeige von Online -Benutzern, Online -Personendetails und Administrator -Kickfunktionen implementiert
Unten finden Sie den detaillierten Code
web.xml
<? XSI: Schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_30.xsd" <filter> <filter-name>character</filter-name> <filter-class>cn.hncu.filter.CharacterFilter</filter-class> <init-param> <param-name>charset</param-name> <param-value>utf-8</param-value> </init-param> </filter> <filter> <filter-name>login</filter-name> <Filterklasse> cn.hncu.filter.loginfilter </filterklasse> </filter> <Filter-Mapping> <Filter-Name> Zeichen </filter-name> <url-pufter>/*</url-pufter> </filter-mapping> <Filter-mapping <url-pattern>/servlet/*</url-pattern> <url-pattern>/jsps/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> </filter-mapping> <listener> <listener-class>cn.hncu.listener.MySessionListener</listener-class> </listener> <servlet> <servlet-name>LoginServlet</servlet-name> <servlet-class>cn.hncu.servlet.LoginServlet</servlet-class> </servlet> <servlet> <servlet-name>ShowServlet</servlet-name> <servlet-class>cn.hncu.servlet.ShowServlet</servlet-class> </servlet> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>KickOutServlet</servlet-name> <servlet-class>cn.hncu.servlet.KickOutServlet</servlet-class> </servlet> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>LoginOutServlet</servlet-name> <servlet-class>cn.hncu.servlet.LoginOutServlet</servlet-class> </servlet> <servlet-mapping> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/LoginServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-mapping> <servlet-name>ShowServlet</servlet-name> <url-pattern>/servlet/ShowServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>KickOutServlet</servlet-name> <url-pattern>/servlet/KickOutServlet</url-pattern> </Servlet-Mapping> <Servlet-Mapping> <Servlet-Mapping> <Servlet-Name> LoginoutServlet </Servlet-Name> <URL-Muster>/Servlet/LoginoutServlet </url-puffer> </Servlet-Mapping> <Welcome-File-List> </Welcome-File> Index.
index.jsp
<%@ page Language = "java" import = "java.util. Transitional // en "> <html> <Head> <titels> Online -Informationsmanagement </title> </head> <body> <h2> Online -Informationsmanagement </H2> <H3> Mitglied anmember </h3> <c: if test =" $ {leere Sessions.user.name} "var =" boo "> <c: action = '<C: action =' <C: action = '<C: action =' <C: action = '<C: action =' <C: action = '<C: action =' <C: actions value = "/loginServlet"> </c: url> '> name: <input type = "text" name = "name"> <br/> <Eingabe type = "value =" login "> <br/> </Form> </c: if> <c: if test =" $ {! boo} "> Welcome zurück, $ {{{{{sessements.user.user.user.user.user.user.user.user.user.user.user.user.user.user.user.user.user.user.user.user.user.user.user.user.user.user.user.user.user.user.user.user.user.user.user.user.name SESSIsionScope.user.Admin} "var =" bo "> admin </c: if> <c: if test =" $ {! bo} "> Mitglied </c: if> </c: if> <br/> <c: if test =" $ {! boo} "var =" boo. Informationen </a> <br/> <a href = '<c: url value = "/servlet/loginoutservlet"/>'> sicherer Exit </a> <br/> </c: if> </body> </html>/jsps/show.jsp
<%@ page Language = "java" import = "java.util. Transsitional // en "> <html> <kopf> <titels> Online -Informationen </title> <style type =" text/css "> Tabelle {color: grün; Grenze: 1px fest blau; Grenzkollapse: Zusammenbruch; Breite: 500px; Rand: Auto; } td {Border: 1px Solid Blue; } th {Border: 1PX Solid Blue; } body {text-align: center; }</style> <meta http-equiv="refresh" content="3"></head><body> <table> <tr> <th>Name</th> <th>Online</th> <th>Last access time</th> <th>ip</th> <th>Operation</th> </tr> <c:forEach items="${requestScope.onlines}" var="online"> <tr> <td> <c: if test = "$ {! } </td> <td> $ {online.ip} </td> <td> <c: if test = "$ {online.user! } "/> '> Kickout </a> </c: if> </c: if> </td> </tr> </c: foreach> </table> </body> </html>User.java (Wertobjekt)
Paket cn.hncu.domain; öffentliche Klasse Benutzer {private Zeichenfolge Name; privater boolescher Administrator; public String getName () {return name; } public void setName (String -Name) {this.name = name; } public boolean isadmin () {return admin; } public void setAdmin (boolean admin) {this.admin = admin; } @Override public String toString () {return "user [name =" + name + ", admin =" + admin + "]"; }}MySessionListener.java (Hörer)
Paket cn.Hncu.Listener; import Java.util.Collections; import Java.util.hashMap; Import Java.util.map; import Javax.servlet.http.httpSession; importieren javax.servlet.http.httpSessionEvent; MySessionListener implementiert httpSessionListener {@Override public void sessioncreated (httpSessionEvent se) {map <String, httpSession> onlines = (map <String, httpSession>) se.getSession (). if (onlines == null) {onlines = collections.synchronizedMap (neuer Hashmap <String, httpSession> ()); // Fügen Sie der Karte SE.GetSession (). GetServletContext (). } onlines.put (se.getSession (). getId (), se.getSession ()); } @Override public void sessionDestroyed (httpSessionEvent se) {map <String, httpSession> onlines = (map <string, httpSession>) se.getSession (). if (onlines.containsKey (se.getSession (). getId ()) {onlines.remove (se.getSession (). getId ()); }}}Charakterfilter.java (Zeichenfilter)
Paket cn.hncu.filter; import Java.io.ioxception; import Javax.servlet.filter; import Javax.servlet.filterChain; import Javax.servlet.filterconfig; Importe Javax.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet. javax.servlet.http.httpServletRequest; Public Class Charakterfilter implementiert Filter {private String charset; @Override public void init (filterconfig filterconfig) löst servletException {charset = filterconfig.getInitParameter ("charSet") aus; } @Override public void dofilter (servletRequest request, servletResponse antwort, filterchain kette) löscht ioException, servletException {request.setcharactercoding (charSet); response.setcharacterencoding (charset); HttpServletRequest req = (httpServletRequest) Anfrage; if (req.getSession (). getAtTribute ("ip") == null) {req.getSession (). setAttribute ("ip", req.getremoteaddr ()); } chain.dofilter (Anfrage, Antwort); } @Override public void destroy () {}}LoginFilter.java (verhindert, dass Touristen zufälliger Zugang zu Filtern haben)
Paket cn.hncu.filter; import Java.io.ioxception; import Javax.servlet.filter; import Javax.servlet.filterChain; import Javax.servlet.filterconfig; Importe Javax.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet. javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class LoginFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest request, ServletResponse response, Filterchain -Kette) löst IOException, ServleTException {httpServletRequest req = (httpServletRequest) an; if (req.getSession (). getAtTribute ("user") == null) {((httpServletResponse) Antwort) .Sendredirect (req.getContextPath ()+"/index.jsp"); zurückkehren; } chain.dofilter (Anfrage, Antwort); } @Override public void destroy () {}}LoginServlet.java
Paket cn.hncu.servlet; import Java.io.ioxception; import java.io.printwriter; import Javax.servlet.servletException; importieren javax.servlet.http.httpservlet; importieren javax.servlet.http.httpletrequest; javax.servlet.http.httpServletResponse; importieren cn.hncu.domain.user; öffentliche Klasse LoginServlet erweitert HttpServlet {public void dagget (httpServletRetRequest -Anfrage, HttpserdRespletRepuls) lenkt ServletException, IOException {Dopost (Dopost (Dopost), Request). } public void dopost (httpServletRequest -Anforderung, httpServletResponse -Antwort) löst ServletException aus, iOException {String name = request.getParameter ("Name"); User user = (user) request.getSession (). GetAtTribute ("user"); if (user == null && name! user.setName (name); if (name.equals ("admin")) {user.setAdmin (true); }} request.getSession (). setAttribute ("user", user); response.sendredirect (request.getContextPath ()+"/index.jsp"); }}ShowServlet.java
Paket cn.hncu.servlet; import Java.io.ioException; Import Java.io.printwriter; Import Java.Text.SimpledateFormat; Import Java.util.ArrayList; Import Java.util.Date; Import Java.util.hashmap; Import Java.util.Unator. java.util.map; import javax.servlet.servletException; import javax.servlet.http.httpservlet; import javax.servlet.http.httpserservletrequest; import Javax.Servlet.http.htttpret; ShowServlet erweitert httpServlet (public void dodget (httpServletRequest request, httpServletResponse -Antwort), die ServletException, IOException {Dopost (Request, Antwort); } public void dopost (httpServletRequest -Anforderung, httpServletResponse -Antwort) löst ServletException aus, iOException {map <string, httpSession> onlines = (map <String, httpSession>) request.getServletContext (). getatTribute ("Onlines"); Liste <map <String, Objekt >> list = new ArrayList <map <String, Objekt >> (); // Bar Online verkaps es in list if (onlines! while (it.hasnext ()) {httpSession s = it.Next (); Karte <String, Objekt> map = new HashMap <String, Object> (); map.put ("id", s.getId ()); SimpleDateFormat SDF = new SimpledateFormat ("yyyy-mm-dd hh: mm: ss"); map.put ("createTime", sdf.format (neues Datum (S.GetCreationTime ())); map.put ("Last AccessTime", SDF.Format (neues Datum (S.GetLastAccessTime ()))); map.put ("ip", S.GetAttribute ("IP")); // IP -Informationen werden in charakterfilter map.put ("user", s.getAttribute ("user") ergänzt; list.add (map); }} request.setAttribute ("Onlines", Liste); Request.GetRequestDispatcher ("/JSPS/show.jsp"). Forward (Request, Antwort); }}KickoutServlet.java
Paket cn.hncu.servlet; import Java.io.ioException; import Java.io.printwriter; import Java.util.map; Import Javax.Servlet.ServletException; Import Javax.servlet.http.httplet; Import Javax.http.http.http.http.httpl. javax.servlet.http.httpServletResponse; importieren javax.servlet.http.httpSession; import Javax.servlet.http.httpSession; import Javax.servlet.http.httpSession; Import Javax.Servlet.http.http.http.http.http.http.http.http. javax.servlet.http.HttpSession;import javax.servlet.http.HttpSession;import javax.servlet.http.HttpSession;import javax.servlet.http.HttpSession;import extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) löscht servletException, ioException {dopost (request, response); } public void dopost (httpServletRequest -Anforderung, httpServletResponse -Antwort) löst ServletException aus, IOException {String id = request.getParameter ("id"); MAP <string, httpSession> onlines = (map <string, httpSession>) request.getServletContext (). GetAtTribute ("Onlines"); if (onlines! }} request.getRequestDispatcher ("/servlet/showServlet"). Forward (Request, Antwort); }}LoginoutServlet.java
Paket cn.hncu.servlet; import Java.io.ioxception; import java.io.printwriter; import Javax.servlet.servletException; importieren javax.servlet.http.httpservlet; importieren javax.servlet.http.httpletrequest; javax.servlet.http.httpServletResponse; LoginoutServlet von public class erweitert HttpServlet {public void dodget (httpServletRequest -Anfrage, httpServletResponde -Antwort) Auslöscht ServletException, IOException {Dopost (Anfrage, Antwort); } public void dopost (httpServletRequest Request, httpServletResponse -Antwort) löst ServletException aus, ioException {request.getSession (). Invalidate (); response.sendredirect (request.getContextPath ()+"/index.jsp"); }} Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.