2016-06-11 117 views
0

我还没有能够在书面采访中回答这两个问题,我可以每个人都帮我吗?JSP Interview,如何将数据从Servlet传递给JSP?

问题1)假设您希望Servlet将持久数据发送到JSP页面,以便不同的用户获得不同的数据,下列哪个句子是正确的?你可以使用指令:request.getSession()。setAttribute(E,F); JSP页面将使用scope =“page”和id =“E”的动作jsp:useBean来读取信息。你可以使用指令:request.getSession()。setAttribute(E,F); JSP页面将使用scope =“session”和id =“E”的动作jsp:useBean来读取信息。

我认为B)可能是正确的答案,但我不知道如果我完全理解什么是“持久性数据”是指..

问题2)如果一个servlet发送一个bean的JSP页面,其他JSP页面或将来访问该bean的servlet始终可以看到对JSP页面内部生成的bean的可能更改。对或错?

我想这是假的,但我就是不能把它很好地解释了..

提前感谢你们!

回答

0

对于问题1: 指令:request.getSession()。setAttribute(E,F); 这是会话范围,属性在会话中设置,所以正确的答案是B 我认为持久数据意味着只要会话持续这个数据是持久的

2

问题1:以上都不是。没有理由将bean存储在会话属性中。它应该存储在一个请求属性中。视图根本不应该使用jsp:useBean。 17年前就是这样做的。应该使用JSP EL代替。但是,当然,试图在页面范围中查找bean将不起作用,因为它已存储在会话范围中。

问题2:首先,JSP不应该修改从servlet接收到的bean。 JSP是一个视图,应该显示它从控制器接收到的模型。不要修改它。即使它修改了bean,也取决于bean的范围。如果bean已由servlet创建,存储在request属性中并传递给JSP,则该bean不会从任何其他组件中看到,并且只要处理完请求就可以使用GC。如果它是由servlet传递给多个页面的单例,那么所有页面将获得相同的单例对象,并且这些更改因此将可见(假设同步正确使用)到所有JSP。

坦率地说,问题再多说了很多关于雇主不是答案对你说:用人单位似乎并不明白他在做什么,并使用其工具,如果从1999年开始

什么也没改变