JavaWeb 期末考--复盘

Javaweb 期末复习题目

1

单选

2

多选

3

问答与分析

4

程序填空

5

程序设计(该部分无)

需要word版资料详见文章末尾,免费自提

0、学期知识点回顾

一、注释和注解

1、Java的三种注释:单行、多行和文档注释

2、常用的元注解:

(1)当 @Retention 应用到一个注解上的时候,它解释说明了这个注解的存活时间。取值如下:

  1. RetentionPolicy.SOURCE 注解只在源码阶段保留,在编译器进行编译时它将被丢弃忽视。
  2. RetentionPolicy.CLASS 注解只被保留到编译进行的时候,它并不会被加载到 JVM 中。
  3. RetentionPolicy.RUNTIME 注解可以保留到程序运行的时候,它会被加载进入到 JVM 中,所以在程序运行时可以获取到它们。

(2) @Target 指定了注解运用的地方

二、Java Web开发入门

1、Java的3个版本

(1)Java SE:用于桌面应用软件的开发

(2)Java EE:用于开发高访问量、大数据量、高并发量的网站

(3)Java ME:用于嵌入式系统和移动平台的开发

2、B/S架构

(1)优点:客户端无需安装,有Web浏览器即可;B/S架构无需升级多个客户端,升级Web服务器即可。

(2)缺点:在跨浏览器上,B/S架构不尽如人意;表现要达到C/S程序的程度需要花费不少精力;在速度和安全性上需要花费较大的设计成本

3、常见的Java web服务器

        Tomcat服务器、Resin服务器、JBoss服务器、WebSphere服务器、WebLogic服务器

4、常见的Java IDE

        Jcreator、netbeans、IDEA、Eclipse 、MyEclipse

5、HTTP请求的两种方式:GET和POST。

        只有一种情况可以发送POST请求:

;其余情况,都是GET请求。

6、GET和POST的区别

(1)GET在请求行中提交数据,发送的数据会显示在地址栏上POST在请求体中提交数据,发送的数据不会显示在地址栏

(2)GET无法发送大数据量;POST可以发送大数据量,理论上没有限制。

(3)GET只能发送字符串数据;POST可以发送任何类型的数据,包括字符串、视频、声音、图片等。

(4)W3C的建议:GET请求适合从服务器端获取数据;POST请求适合向服务器端传送数据

7、如何选择使用GET请求和POST请求?

(1)如果是从服务器获取资源,比如搜索,建议使用GET;如果是向服务器提交数据,建议使用POST。

(2)有敏感数据,比如登录,使用POST

(3)传送数据不是字符串,比如文件上传,必须POST。

(4)传送的数据很多,使用POST。                 

三、Servlet

1、Servlet运行在Servlet容器(Web应用服务器/Tomcat)中,负责与客户端进行通信。

2、静态页面开发技术:HTML、css、javascrpit

3、动态页面开发技术:JSP/Servlet、ASPX、PHP

4、Srevlet的配置

(1)基于XML文件的方式:在web.xml中配置

(2)基于注解的方式:@WebServlet

5、Servlet的生命周期方法

(1)无参构造函数:当servlet第一次被访问时,调用构造方法创建对象。只调用一次

(2)init:只调用一次(在第一次访问Servlet时被调用一次),初始化对象。

(3)service:调用N次,执行业务逻辑方法。该方法在访问servlet时,都会被调用。

(4)destory:只调用一次,在servlet对象被销毁之前调用,完成清理资源等工作

四、JSP基本语法

1、JSP(Java Server Pages)主要作用:代替Servlet程序回传html页面。

2、JSP的本质是一个Servlet。 当第一次访问 jsp页面的时候,Tomcat 服务器会把jsp 页面翻译成为一个java源文件,并将它编译成为.class文件。

3、JSP将Java代码嵌入到静态的HTML中,从而产生动态的输出;在客户端的HTM源代码中无法看到JSP页面中的Java代码。

