Wenn Sie Spring verwenden, müssen Sie häufig Sitzungs- und Anforderungsobjekte in normalen Klassen abrufen.
Wenn Sie beispielsweise bei einigen AOP-Interceptor-Klassen struts2 verwenden, können Sie das Sitzungsobjekt problemlos über org.apache.struts2.ServletActionContext abrufen, da struts2 über eine Schnittstelle verfügt.
Verwendung:
ServletActionContext.getRequest().getSession();
Wie erhält man in den normalen Klassen traditioneller Java-Spring-Projekte eine Sitzung und eine Anfrage?
1. Fügen Sie den folgenden Code zu web.xml hinzu:
<listener> <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> </listener>
2. Sie können Sitzung und Anforderung direkt in normale Klassen einfügen
@Autowired private HttpSession session; @Autowired private HttpServletRequest request;
Darüber hinaus in After the Listener Im ersten Schritt können Sie auch Code verwenden, um das erforderliche Objekt abzurufen:
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
Wenn Sie sich in einem Spring-Boot-Projekt befinden und keine web.xml vorhanden ist, müssen Sie den Listener nicht manuell im registrieren Erster Schritt: Sie können Sitzungen und Anfragen direkt in normale Klassen einbinden.
Das obige ist der detaillierte Inhalt vonGewöhnliche Spring-Klassen erhalten Sitzungs- und Anforderungsobjekte. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!