JavaWeb 基础知识测试题及答案
JavaWeb基础知识测试题及答案
1. 以下关于B/S、C/S说法正确的是()。 A: B/S架构比C/S架构更优秀 B: B/S架构是C/S架构的替代品 C: B/S是指浏览器/服务器,C/S是指客户端/服务器 D: B/S架构比C/S架构的维护和升级方式简单
答案:D
解析:
- B/S架构和C/S架构各有优劣,不能简单地说哪种架构更优秀。
- B/S架构不是C/S架构的替代品,它们在不同的场景下有不同的应用。
- B/S是指浏览器/服务器,C/S是指客户端/服务器,这是正确的。
- B/S架构比C/S架构的维护和升级方式简单,因为B/S架构的客户端只需要更新浏览器,而C/S架构的客户端需要更新软件。
2. 以下哪个选项表示请求转发() A. response.forward() B. response.sendRedirect() C. session.getRequestDispatcher().forward(request,response) D. request.getRequestDispatcher().forward(request,response)
答案:D
解析:
response.forward()用于服务器内部的请求转发,将请求转发到同一个应用程序中的另一个资源,不会改变浏览器地址栏。response.sendRedirect()用于重定向,将请求发送到一个新的 URL,会改变浏览器地址栏。session.getRequestDispatcher().forward(request,response)无法实现请求转发。request.getRequestDispatcher().forward(request,response)用于服务器内部的请求转发,将请求转发到同一个应用程序中的另一个资源,不会改变浏览器地址栏。
3. 给定一个 Servlet 的 doGet方法中的代码片段,如下:
request.setAttribute('name','zhang');
request.getRequestDispatcher('/myservlet');
那么在MyServlet中可以使用()方法把属性 name的值取出来。 A. String str = request.getAttribute('name'); B. String str = (String) request.getAttribute('name'); C. Object str = request.getAttribute('name'); D. 无法取出来
答案:B
解析:
request.setAttribute()方法用于在请求范围内设置属性,属性值可以是任何类型。request.getAttribute()方法用于获取请求范围内的属性值,返回类型为Object。- 由于
name属性的值是String类型,因此需要将获取到的Object类型强制转换为String类型。
4. 下面( )方法可以返回当前请求的请求方式 A. request.getAttribute() B. session.getMethod() C. request.getMethod() D. request.getRequestURI()
答案:C
解析:
request.getAttribute()用于获取请求范围内的属性值。session.getMethod()无法获取请求方式。request.getMethod()用于获取当前请求的请求方式,例如GET、POST等。request.getRequestURI()用于获取请求的 URL。
5. 当一个Servlet首次被请求的时候,服务器首先会调用________方法 A. doGet B. doPost C. doInit D. init
答案:D
解析:
doGet和doPost方法分别用于处理GET和POST请求。doInit方法在 Servlet 初始化时被调用,用于初始化 Servlet 对象。init方法在 Servlet 初始化时被调用,用于初始化 Servlet 对象。
6. 从HTTP请求中,获得请求参数,应该调用( ) A. request对象的getAttribute()方法 B. request对象的getParameter()方法 C. session对象的getAttribute()方法 D. session对象的getParameter()方法
答案:B
解析:
request.getAttribute()用于获取请求范围内的属性值。request.getParameter()用于获取 HTTP 请求中的参数值。session.getAttribute()用于获取会话范围内的属性值。session.getParameter()无法获取 HTTP 请求中的参数值。
7. 使用POST方式提交数据,接收数据时,处理中文乱码最直接有效方式为 ( ) A. request.setCharacterEncoding('utf-8'); B. response.setContentType('text/html;charset=utf-8'); C. String name = new String(request.getParameter('name').getBytes('ISO-8859-1'),'gbk'); D. response.setCharacterEncoding('gbk');
答案:A
解析:
request.setCharacterEncoding('utf-8');用于设置请求的字符编码为UTF-8,可以有效地解决中文乱码问题。response.setContentType('text/html;charset=utf-8');用于设置响应的字符编码为UTF-8,用于控制页面显示的字符编码。String name = new String(request.getParameter('name').getBytes('ISO-8859-1'),'gbk');可以用于将ISO-8859-1编码的字符串转换为GBK编码,但不是解决中文乱码的最佳方法。response.setCharacterEncoding('gbk');用于设置响应的字符编码为GBK,用于控制页面显示的字符编码。
8. 完整的配置一个Servlet需要__________________标签
A.
答案:B
解析:
<servlet></servlet>标签用于配置 Servlet,包括 Servlet 的名称和类名。<servlet-mapping></servlet-mapping>标签用于将 Servlet 映射到 URL 模式,用于指定访问 Servlet 的 URL。
9. 在HTTP协议中,用于发送大量数据的方法是 ( ) A. get B. post C. put D. options
答案:B
解析:
GET方法用于获取资源,数据量一般较小。POST方法用于提交数据,数据量可以比较大。PUT方法用于更新资源。OPTIONS方法用于获取服务器支持的 HTTP 方法。
10. 在J2EE中,给定某Servlet的代码如下,编译运行该文件,以下陈述正确的是( )。
public class Servlet1 extends HttpServlet {
public void init() throws ServletException {
}
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println('hello!');
}
}
A. 编译该文件时会提示缺少doGet()或者dopost()方法,编译不能够成功通过 B. 编译后,把Servlet1.class放在正确位置,运行该Servlet,在浏览器中会看到输出文字:hello! C. 编译后,把Servlet1.class放在正确位置,运行该Servlet,在浏览器中看不到任何输出的文字 D. 编译后,把Servlet1.class放在正确位置,运行该Servlet,在浏览器中会看到运行期错误信息内容
答案:B
解析:
- Servlet 继承了
HttpServlet类,HttpServlet类中定义了doGet()和doPost()方法,用于处理GET和POST请求。 service()方法用于处理所有类型的请求,它会根据请求方式调用doGet()或doPost()方法。- 由于
Servlet1类中没有覆盖doGet()和doPost()方法,所以service()方法会默认调用doGet()方法。 - 因此,编译后,运行
Servlet1,在浏览器中会看到输出文字:hello!。
注意: 在实际开发中,建议覆盖 doGet() 和 doPost() 方法,以处理不同的请求类型。
原文地址: https://www.cveoy.top/t/topic/oTyW 著作权归作者所有。请勿转载和采集!