4、JSP中嵌入java程序有三种方式:JSP程序段、JSP声明、JSP表达式

5、JSP程序段

(1)作用:执行 Java 逻辑代码

(2)格式:<%   Java代码    %>     

(3)特点:JSP程序段翻译之后在_jspService ()方法中、

6、JSP声明

(1)作用:     给jsp翻译出来的java类定义方法、属性。

(2)格式:     <%!  声明java代码 %>

(3)特点:     JSP声明翻译之后会在放在Java类中。

7、JSP表达式

(1)作用:     在jsp页面上输出数据。

(2)格式:     <%= 表达式 %>

(3)特点:JSP表达式会被翻译到 _jspService()方法中;JSP表达式会被翻译成为out.print()输出到页面上;JSP表达式不能以分号结束。

8、out.print()和out.write()

(1)print()在子类JspWriter中定义,write()是Writer类的方法。

(2)print()可将各种类型的数据转换成字符串输出,而write()只能输出字符、字符数组和字符串等与字符相关的数据

(3)使用print()和write()都可以输出字符串,但是,如果字符串对象的值为null时,print方法将输出内容为“null”的字符串,而write方法则是抛出NullPointerException异常。

六、JSP内置对象(一)

1、request是HttpServletRequest类型,常用方法:

(1)String getContextPath():获取当前web应用的上下文路径,比如/web6

(2)String getMethod():返回客户端请求方式,一般是GET/POST

(3)String[] getParameterValues(String key) :通过key获取value

(4)String getParameter(String key) :通过key获取value一维数组中的首元素

(5)void setCharacterEncoding(String charset):设置为setCharacterEncoding(“utf-8”),用于解决post请求的中文乱码。

(6)void setAttribute(String key,Object value) :通过键值对的形式保存数据。

(7)Object getAttribute(String key) :通过key取出value

(8)RequestDispatcher getRequestDispatcher(String path) :返回一个RequestDispatcher对象,该对象的forward方法用于请求转发。

2、response 是HttpServletResponse类型,常用方法:

(1)void setCharacterEncoding(String charset):指定服务器响应给浏览器的编码。

        服务器发给浏览器的数据默认是按照ISO-8859-1编码,浏览器接收到数据后按照默认的字符集(通常是GBK)解码后显示。

(2)void setContentType(String type) :指定服务器响应给浏览器的编码,同时浏览器也是根据这个参数对其接收到的数据进行重新编码(或者称为解码)。常见的用法为setContentType(“text/html;charset=UTF-8”); 

(3)PrintWriter getWriter():获取通向浏览器的字符流

(4)ServletOutputStream getOutputStream():获取通向浏览器的字节流。例如,ImageIO.write(image, "jpg", response.getOutputStream())作用为将图片输出在浏览器上。

(5)void sendRedirect(String path):重定向页面
(6)void addCookie(Cookie cookie):添加Cookie

3、Web中的资源跳转包括两种方式:转发和重定向

     (1)转发: request.getRequestDispatcher("/b").forward(request, response);

      转发是服务器内部的资源跳转,使用的是服务器端路径

     (2)重定向:response.sendRedirect(request.getContextPath()+"/b");

      重定向使用的是客户端路径。

4、转发和重定向的区别:

(1)转发request触发;重定向response触发

(2)转发一次请求浏览器地址不变重定向两次请求浏览器的地址发生变化

(3)转发只能服务器端完成资源的跳转重定向还可以实现跨app的资源跳转

5、什么时候使用转发,什么时候用重定向?

(1)想实现跨app的资源跳转,必须使用重定向

(2)如果两个页面之间需要通过 request来传值,则必须使用转发

(3)重定向可以防止“浏览器刷新导致用户重复提交表单”的问题。

6、表单

(1)表单最基本的标签是,它的属性type决定了表单元素的类型。

text:文本框;password:密码框;radio:单选按钮;checkbox:复选框;reset:重置按钮;button:普通按钮;submit:提交按钮

(2)