ตัวดักจับการเข้าสู่ระบบที่ง่ายมากรหัสเฉพาะมีดังนี้:
รหัสต่อไปนี้คือรหัสที่สืบทอดครั้งเดียว
/ ** * * @author geoin * @date 2012-4-10 2:37:38 PM */ แพ็คเกจ com.test.spring.filter; นำเข้า java.io.ioException; นำเข้า java.io.printwriter; นำเข้า Javax.servlet.filterchain; นำเข้า javax.servlet.servletexception; นำเข้า javax.servlet.http.httpservletrequest; นำเข้า Javax.servlet.http.httpservletResponse; นำเข้า org.springframework.web.filter.onceperrequestfilter; /** * ตัวกรองเข้าสู่ระบบ * * @author geoin * @date 2012-4-10 2:37:38 PM * /เซสชั่นชั้นเรียนสาธารณะขยายเวลาหนึ่งครั้ง javax.servlet.http.httpservletrequest, * javax.servlet.http.httpservletresponse, javax.servlet.filterchain) */ @Override void dofilterInternal ioException {// แต่สตริง uri ที่กรอง [] notfilter = สตริงใหม่ [] {"login.html", "index.html"}; // ที่ร้องขอ uri string uri = request.getRequesturi (); // ตัวกรองถ้า (uri.indexof ("พื้นหลัง")! = -1) {// ว่าจะกรอง boolean dofilter = true; สำหรับ (String s: notfilter) {ถ้า (uri.indexof (s)! = -1) {// ถ้า uri มี uri ที่ไม่มีการกรอง, dofilter = false; หยุดพัก; }} if (dofilter) {// ดำเนินการกรอง // รับเอนทิตีของล็อกอินจากวัตถุเซสชัน obj = request.getSession (). getAttribute ("logineduser"); ถ้า (null == obj) {// ถ้าเอนทิตีเข้าสู่ระบบไม่มีอยู่ในเซสชันกล่องป๊อปอัพจะแจ้งให้เข้าสู่ระบบอีกครั้ง // ตั้งค่าตัวละครของคำขอและการตอบสนองเพื่อป้องกันการร้องขอที่อ่านไม่ออก setcharacterencoding ("UTF-8"); Response.Setcharacterencoding ("UTF-8"); PrintWriter out = response.getWriter (); สตริง loginPage = ".... "; StringBuilder builder = new StringBuilder (); builder.append ("<script type =" text/javascript/">"); builder.append ("การแจ้งเตือน ('หน้าเว็บหมดอายุโปรดเข้าสู่ระบบอีกครั้ง!');"); builder.append ("window.top.location.href = '"); builder.append (LoginPage); builder.append ("';"); builder.append ("</script>"); out.print (builder.toString ()); } else {// ถ้าเอนทิตีเข้าสู่ระบบมีอยู่ในเซสชันให้ดำเนินการต่อ FilterChain.dofilter (คำขอ, การตอบกลับ); }} else {// หากไม่ได้ดำเนินการกรองให้ดำเนินการต่อ FilterChain.dofilter (คำขอการตอบกลับ); }} else {// หาก URI ไม่มีพื้นหลังให้ดำเนินการต่อ FilterChain.dofilter (คำขอการตอบกลับ) - หลังจากเขียนตัวกรองแล้วคุณจะต้องกำหนดค่าใน web.xml:
<Tilter> <Tilter-Name> SessionFilter </filter-name> <silter-class> com.test.spring.filter.sessionFilter </filter-class> </filter>
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น