หากคุณไม่ได้ลงชื่อเข้าใช้คุณจะไม่ได้รับอนุญาตให้เข้าถึงหน้าเว็บในโฟลเดอร์พื้นหลัง จะตรวจสอบได้อย่างไรว่าจะเข้าสู่ระบบหรือไม่? พื้นหลังเป็นไดเรกทอรีสำคัญ ทุกคนที่ดำเนินการไดเรกทอรีนี้จำเป็นต้องเขียนในตารางบันทึก จะใช้งานได้อย่างไร? Interceptor เป็นหนึ่งในโซลูชันการใช้งาน
(1) เพิ่ม SystemInterceptor ในแพ็คเกจ com.geloin.spring.interceptor และทำให้มันรับมรดก HandlerInterceptor
/ ** * * @author geoin */ แพ็คเกจ com.geloin.spring.interceptor; นำเข้า java.io.printwriter; นำเข้า java.util.iterator; นำเข้า java.util.map; นำเข้า Javax.annotation.Resource; นำเข้า javax.servlet.http.httpservletrequest; นำเข้า Javax.servlet.http.httpservletResponse; นำเข้า org.springframework.stereotype.repository; นำเข้า org.springframework.web.servlet.handler.handlerinterceptoradapter; นำเข้า com.embest.ruisystem.form.systemloggerform; นำเข้า com.embest.ruisystem.form.systemuserform; นำเข้า com.embest.ruisystem.service.systemloggerservice; นำเข้า com.embest.ruisystem.util.constants; นำเข้า com.embest.ruisystem.util.datautil; / ** * * @author geoin */ @repository ชั้นเรียนสาธารณะ SystemInterceptor ขยาย HandlerInterceptorAdapter {@Resource (NAME = "SystemLogGerservice") SystemLoggerservice SystemLogGerservice; / * * (ไม่ใช่ javadoc) * * @see * org.springframework.web.servlet.handler.handlerinterceptoradapter#prehandle * (javax.servlet.http.httpservletrequest, * javax.servlet.http.https @suppresswarnings ({"rawtypes", "unchecked"}) @Override บูลีนสาธารณะ prehandle (httpservletrequest คำขอ, httpservletResponse การตอบสนอง, ตัวจัดการวัตถุ) โยนข้อยกเว้น {คำขอ Response.Setcharacterencoding ("UTF-8"); Response.setContentType ("ข้อความ/html; charset = utf-8"); // สตริงการควบคุมเซสชันพื้นหลัง [] nofilters = สตริงใหม่ [] {"login.html", "vericode.html", "index.html", "logout.html"}; String uri = request.getRequesturi (); if (uri.indexof ("พื้นหลัง")! = -1) {boolean befilter = true; สำหรับ (String s: nofilters) {ถ้า (uri.indexof (s)! = -1) {befilter = false; หยุดพัก; }} if (befilter) {object obj = request.getSession (). getAttribute (ค่าคงที่ logined); if (null == obj) {// ไม่เข้าสู่ระบบ printWriter out = response.getWriter (); StringBuilder builder = new StringBuilder (); builder.append ("<script type =" text/javascript/"charset =/" utf-8/">"); builder.append ("การแจ้งเตือน (/" หน้าหมดอายุโปรดเข้าสู่ระบบอีกครั้ง/");"); builder.append ("window.top.location.href =/" "); builder.append (ค่าคงที่. basepath); builder.append ("/background/index.html/"; </script>"); out.print (builder.toString ()); out.close (); กลับเท็จ; } else {// เพิ่ม log string operatecontent = ค่าคงที่. operatecontent (uri); if (null! = operatecontent) {string url = uri.substring (uri.indexof ("พื้นหลัง")); string ip = request.getRemoteaddr (); จำนวนเต็ม userId = ((systemUserform) obj) .getId (); SystemLoggerForm Form = new SystemLoggerForm (); form.setUserId (userID); Form.setip (IP); Form.setOperatecontent (OperAtecontent); Form.seturl (URL); this.systemloggerservice.edit (แบบฟอร์ม); }}}} แผนที่ paramsmap = request.getParameterMap (); สำหรับ (iterator <map.entry> it = paramsmap.entryset (). iterator (); it .hasnext ();) {map.entry entry = it.next (); Object [] value = (Object []) entry.getValue (); สำหรับ (Object obj: ค่า) {ถ้า (! dataUtil.isvaluesuccessed (obj)) {โยน runtimeException ใหม่ ("มีอักขระที่ผิดกฎหมาย:" + obj); }}} return super.prehandle (คำขอ, การตอบสนอง, ตัวจัดการ); -(2) แก้ไข context-dispatcher.xml เพื่อให้สปริงจัดการตัวดักจับ
<MVC: interceptors> <bean /> </mvc: interceptors>
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น