当前位置:文档之家› javaWeb基础复习题

javaWeb基础复习题

javaWeb基础复习题
javaWeb基础复习题

J a v a w e b复习资料

1.理解Jsp的page指令。

page 指令可以定义下面这些大小写敏感的属性(大致按照使用的频率列出):import、contentType、pageEncoding、session、isELIgnored(只限 JSP )、buffer、autoFlush、info、errorPage、isErrorPage、isThreadSafe、language 和 extends。

2. 理解Jsp的include指令。

include指令是编译阶段的指令,即include所包含的文件的内容是编译的时候插入到JSP文件中,JSP引擎在判断JSP页面未被修改,否则视为已被修改。由于被包含的文件是在编译时才插入的,因此如果只修改了include文件内容,而没有对JSP修改,得到的结构将不会改变,所以直接执行已经存在的字节码文件,而没有重新编译。因此对不经常变化的内容,用include指令是合适的,如果需要的内容是经常变化的,则需要动作元素.下面将详细区分他们之间的不同

指令

include可以在JSP页面转换成Servlet之前,将JSP代码插入其中。它的主要优点是功能强大,所包含的代码可以含有总体上影响主页面的JSP构造,比如属性、方法的定义和文档类型的设定。它的缺点是难于维护只要被包含的页面发生更改,就得更改主页面,这是因为主页面不会自动地查看被包含的页面是否发生更改。

语法:<%@ include file="" %>

动作

jsp:include动作是在主页面被请求时,将次级页面的输出包含进来。尽管被包含的页面的输出中不能含有JSP,但这些页面可以是其他资源所产生的结果。服务器按照正常的方式对指向被包含资源的URL进行解释,因而这个URL可以是Servlet 或JSP页面。服务器以通常的方式运行被包含的页面,将产生的输出放到主页面中,这种方式与RequestDispatcher类的include方法一致。它的优点是在被包含的页面发生更改时,无须对主页面做出修改。它的缺点是所包含的是次级页面的输出,而非次级页面的实际代码,所以在被包含的页面中不能使用任何有可能在整体上影响主页面的JSP构造。

语法:

value="value"/>

3. 理解Jsp的include标签和forward标签。

forward是转发的另一个页面.

include是把另一个页面加载到当前页面.

JSP:include 是将一段java代码或页面放到页面指定的位置

jsp:forward 是跳转页面的

include标签

forword标签

4理解HTTP协议。

HTTP:是基于一种请求/响应模式的、无状态的、应用层的协议,基于TCP协议传输数据,支持客户/服务器模式,每次完整交互都包含HTTP请求和HTTP响应。Http请求由三个部分组成,请求行、消息报头、请求正文(可选,为空也行);

请求方法主要包括:GET、POST、HEAD、PUT、DELETE….,在我工作中常用的就GET

跟POST

GET:请求获取Request-URI所标识的资源;

POST:在Request-URI所标识的资源后附加新的数据(body);

每种方法规定了客户与服务器联系的类型不同,由于http协议简单,使得http服务器的程序规模小,因而通信速度快。

HTTP有5种状态码:

5.理解Tomcat的目录

1、bin:该目录下存放的是二进制可执行文件,如果是安装版,那么这个目录下会有两个exe文件:、,前者是在控制台下启动Tomcat,后者是弹出UGI窗口启动T omcat;如果是解压版,那么会有和文件,用来启动Tomcat,但需要先配置JAVA_H OME环境变量才能启动,用来停止Tomcat;

2、conf:这是一个非常非常重要的目录,这个目录下有四个最为重要的文件:

:配置整个服务器信息。例如修改端口号,添加虚拟主机等;

:存储tomcat用户的文件,这里保存的是tomcat的用户名及密码,以及用户的角色信息。可以按着该文件中的注释信息添加tomcat用户,然后就可以在Tomcat主页中进入Tomcat Manager页面了;

:部署描述符文件,这个文件中注册了很多MIME类型,即文档类型。这些M IME类型是客户端与服务器之间说明文档类型的,如用户请求一个html网页,那么服务器还会告诉客户端浏览器响应的文档是text/html类型的,这就是一个MIME类型。客户端浏览器通过这个MIME类型就知道如何处理它了。当然是在浏览器中显示这个html文件了。但如果服务器响应的是一个exe文件,那么浏览器就不可能显示它,而是应该弹出下载窗口才对。MIME就是用来说明文档的内容是什么类型的!

:对所有应用的统一配置,通常我们不会去配置它。

3、lib:Tomcat的类库,里面是一大堆jar文件。如果需要添加Tomcat依赖的ja r文件,可以把它放到这个目录中,当然也可以把应用依赖的jar文件放到这个目录中,这个目录中的jar所有项目都可以共享之,但这样你的应用放到其他Tomca t下时就不能再共享这个目录下的Jar包了,所以建议只把Tomcat需要的Jar包放到这个目录下;

4、logs:这个目录中都是日志文件,记录了Tomcat启动和关闭的信息,如果启动Tomcat时有错误,那么异常也会记录在日志文件中。

5、temp:存放Tomcat的临时文件,这个目录下的东西可以在停止Tomcat后删除!

6、webapps:存放web项目的目录,其中每个文件夹都是一个项目;如果这个目录下已经存在了目录,那么都是tomcat自带的。项目。其中ROOT是一个特殊的项目,在地址栏中没有给出项目目录时,对应的就是ROOT项目。就是项目名,即文件夹的名字。

