Blog ini adalah ringkasan terkait dari teknologi filter, pendengar dan servlet, yang mengimplementasikan tampilan sederhana pengguna online, detail orang online, dan fungsi tendangan administrator
Di bawah ini adalah kode terperinci
Web.xml
<? Xml Version = "1.0" encoding = "UTF-8"?> <Web-app Versi = "3.0" xmlns = "http://java.sun.com/xml/ns/javaee" xmlns: xsi = "http:/www.w3.org/org/2001 =" http:/www.w3.org/org/p21 XSI: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http:--nava> non-non-non-non-non-non <play-non/non-non-nol <play> <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> <nift-class> cn.hncu.filter.loginfilter </filter-class> </tilter> <nilter-mapping> <nilter-name> </tiler-name> <ruct-pattern>/*</url-pola> </filter-mapping> <nilter-Mapping> <nilter-name> Login </filter-name> </filter-pattern>/<filter-Mapping> <nilter-name> Login </filter-name> <rilter-pattern>/servat/login/Login> <tilter-name> </filter-name> <SuLTER-POLLET> <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> showerVlet </servlet-name> <ritl-pola>/servlet/showerVlet </rerl-pola> </servlet-Mapping> <servlet-Mapping> <servlet-name> KickoutServlet </servlet-name> <rerst-pola>/servlet/kickoutservlet </url-pola> </servlet-mapping> <batu> </kickoutservlet </url-pola> </servlet-mapping> <servlet> </kickoutservlet </url-pattern> <servet> <rest> </kickoutServlet </url-pola> </kickoutserter </Url-Pattern> <righlet> <servlet-name> LoginoutServlet </servlet-name> <Rerl-pola>/servlet/loginoutServlet </ruRl-pattern> </servlet-mapping> <creendak-file-file> <creendak-fils
index.jsp
<%@ page language = "java" import = "java.util.*" pageEncoding = "UTF-8"%> <%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> <! Doctypype html public "-// w3c/w3c/dox> <! Doctypype html public"-//w3c/dox> doctype html public "-//w3c/dox> html public"-// w3c/dox> html public "-//w3c/dox> html public"-//w3c/d doctype 4.01 Transisi // en "> <html> <head> <title> Manajemen Informasi Online </itement> </head> <hody> <h2> Manajemen Informasi Online </h2> <h3> Login Anggota </h3> <c: if test =" $ {Sesi kosong: C: C: URNAME} "var =" BOO "> <Formulir Kosong = 'Formulir =' value = "/LogInservlet"> </c: url> '> Nama: <input type = "text" name = "name"> <br/> <input type = "kirim" value = "login"> <br/> </form> </c: if> <c: if test = "$ {boo}"> Selamat datang, $ {c: {cpeop = "$! sessionScope.user.admin}" var="bo"> Admin</c:if> <c:if test="${!bo}" > Member</c:if> </c:if> <br/> <c:if test="${!boo}" var="boo"> <a href='<c:url value="/servlet/ShowServlet"/>'>View online Informasi </a> <br/> <a href = '<c: nilai url = "/servlet/loginoutservlet"/>'> EXIT aman </a> <br/> </c: if> </body> </html>/jsps/show.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transisi // en "> <html> <head> <title> informasi online </iteme> <style type =" text/css "> Tabel {color: green; Perbatasan: 1px Solid Blue; Border-Collapse: runtuh; Lebar: 500px; margin: otomatis; } td {border: 1px solid blue; } th {border: 1px solid blue; } body {text-align: center; } </tyle> <meta http-equiv = "refresh" content = "3"> </head> <body> <able> <tr> <th> nama </th> <th> online </th> <th> Waktu akses terakhir </t> <tr> ip </th> <tr> Operasi </th> </tr> <c: foreach items = "$ =" $ = "$ {THR> </TH> </tr> <C: foreach items =" $ = "$ =" $ = "" $ "$" <td> <c: if test = "$ {! chenty online.user}" var = "boo"> $ {online.user.name} </c: if> <c: if test = "$ {evelent online. } </td> <td> $ {online.ip} </td> <td> <c: if test = "$ {online. } "/> '> Kickout </a> </c: if> </c: if> </td> </tr> </c: foreach> </able> </body> </html>User.java (objek nilai)
Paket cn.hncu.domain; pengguna kelas publik {nama string pribadi; Admin boolean pribadi; public string getName () {return name; } public void setName (name string) {this.name = name; } public boolean isAdmin () {return admin; } public void setadmin (admin boolean) {this.admin = admin; } @Override public string toString () {return "user [name =" + name + ", admin =" + admin + "]"; }}Mysessionlistener.java (pendengar)
Paket cn.hncu.listener; import java.util.collections; impor java.util.hashmap; import java.util.map; import javax.servlet.http.httpsession; impor javax.servlet.htp.httpsession; MySessionListener mengimplementasikan httpsessionListener {@Override public void sessioncreated (httpsessionEvent se) {peta <string, httpsession> onlines = (peta <string, httpsession>) se.getSession (). GetServletContext (). GetLines ("onLines"); if (onlines == null) {onlines = collections.synchronizedMap (hashmap baru <string, httpsession> ()); // Tambahkan kunci sinkronisasi ke peta se.getSession (). getServletContext (). setAttribute ("onlines", onlines); } onlines.put (se.getSession (). getId (), se.getSession ()); } @Override public void sessionDestroyed (httpsessionEvent se) {peta <string, httpsession> onlines = (peta <string, httpsession>) se.getSession (). GetServletContext (). GetAttribute ("onlines"); if (onlines.containskey (se.getSession (). getId ())) {onlines.remove (se.getSession (). getId ()); }}}Karakterfilter.java (filter karakter)
Paket cn.hncu.filter; impor java.io.ioException; impor javax.servlet.filter; impor javax.servlet.filterchain; impor javax.servlet.filterconfig; impor javax.servlet. javax.servlet.http.httpservletRequest; kelas publik CharacterFilter mengimplementasikan filter {private string charset; @Override public void init (filterconfig filterconfig) melempar servletException {charset = filterconfig.getInitparameter ("charset"); } @Override public void dofilter (permintaan servletRequest, respons servletResponse, rantai filterchain) melempar ioException, servletException {request.setcharacterencoding (charset); response.setcharacterencoding (charset); HttpservletRequest req = (httpservletRequest) permintaan; if (req.getSession (). getAttribute ("ip") == null) {req.getSession (). setAttribute ("ip", req.getRemoteAddr ()); } rantai.dofilter (permintaan, respons); } @Override public void destrash () {}}LoginFilter.java (mencegah wisatawan dari akses acak ke filter)
Paket cn.hncu.filter; impor java.io.ioException; impor javax.servlet.filter; impor javax.servlet.filterchain; impor javax.servlet.filterconfig; impor javax.servlet. javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletResponse; kelas publik LoginFilter mengimplementasikan filter {@override public init (filterconfig filterconfig) melakukan servletexception {} @override publespespesponse do voidconfig) ServeLePlementception {} @Override publicsconfig doVoidConfig) ServeTreSception {} @Override publicSception Rantai filterchain) melempar ioException, servletException {httpservletRequest req = (httpservletRequest) permintaan; if (req.getSession (). getAttribute ("user") == null) {((httpservletResponse) respons) .sendredirect (req.getContextPath ()+"/index.jsp"); kembali; } rantai.dofilter (permintaan, respons); } @Override public void destrash () {}}LOGINSERVLET.java
Paket cn.hncu.servlet; impor java.io.ioException; impor java.io.printwriter; import javax.servlet.servletException; import javax.servlet.http.httpservlet; impor javax.servlet.http.httpservlet; javax.servlet.http.HttpServletResponse;import cn.hncu.domain.User;public class LoginServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void dopost (permintaan httpservletRequest, respons httpservletResponse) melempar servletException, ioException {string name = request.getParameter ("name"); Pengguna pengguna = (user) request.getSession (). GetAttribute ("user"); if (user == null && name! = null && name.trim (). length ()> 0) {// Encapsulate user user = new user (); user.setname (name); if (name.equals ("admin")) {user.setAdmin (true); }} request.getSession (). setAttribute ("user", user); response.sendredirect (request.getContextPath ()+"/index.jsp"); }}Showervlet.java
Paket cn.hncu.servlet; impor java.io.ioException; impor java.io.printwriter; impor java.text.simpledateFormat; impor java.util.arraylist; import java.util.date; impor java.util.hashmap; impor java.util Java. java.util.map; impor javax.servlet.servletException; impor javax.servlet.http.httpservlet; pumling javax.servlet.http.httpservletRequest; impor javax.servlet.http.httpspspservletRequest; emplon -lovax.servlet.http.htpspspspServleter; ShowerVlet memperluas httpservlet {public void doGet (permintaan httpservletRequest, respons httpservletResponse) melempar servletException, ioException {dopost (permintaan, respons); } public void dopost (permintaan httpservletRequest, respons httpservletResponse) melempar servletException, ioException {peta <string, httpsession> onlines = (peta <string, httpsession>) request.getServletContext (). getLines ("on httpsession>) request.getServletContext (). getLines (" on httpsession>)))). Daftar <peta <string, object >> list = new ArrayList <peta <string, object >> (); // bar online merangkum ke dalam daftar jika (onlines! = Null) {iterator <Httpsession> it = onlines.values (). Iterator (); while (it.hasnext ()) {httpsession s = it.next (); Peta <string, object> peta = hashmap baru <string, object> (); peta.put ("id", s.getid ()); SimpleDateFormat sdf = new SimpleDateFormat ("yyyy-mm-dd hh: mm: ss"); peta.put ("createTime", sdf.format (tanggal baru (s.getCreationTime ())))); Map.put ("LastAccessedTime", SDF.Format (Tanggal Baru (S.GetLastAccessedTime ()))); peta.put ("ip", s.getAttribute ("ip")); // Informasi IP ditambah di characterfilter map.put ("user", s.getAttribute ("user")); list.add (peta); }} request.setAttribute ("onlines", list); request.getRequestDispatcher ("/jsps/show.jsp"). Forward (Request, Response); }}Kickoutservlet.java
Paket cn.hncu.servlet; impor java.io.ioexception; impor java.io.printwriter; import java.util.map; import javax.servlet.servletException; import javax.servlet.http.htpservlet; impor javax.servlet javax.servlet.http.httpservletresponse; import javax.servlet.http.httpsession; import javax.servlet.http.httpsession; import javax.servlet.http.httpsession; impor javax.servlet.http.httpsession; javax.servlet.http.httpsession; import javax.servlet.http.httpsession; import javax.servlet.http.httpsession; import javax.servlet.http.httpsession; Impor memperluas httpservlet {public voidpsRPSSESSION; respons) melempar servletException, ioException {dopost (permintaan, respons); } public void dopost (permintaan httpservletRequest, respons httpservletResponse) melempar servletException, ioException {string id = request.getParameter ("id"); Peta <string, httpsession> onlines = (peta <string, httpsession>) request.getSerVletContext (). GetAttribute ("onlines"); if (onlines! = null) {if (onlines.containskey (id)) {onlines.get (id) .invalidate (); }} request.getRequestDispatcher ("/servlet/showerVlet"). Forward (Request, Response); }}LoginoutServlet.java
Paket cn.hncu.servlet; impor java.io.ioException; impor java.io.printwriter; import javax.servlet.servletException; import javax.servlet.http.httpservlet; impor javax.servlet.http.httpservlet; javax.servlet.http.httpservletResponse; kelas publik LoginoutServlet memperluas httpservlet {public void doGet (httpservletRequest, httpservletResponse response) melempar servletException, ioException {doposts (request, response); } public void dopost (permintaan httpservletRequest, respons httpservletResponse) melempar servletException, ioException {request.getSession (). Invalidate (); response.sendredirect (request.getContextPath ()+"/index.jsp"); }} Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.