هذه المدونة هي ملخص مرتبط بتقنيات المرشح والاستمع والخدمة ، والتي تنفذ عرضًا بسيطًا للمستخدمين عبر الإنترنت ، وتفاصيل الشخص عبر الإنترنت ، ووظائف ركل المسؤول
أدناه هو الرمز التفصيلي
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- <filter-name> الحرف </filter-name> <lipter-class> cn.hncu.filter.characterfilter </filter-class> <Iration-param> <param-name> charset </parm-name> <baram-value> utf-8 </parm-value> <Filter-Class> cn.hncu.filter.loginfilter </filter-class> </filter> <filter-mapping> <filter-name> حرف </filter-name> <Url-pattern>/*</urol-pattern> </filter mapping> <Url-pattern>/servlet/*</url-pittern> <url-pattern>/jsps/*</url-pattern> <spatcher> request </spatcher> <spatcher> forward </sistatcher> </filter-mapping> <sistaner> <Servlet-name> loginservlet </servlet-name> <Servlet-class> cn.hncu.servlet.loginservlet </servlet-class> </servlet> <vervlet> مكون J2EE </description> <simplay-name> هذا هو اسم عرض مكون J2EE الخاص بي </display-name> <Servlet-Name> kickoutservlet </servlet-name> <Servlet-class> cn.hncu.servlet.kickoutservlet </servlet-class> </servlet> <srived> مكون J2EE </display-name> <Servlet-name> logInoutServlet </servlet-name> <Servlet-Class> cn.hncu.servlet.loginoutservlet </radlet-class> </radlet> <Urdlet> </servlet-mapping> <Sradlet-mapping> <Servlet-mapping> <Servlet-Name> sharevlet </servlet-name> <url-pattern>/servlet/displeservlet </url-pattern> </radlet-mapping> <cradlet-mapping> <radlet-name> kickoutservlet </servlet-name> <Srevlet-mapping> <Servlet-mapping> <Sradlet-Name> logInoutServlet </servlet-name> <url-pattern>/servlet/loginoutservlet </url-pattern> </servlet mapping> <-lip-list-list> <lispile> index.jsp </sown-file> </welcom
index.jsp
<٪@ page language = "java" import = "java.util. Transitional // en "> <html> <head> <title> إدارة المعلومات عبر الإنترنت </title> </head> <hody> <h2> إدارة المعلومات عبر الإنترنت </h2> <h3> تسجيل الدخول العضو </h3> <c: if test =" $ {فارغة sessionscope.user.name} "var =" boo " value = "/loginservlet"> </c: url> '> name: <type type = "text" name = "name"> <br/> <input type = "submit" value = "login"> <br/> </form> </ c: if test = "$ {! boo}" sessionscope.user.admin} "var =" bo "> admin </c: if> <c: if test =" $ {! bo} " المعلومات </a> <br/> <a href = '<c: url value = "/servlet/loginoutservlet"/>'> مخرج آمن </a> <br/> </c: if> </body> </html>/jsps/show.jsp
<٪@ page language = "java" import = "java.util. Transitional // en "> <html> <head> <title> معلومات عبر الإنترنت </title> <style type =" text/css "> table {color: green ؛ الحدود: 1 بكسل الأزرق الصلب. حدود الحدود: الانهيار. العرض: 500 بكسل ؛ الهامش: السيارات ؛ } 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> عبر الإنترنت </th> <th> آخر وقت وصول </th> <th> ip </h> <th> العملية </th> </tr> <c: for each yead = requestscope. <td> <c: if test = "$ {! freake online.user}" var = "boo"> $ {online.user.name} </c: if> <c: if test = "$ {fmare online.user}"> visitor </ c: if> <td> } </td> <td> $ {online.ip} </td> <td> <c: if test = "$ {online.user! = sessionscope.user}"> <c: if test = "$ {! } "/> '> kickout </a> </c: if> </c: if> </td> </tr> </c: foreach> </table> </body> </html>user.java (كائن القيمة)
حزمة cn.hncu.domain ؛ مستخدم الفئة العامة {اسم السلسلة الخاصة ؛ المسؤول المنطقي الخاص السلسلة العامة getName () {return name ؛ } public void setName (اسم السلسلة) {this.name = name ؛ } isadmin boolean العامة () {return admin ؛ } public void setAdmin (Boolean admin) {this.admin = admin ؛ } Override public string toString () {return "user [name =" + name + "، admin =" + admin + "]" ؛ }}MySessionListener.java (مستمع)
package cn.hncu.listener ؛ استيراد java.util.collections ؛ استيراد java.util.hashmap تنفذ httpsessionListener {Override public void sessioncreated (httpsessionevent se) {map <string ، httpsession> onlines = (map <string ، httpsession>) if (onlines == null) {onlines = collections.synchronizedMap (hashmap جديد <string ، httpsession> ()) ؛ // إضافة قفل المزامنة إلى الخريطة 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 (). getServletContext (). if (onlines.containskey (se.getSession (). getId ())) {onlines.remove (se.getSession (). }}}الحرف java (مرشح حرف)
package cn.hncu.filter ؛ استيراد java.io.ioException ؛ استيراد javax.servlet.filter ؛ استيراد javax.servlet.filterchain ؛ استيراد javax.servlet.filterConfig ؛ import javax.servlet.servletexception ؛ javax.servlet.http.httpservletRequest ؛ فئة عامة ، تنفذ Fairments filter {private string charset ؛ Override public void init (filterConfig filterConfig) يلقي servleTexception {charset = filterConfig.getInitParameter ("charset") ؛ } Override public void dofilter (request servletRequest ، استجابة servletResponse ، سلسلة filterchain) يلقي ioException ، servletexception {request.setcharacterencoding (charset) ؛ استجابة. setcharacterencoding (charset) ؛ httpservletrequest req = (httpservletrequest) طلب ؛ if (req.getSession (). getAttribute ("ip") == null) {req.getSession (). } chain.dofilter (طلب ، استجابة) ؛ } Override public void Dorner () {}}loginfilter.java (يمنع السياح من الوصول العشوائي إلى المرشحات)
package cn.hncu.filter ؛ استيراد java.io.ioException ؛ استيراد javax.servlet.filter ؛ استيراد javax.servlet.filterchain ؛ استيراد javax.servlet.filterConfig ؛ import javax.servlet.servletexception ؛ javax.servlet.http.httpservletrequest ؛ استيراد javax.servlet.http.httpservletrespons سلسلة filterchain) يلقي ioException ، servletexception {httpservletrequest req = (httpservletrequest) طلب ؛ if (req.getSession (). getAttribute ("user") == null) {((httpservletresponse). يعود؛ } chain.dofilter (طلب ، استجابة) ؛ } Override public void Dorner () {}}loginservlet.java
package cn.hncu.servlet ؛ استيراد java.io.ioException ؛ استيراد java.io.printwriter ؛ استيراد javax.servlet.servletexception ؛ استيراد javax.servlet.http.httpservlet ؛ استيراد javax.servlet.http.httpservlet javax.servlet.http.httpservletresponse ؛ import cn.hncu.domain.user ؛ فئة LoginServlet العامة يمتد httpservlet {public void doget (httpservletrequest request ، httpservletresponse) تراكم servlexception ، ioexpice {dopost ، الاستجابة) ؛ } public void dopost (طلب httpservletrequest ، استجابة httpservletponse) يلقي servleTexception ، ioException {string name = request.getParameter ("name") ؛ مستخدم المستخدم = (المستخدم) request.getSession (). getAttribute ("المستخدم") ؛ if (user == null && name! = null && name.trim (). length ()> 0) {// aspressure user = new user () ؛ user.setName (name) ؛ if (name.equals ("admin")) {user.setAdMin (true) ؛ }} request.getSession (). setAttribute ("user" ، user) ؛ Response.sendRedirect (request.getContextPath ()+"/index.jsp") ؛ }}shopervlet.java
package cn.hncu.servlet ؛ استيراد java.io.ioException ؛ استيراد java.io.printwriter ؛ استيراد java.text.simpledateformat ؛ استيراد java.util.arraylist ؛ استيراد java.util.date ؛ استيراد java.util.hashmap ؛ java.util.map ؛ import javax.servlet.servletexception ؛ استيراد javax.servlet.http.httpservlet ؛ استيراد javax.servlet.http.httpletrequest ؛ javax.servlet.http.httpservences ؛ يمتد Shopervlet httpservlet {public void doget (request httpservletrequest ، httpservletresponse) يلقي servletexception ، ioException {dopost (request ، reponse) ؛ } طلب dopost public void (httpservletrequest ، استجابة httpservletresponse) يلقي servletexception ، ioException {map <string ، httpsession> onlines = (map <string ، httpsession>) request.getServletContext (). قائمة <map <string ، object >> list = new ArrayList <map <string ، object >> () ؛ // bar Online تغلفها في قائمة if (onlines! = null) {iterator <httpsession> it = onlines.values (). iterator () ؛ بينما (it.hasnext ()) {httpsession s = it.next () ؛ خريطة <string ، object> map = new hashmap <string ، Object> () ؛ map.put ("id" ، s.getid ()) ؛ SimpleDateFormat sdf = جديد simpledateFormat ("Yyyy-MM-DD HH: MM: SS") ؛ map.put ("createTime" ، sdf.format (تاريخ جديد (S.GetCreationTime ()))) ؛ map.put ("lastAccatedTime" ، sdf.format (تاريخ جديد (S.GetLastAccatedTime ())))) ؛ map.put ("ip" ، s.getAttribute ("IP")) ؛ // معلومات IP تستكمل في الحرف map.put ("user" ، s.getAttribute ("user")) ؛ list.add (map) ؛ }} request.setattribute ("onlines" ، list) ؛ request.getRequestDispatcher ("/jsps/show.jsp"). }}kickoutservlet.java
package cn.hncu.servlet ؛ استيراد java.io.ioException ؛ استيراد java.io.printwriter ؛ استيراد java.util.map ؛ استيراد javax.servlet.servletexception ؛ import javax.servlet.http.httpservlet ؛ javax.servlet.http.httpservletresponse ؛ import javax.servlet.http.httpsession ؛ import javax.servlet.http.httpsession ؛ import javax.servlet.http.httpsession ؛ import javax.servlet.htttpession ؛ javax.servlet.http.httpsession ؛ استيراد javax.servlet.http.httpsession ؛ استيراد javax.servlet.http.httpsession يلقي ServleTexception ، ioException {dopost (طلب ، استجابة) ؛ } void void dopost (httpservletrequest request ، httpservletresponse report) يلقي servletexception ، ioException {string id = request.getParameter ("id") ؛ خريطة <string ، httpsession> onlines = (map <string ، httpsession>) request.getServletContext (). getAttribute ("onlines") ؛ if (onlines! = null) {if (onlines.containskey (id)) {onlines.get (id) .invalidate () ؛ }} request.getRequestDispatcher ("/servlet/showservlet"). إلى الأمام (طلب ، استجابة) ؛ }}loginoutservlet.java
package cn.hncu.servlet ؛ استيراد java.io.ioException ؛ استيراد java.io.printwriter ؛ استيراد javax.servlet.servletexception ؛ استيراد javax.servlet.http.httpservlet ؛ استيراد javax.servlet.http.httpservlet javax.servlet.http.httpservletresponse ؛ فئة LoginoutServlet public يمتد httpservlet {public void dogge (httpservletrequest request ، httpservletponse respress) servlexception ، ioException {dopost (request ، report) ؛ } public void dopost (httpservletrequest request ، httpservletresponse) يلقي servletexception ، ioException {request.getSession (). invoridate () ؛ Response.sendRedirect (request.getContextPath ()+"/index.jsp") ؛ }} ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.