Archief - [PROG]Java Webapplicatie, vraagje

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

tmagus

Legacy Member
Ik ben dus op zoek naar de 3de manier om data bij te houden bij bij een webapplicatie.

Gekunt dus per Sessie iets bijhouden (vb user related) met SessionAttribute
Gekunt dus per request iets bijhouden (vb waarde doorgeven) met RequestAttribute

maar er is nog een derde dacht ik? da ge over uw ganse applicatie een sessie kon bijhouden waar ge dus altijd aan kunt, ik had da ergens eens gelezen maar ben de link dus kwijt en vin het nie direct terug, dus ik dacht mss weet er hier iemand iets meer over wa ik zoek :p

alvast bedankt

tmagus

Legacy Member
WHiSPy zei:
Application- en page-scope. ;)

Enig mogelijkheid om een linkje met een voorbeeld code? of een klein voorbeeldje te maken hoe je die aanmaakt, want kvin het lijk nie op den google :p

tnx

Ollie

Legacy Member
In je servlet:

ServletContext servletContext = getServletContext() ;
servletContext.setAttribute("now", new Date()) ;

Bavo aka Joske

Legacy Member
WHiSPy zei:
Application- en page-scope. ;)

Application scope is idd wat hij zoekt. Pagescope is een iets zeldzamere en technischere variant van request-scope.

tmagus

Legacy Member
Ollie zei:
In je servlet:

ServletContext servletContext = getServletContext() ;
servletContext.setAttribute("now", new Date()) ;

Tnx is indeed wat ik zocht :niceone:

:applause:

tmagus

Legacy Member
Ok, mss nog een klein vraagje :p

Ben effen aan het testen met die application scope,

nu in nen servlet werkt da dus :) en raak ik daar dus aan.

Ma nu vroeg ik me dus af, als ik aan mijn ServletContext wil raken in nen Filter hoe dat je dat doet?

Code:
public class OpenSession implements Filter {
	
	
	public void destroy() {
    }

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain filter) throws IOException, ServletException {
        System.out.println("xxxfilter");

        this.httpSession = ((HttpServletRequest)request).getSession();
       

       

    public void init(FilterConfig arg0) throws ServletException
    {
       	
    }

Aan mijn gewone Session this.httpSession = ((HttpServletRequest)request).getSession(); raak ik dus en da werkt dus ook :)

ma ik dacht het logische zelfde te doen voor ServletContext:
this.context = ((ServletContext)request);
maar die vlieger gaat precies nie op :p
java.lang.ClassCastException: org.apache.catalina.connector.RequestFacade cannot be cast to javax.servlet.ServletContext

dus wat is wel de juist manier om uit nen filter daar aan te raken?

Of moet ik "public class OpenSession extends HttpServlet implements Filter" gewoon doen?

EDIT:
Net effen geprobeerd met die extends HttpServlet en als ik dit dan doe:
ServletContext context = getServletContext();

Krijg ik dus een vette nullPointerException :p
java.lang.NullPointerException
at javax.servlet.GenericServlet.getServletContext(GenericServlet.java:160)
at com.svanhoof.hibernate.OpenSession.doFilter(OpenSession.java:53)

pfff Servlets zijn nog nie echt mijn ding :sad:

extra code da is mijn servlet waar ik dus iets in mijn context stop:
Code:
public class IniDefaultFactory extends HttpServlet {
	private ServletContext context;
	
	public IniDefaultFactory()
	{
		super();
	}
	
	@Override
    public void init() throws ServletException
    {
		//TODO Remove System.out.println("Build DefaultFactorySession");
		System.out.println("Build DefaultFactorySession");
		this.context = getServletContext() ;
		SessionFactory test = HibernateUtil.buildDefaultFactorySession();
		this.context.setAttribute("defaultDB", test);
    }
}
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan