今天,做到下面这道题:
在a.jsp页面中有以下代码:
<%
request.setAttribute("name", "JSP");
session.setAttribute("name", "JSP");
response.sendRedirect("b.jsp");
%>
在b.jsp中有如下代码:
<%
out.println(request.getAttribute("name"));
out.println(session.getAttribute("name"));
%>
在浏览器中访问a.jsp后显示的内容是:
A JSP
JSP
B null
JSP
C JSP JSP
D null JSP
先说下我的看法这道题:
request.setAttribute("name", "JSP");session.setAttribute("name", "JSP");这两句给request和session的name属性赋值,都为“JSP”。不过,由于request是一次请求有效(服务器跳转),session是对用户的一次会话范围有效(就是说无数次跳转均有效,不关闭浏览器的情况下)。而 response.sendRedirect("b.jsp");是客户端跳转,所以request的name值为null,session的name是"JSP"。所以我觉得是B
后来才发觉是D!很是不解,因为out.println()觉得应该要换行,才对,居然不换行?
原来是因为html的换行是<br>
那out.的换行又跟html的有什么不同?
答:out.println的东西就相当于在页面写html代码
另外 html代码换行并不能导致页面显示的换行,还得在要换行的代码后加<br> , 因此你的程序得这样写:
out.println(j+"<br>");