7、work:运行时生成的文件,最终运行的文件都在这里。通过webapps中的项目生成的!可以把这个目录下的内容删除,再次运行时会生再次生成work目录。当客户端用户访问一个JSP文件时,Tomcat会通过JSP生成Java文件,然后再编译Java文件生成class文件,生成的java和class文件都会存放到这个目录下。

8、LICENSE:许可证。

9、NOTICE:说明文件

6.指令include和标签include的共同点和不同点。

相同点:都用于包含其他页面

不同点:

(1)文件包含指令: <%@ include file="path" %>

动作包含指令:

(2)文件包含的include指令是静态包含。即使被包含的文件中有JSP代码,在包含时也不会被编译执行。将两个页面组合成一个后,编译处理为一个Java文件,最后返回结果页面

动作标签的原理是将被包含的页面编译处理后将结果包含在页面中。当该标识被执行时,程序会请求转发到被包含的页面并将执行结果输出到浏览器中,然后返回包含页继续执行后面的代码

(3)jsp:include动作和include指令之间的根本性的不同在于它们被调用的时间。jsp:include动作标签在请求期间被激活,而include指令在页面转换期间被激活。

7.服务端跳转和客户端跳转的共同点和不同点。

服务端跳转又称为请求转发,客户端跳转又称为重定向。

服务端跳转后浏览器地址栏URL不变,刷新会导致重复提交;客户端跳转后浏览器地址栏URL将改变。

服务端跳转是一次请求一次响应,可以使用request传递数据;而客户端跳转是两次请求两次响应,request中的数据会丢失。

服务端跳转只能跳转到同一个应用程序的其他资源;而客户端跳转则可以重定向到任意的URL

8.说说Session和Cookie的关系。

关系:Cookies是属于Session对象的一种。但有不同,Cookies不会占服务器资源,是存在客服端内存或者一个cookie的文本文件中;而“Session”则会占用服务器资源

区别:

1、cookie数据存放在客户的浏览器上,session数据放在服务器上。

2、cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。

3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie。

4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

5、可以考虑将登陆信息等重要信息存放为session,其他信息如果需要保留,可以放在cookie中。

9.用图形和文字描述的执行过程

第一步:

请求进入Web容器,将JSP页面翻译成Servlet代码

第二步:

编译Servlet代码,并将编译过的类文件装入Web容器(JVM)环境

第三步:

Web容器为JSP页面创建一个Servlet类实例,并执行jspInit方法

第四步:

Web容器为该JSP页面调用Servlet实例的_jspService方法;将结果发送给用户10.请写出9个内置对象的生存周期和功能

1.

客户端的请求信息被封装在中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。

2.

包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。

3.

指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。它是HttpSession类的实例.

对象

out对象是JspWriter类的实例,是向客户端输出内容常用的对象.

对象

page对象就是指向当前JSP页面本身,有点象类中的this指针,它是类的实例. 对象

application对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对

象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命。它是ServletContext类的实例。

对象

对象

pageContext对象提供了对JSP页面内所有的对象及的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本类名也叫pageContext。

对象

config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)

11.表单和超链接发请求的共同点和不同点。

表单提交简单易操作,依靠在

标签对中的提交按钮进行请求发送和参数提交。其中form标签的post属性决定提交方式是get还是post。

超链接提交请求的话,方式比较单一。传递参数值是被写死的,并且只能使用get 方式去发送请求。如果不用javascript的话,超链接还是作为一个页面跳转按钮比较合适

12.理解request对象、session对象、application对象、config对象

1.:

指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。它是HttpSession类的实例。

对象:

实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命。它是ServletContext类的实例。

3.:

客户端的请求信息被封装在中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。一般用来获取页面传参的值。

4:

包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。

13.理解Mvc设计模式。

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

Model(模型):数据模型,提供要展示的数据,因此包含数据和行为,主要提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务。主要使用的技术:数据模型:实体类(JavaBean),数据访问:JDBC,Hibernate等。

View(视图):负责进行模型的展示,一般就是我们见到的用户界面,比如JSP,Html等

Controller(控制器):接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返回给视图,由视图负责展示。主要使用的技术:servlet,Struts中的Action类等。

MVC是一个框架模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC 应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。最典型的MVC就是JSP + servlet + javabean的模式

14,理解POST 和GET请求。

使用get方法提交表单,请求的参数在请求的头部,可以通过()方法获取请求参数,且()方法返回值为-1;使用post方法提交表单,请求的参数存放在请求体里,所方法获取不到请求参数,()可以获得请求体的长度。

通过get方法提交表单,因为请求表单存放在请求的头部,所以会在浏览器地址栏显示;而通过post方法提交则不会在地址栏显示,相对安全些。并且由于不同浏览器对地址栏的长度各有不同的限制,故采取get方法提交,则请求参数的长度也会受到限制,而用post方法提交的请求请求参数放在请求体里,请求体长度没有限制,则请求参数长度也没有限制。

get方法提交表单是用字符方式提交,而post提交表单字符和字节方式都行

15.为什么application可以通过getRealPath()方法,取得虚目录的真实路径。Application下文,ServletContext代表了整个容器的操作

如果要想取得一个虚拟目录对应的绝对路径要使用getRealPath()方法

String path = getServletContext().getRealPath("/");

application的操作本身是ServletContext接口的实例,但是在JSP中有一个方法的功能可以完全与之对应:getServletContext()方法。

String path = ().getRealPath("/");(这个方法要重点使用)

16.将一个jsp页面保存在WEB-INF文件夹之下,如何通过配置文件,访问该页面

1、配置中的servlet:

index

/web-inf/ 跳转到首页的action

index

/

2、index/

相关主题
文本预览
相关文档 最新文档