一个公司的JSP面试题目,看看怎么做,谢谢
1。给定一个自定义标签代码如下; 
    public   int   doStartTag()   throws   JspTagException 
 { 
    pageContext.getAttribute( "A "); 
    return   EVAL_BODY_INCLUDE; 
 } 
 问:如果pageContext.getAttribute( "A ");返回的引用不是null,问这个对象存储在什么范围? 
 答案有A.page;B.request   C   session   D.application   
 2.在a.jsp中有如下代码: 
  <%=request.setAttribute( "name ", "hello ")%>  
 在b.jsp中有如下代码片段 
  <%out.print(request.getAttribute( "name ");%>  
 问:允许a.jsp,要在浏览器上输出hello,那么可以用下面什么方法: 
 A.在a.jsp中使用 <form   action= "b.jsp "   form= "post ">  
 B.在a.jsp中使用 <jsp:forward   page= "b.jsp "/>  
 C.在a.jsp中使用 <%@   include   file= "b.jsp "%>  
 该题的答案是B和C是正确的,我在电脑上试验了,我很纳闷为什么A不对呢?反而C是正确的,那位高手能指点一下,谢谢 
------解决方案--------------------A.在a.jsp中使用 <form action= "b.jsp " form= "post ">  //是发一个新的请求 不共享request数据 
------解决方案--------------------1。 A , pageContext  自然page范围咯
------解决方案--------------------.在a.jsp中使用 <form action= "b.jsp " form= "post ">  //是发一个新的请求 不共享request数据   
 我认为该语句把请求转发给b.jsp,应该共享该request数据呀?   
 -------------------------------------------------   
 错误。form action确实会“把请求转发给b.jsp”,但是不是生成目前HTML的那个request(也就是a.jsp的request)。仔细想一下,form action需要客户端的触发,也就是用户选择提交或者js提交,这个时候a.jsp的request早消失的无影无踪了。
------解决方案--------------------1.是page 
 2.B.C 
   include和forward是转递参数的页面跳转,这样跳转后获得的request对象就是原来那一个, 
   而 <form action= "b.jsp " form= "post "> 这样会等于重新发送一个http请求,也就没有在原来的request作用域里.也就没发在b.jsp中get... 这个和sendDirect一样的.