รู้เบื้องต้นเกี่ยวกับ httpservletrequest
วัตถุ HTTPSERVLETREQUEST แสดงถึงคำขอของลูกค้า เมื่อไคลเอนต์เข้าถึงเซิร์ฟเวอร์ผ่านโปรโตคอล HTTP ข้อมูลทั้งหมดในส่วนหัวคำขอ HTTP จะถูกห่อหุ้มในวัตถุนี้ ผ่านวิธีการที่ได้รับจากวัตถุนี้ข้อมูลทั้งหมดที่ลูกค้าร้องขอสามารถรับได้
การแนะนำ
บทความนี้ส่วนใหญ่แนะนำเนื้อหาที่เกี่ยวข้องเกี่ยวกับความปลอดภัยของ Spring MVC Direct Injection ของ HttpservletRequest ดูเหมือนเป็นคำถามที่ง่ายมากดังนั้นเราจึงสามารถติดตามการประมวลผลซอร์สโค้ดของฤดูใบไม้ผลิได้
มีรหัสประเภทนี้มากมายในการควบคุมที่เขียน SpringMVC หากคุณต้องการให้วัตถุคำขอทำอะไรบางอย่าง
ชอบ:
@controller@requestmapping (value = "/user") Public Class LoanactionPage ขยายบทคัดย่อ {@requestmapping (value = "/page/active") public String loanaaccountactivePage (httpservletRequest Request) {// รับคำขอดูเหมือนว่าทุกครั้งที่ฉันต้องการเขียนการควบคุมฉันต้องส่งคำขอเป็นพารามิเตอร์ซึ่งซ้ำซ้อนมาก
ในความเป็นจริงคุณสามารถกำหนดวัตถุคำขอในการควบคุมฉีดและใช้งานได้ตลอดเวลา
ชอบ:
บทคัดย่อระดับสาธารณะ {@autowiredprotected httpservletrequest คำขอ; ... ...จากนั้นใช้โดยตรงในการควบคุม:
@controller@requestmapping (value = "/user") Public Class LoanactionPage ขยาย AbstractAction {@requestMapping (value = "/page/active") สตริงสาธารณะ loanaaccountactivePage () {// รับคำขอไปยัง dosomethingstring pathinfo = request.getPathInfo (); return "; -ดังนั้นคำถามคือ Sevlets มีหลายเธรดและคำขอในแต่ละครั้งที่พวกเขาร้องขอเป็นวัตถุใหม่ การแบ่งปันการอ้างอิงจะทำให้เธรดไม่ปลอดภัยโดยตรงหรือไม่?
สะดวกและปัญหาก็อยู่ที่นี่ Servert เป็นแบบมัลติเธรดจริง มีปัญหาด้านความปลอดภัยกับการแบ่งปันคำขอหรือไม่? วิเคราะห์รหัสสปริง
1. คำขอฉีดมาจากไหน?
พบว่าการฉีดนั้นจะไปที่ WebApplicationContextUtils เพื่อรับค่าผ่าน requestObjectFactory และติดตามมัน
ส่งคืนค่าใน requestcontextholder แทร็ก requestcontextholder
คำขอที่ส่งคืนทุกครั้งเป็นคำขอในคลาสการใช้งาน servletwebrequest (servletrequestattributes) เนื่องจาก requestattributes เป็นของ Threadlocal คำขอที่ถูกฉีดจึงเป็นเธรดที่ปลอดภัย
2. วัตถุคำขอตั้งค่าตามฤดูใบไม้ผลิเมื่อใด
httpservlet การใช้งานคลาสคลาส FrameworkServlet-> service()->processRequst()
แต่ละคำขอจะตั้งค่าคำขอล่าสุดและตั้งค่า
สรุป
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่าเนื้อหาของบทความนี้จะมีค่าอ้างอิงบางอย่างสำหรับการศึกษาหรือที่ทำงานของทุกคน หากคุณมีคำถามใด ๆ คุณสามารถฝากข้อความไว้เพื่อสื่อสาร ขอบคุณสำหรับการสนับสนุน Wulin.com