JSP错题纠错
A:判断学员是否手动安装过Tomcat(练习熟练度) B:使学员了解Tomcat的运行过程 ,浏览器向Web服务器发送请求,Web站点处理请求后,把处理后的结果响应给浏览器 C:Tomcat作为Web服务器,可以部署Web站点以提供对浏览器访问的支持,不可以部署C/S程序 D:Web容器提供的基本功能(理解) 通过以上分析:对Tomcat描述不正确的是C
d答案错误,因为通过import导包的时候,不同的类文件之间用逗号隔开,应该为:<%@page import="java.util.*,java.text.*" %>
因为是转发,所以可以在a.jsp页面获得到请求对象中值。所以正确答案为B
request.getParameter("userId")得到的是第一个表单元素名称为“userId”的值,而要获得同名的多个表单元素的值,则需要通过request.getParameterValues(“userId”)来获取,返回一个字符串数组。所以答案为bc。
index.jsp中form中name为loginName最终值是bdqn到达loginDo.jsp后
再使用转发方式跳转到loginSuccess.jsp,故request的信息没有丢失使用可以得到参数名为loginName值是bdqn
首先,session的出现确实是为了解决HTTP无法保持客户状态的特点;因此A选项正确;用户信息也是客户状态的一部分,所以由A可以看出B的说法就不对了;接着,Session里信息是否安全并不取决于存放在哪里,而取决于session实现机制和获取机制,而且session也没有明确的规定其存放空间的大小限制,因此C、D也不对;
![](https://images2015.cnblogs.com/blog/903295/201607/903295-20160703160556265-396703102.png)
提交表单请求时,应为设置请求的字符编码,语法格式应该是:request.setCharacterEncoding("GBK"); 所以D答案正确
Config对象是在服务器启动时就自动创建的对象,而Servlet创建时,通常是通过其获取初始化所需的信息。
答案选A
静态包含将页面包含进来以后在一起执行。此时变量i重名
01.从客户端发送的请求数量来看,重定向是向服务器发送了两次请求。而转发是服务器内部进的操作,只发送了一次请求,request对象中的数据可以保留 。
02.从URL显示的角度来说:重定向这两次请求都是直接受浏览器干预的。也就是说重定向后url地址栏里看到的地址发生变化了。而转发是由服务器内部从一个资源页面定位到另一个资源页面,并没有经过浏览器干预,所以url地址栏没有发生改变。
结论:要想在request中保存数据,那么就使用转发,否则使用重定向。
重定向和转发有一个重要的不同:当使用转发时,JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程。 与之相反,重定向方式的含义是第一个页面通知浏览器发送一个新的页面请求。因为,当你使用重定向时,浏览器中所显示的URL会变成新页面的URL, 而当使用转发时,该URL会保持不变。重定向的速度比转发慢,因为浏览器还得发出一个新的请求。同时,由于重定向方式产生了一个新的请求,所以经过一次重定向后,request内的对象将无法使用。
怎么选择是重定向还是转发呢?通常情况下转发更快,而且能保持request内的对象,所以他是第一选择。但是由于在转发之后,浏览器中URL仍然指向开始页面,此时如果重载当前页面,开始页面将会被重新调用。如果你不想看到这样的情况,则选择转发。
转发和重定向的区别
不要仅仅为了把变量传到下一个页面而使用session作用域,那会无故增大变量的作用域,转发也许可以帮助你解决这个问题。
重定向:以前的request中存放的变量全部失效,并进入一个新的request作用域。
转发:以前的request中存放的变量不会失效,就像把两个页面拼到了一起。
response.sendRedirect("index2.jsp");为重定向,得不到request对象里的值,所以输出内容为null。答案a正确
所有的JSP都会在客户端发出请求后被容器转译成servlet的源代码(java),然后再将源码(java)编译成servlet的类(class),放入到内存里面。其中,<%! int a=0;%>定义的是类的成员变量,<% int b=0; %>则定义的是service方法中的局部变量。除第一次请求外,其他两次请求都只调用service方法。本题答案为c。
重定向是客户端行为,是发送的二次请求,所以不能使用第一次请求中request的数据 a答案错误
1 写入Cookie的语法:
response.addCookie(cookName);
response.sendRedirect("地址");
2 读取Cookie信息:
request.getCookies();