Jsp、Servlet参考资料

2026/1/23 8:07:25

一、简答题

1.forward 和redirect的区别

forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。

redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。

1.forward跳转:

两种跳转的区别如下:

1.forward跳转:a.服务器端跳转,地址栏不改变;b.执行到跳转语句后马上无条件跳转,之后的代码不再执行(跳转之前一定要释放全部资源);c.request设置的属性在跳转后的页面仍可以使用;d.使用

2.response跳转:a.客户端跳转,地址栏改变;b.所有代码执行完毕后跳转;c.跳转后的页面不能使用上一个页面的request属性;d.使用地址重写传递参数(response.sendRedirect(\参数名=参数值\)。 2.说出Servlet的生命周期,并说出Servlet和CGI的区别

1,初始化阶段 调用init()方法 2,响应客户请求阶段 调用service()方法 ,根据请求参数的不同调用doGet()或者doPost()方法 3,终止阶段 调用destroy()方法

与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。

3.JSP中动态INCLUDE与静态INCLUDE的区别?

动态INCLUDE用jsp:include动作实现

静态INCLUDE用include伪码实现,并不会检查所含文件的变化,适用于包含静态页面<%@ include file=\

4.什么情况下调用doGet()和doPost()?get和post的区别?

Jsp页面中的form标签里的method属性为get时调用doGet(),为post时调用doPost()。 get和post的区别:

1、Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据。 2、Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;Post是将表单中的数据放在form的数据体中, 按照变量和值相对应的方式,传递到action所指向URL。

3、Get是不安全的,因为在传输过程,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记录到日志文件中,然后放在某个地方, 这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一同显示在用户面前。Post的所有操作对用户来说都是不可见的。 4、Get传输的数据量小,这主要是因为受URL长度限制;而Post可以传输大量的数据,所以在上传文件只能使用Post(当然还有一个原因,将在后面的提到)。 5、Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集。 6、Get是Form的默认方法。

5.servlet的生命周期

web容器加载servlet,生命周期开始。通过调用servlet的init()方法进行servlet的初始化。通过调用service()方法,根据请求的不同调用不同的do***()方法。结束服务,web容器调用servlet的destroy()方法。

6. 跳转有两种方法:RequestDispatcher.forward()方法和HttpServletResponse.sendRedirect()方法.

区别是:前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址,他是不会改变Request的值。后者则是完全的跳转,浏览器将会得到跳转的地址,

并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用Request

Dispatcher.forward()方法,这样也有助于隐藏实际的链接。 7.如何现实servlet的单线程模式 <%@ page isThreadSafe=\

8.页面间对象传递的方法

request,session,application,cookie等

9.JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?

说法一:JSP技术构建在Servlet技术之上,是Servlet技术的扩展,本质上是Servlet的简易方式,JSP能做到的,Servlet都能做到,但是它们却各有所长。JSP更强调应用的外表表达。JSP编译后是\类servlet\。Servlet比较适合作为控制类组件,比如视图控制器等。另外,Servlet还可以作为过滤器、监听器等。Servlet不仅可以动态生成HTML内容,还可以动态生成图形。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。总而言之,Servlet在项目中作为控制类的组件,并且处理一些后台业务,JSP则作为显示组件。JSP侧重于视图,Servlet主要用于控制逻辑 。

说法二:尽管JSP在本质上就是SERVLET,但是两者的创建方式不一样.Servlet完全是JAVA程序代码构成擅长于流程控制和事物处理而通过Servlet来生成动态网页很不直观; JSP由HTML代码和JSP标签构成可以方便地编写动态网页因此在实际应用中采用Servlet来控制业务流程,而采用JSP来生成动态网页

说法三:Jsp是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外部表达。JSP编译后是“类 servlet”。Servlet和JSP最主要的不同点在于Servlet的应用逻辑是在java文件中,并且完全从表示层中HTML里分离出来,而jsp是java和html结合成一个扩展名为.jsp的文件,JSP侧重于视图,servlet侧重于控制逻辑。

10.描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理。

cookie记录在客户端,session记录在服务器端;cookie因为保存在客户端,所以不是很安全,保存在服务器端会更安全。

cookie有长度限制,session没有。每一个session在服务端有一个sessionID作一个标识。存储的数据量大;浏览器的 Cookies 不能超过 300

个,并且每个不能超过 4KB,因此总 Cookie 文件大小限制在 1200KB 之内。 Cookie是在客户端开辟的一块可长期存储用户信息的地方;Session是在服务器内存中开辟的一块存储用户信息的地方;当客户第一次访问服务器时, 服务器在内存创建对应的Session给访问客户,当客户离开或时间过期时;服务器自动销毁Session; Session是由容器管理的。

11.四种会话跟踪技术 会话作用域 page Servlets JSP 页面描述 否 是 代表与一个页面相关的对象和属性。一个页面由一个编译好的 Java servlet 类(可以带有任何的 include 指令,但是没有 include 动作)表示。这既包括 servlet 又包括被编译成 servlet 的 JSP 页面 request 是 是 代表与 Web 客户机发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个 Web 组件(由于 forward 指令和 include 动作的关系) 代表与用于某个 Web 客户机的一个用户体验相关的对象和属性。一个 Web 会话可以也经常会跨越多个客户机请求 application 是 是 代表与整个 Web 应用程序相关的对象和属性。这实质上是跨越整个 Web 应用程序,包括多个页面、请求和会话的一个全局作用域 session 是 是 12.Servlet执行时一般实现哪几个方法? Public void init(ServletConfig config) public ServletConfig getServletConfig() public String getServletInfo()

public void service(ServletRequest request,ServletResponse response) public void destroy()

13,servlet 如何得到服务器的name,port,info? ServletRequest.getServletName(); ServletRequest.getServletPort(); ServletRequest.getServletInfo();

14,servlet如何得到客户端信息? ServletRequest.getRemoteAddr();

ServletRequest.getRemoteHost();

15.在jsp中引用使用

Ⅰscope的值有哪些,这些值的区别是什么?不同的jsp页面中引用javabean时,id能否相同,如果能相同,对scope的值有什么要求?

scope可以为:application|page|session|requeat这个东西就是指定ID的有效范围。如果scope=page,那么useBean的有用范围就只能在page内有效,到了session|application|requeat就无效了。可以指定scope属性,使得Bean不只是与当前页面建立单关联。如果共享了Bean,获取对现有Bean的引用就很有用,因此jsp;useBean操作表示公当不存在具有相同id和scope的对象时才实例化一个新对象。这样就可以节约资源。

16 说明Jsp中errorPage的作用,应用范围。

表示错误页的操作,在一般的站点中,只要一个程序出现了错误,就是产生了异常,则可以统一跳转到一个页面进行显示,那么这种操作就属于错误页的处理, 要想进行错误页的设置,需要满足以下两个条件:

1、在错误能够处理的页上的page指令中,增加:isErrorPage=\表示可以处理错误 2、在每一个页面指定errorPage,指向isErrorPage为true的页面。 如果希望配置一种全局的错误处理,则可以在web.xml中进行配置

404

/error.jsp

java.lang.NullPointException /error.jsp

一旦发生错误就会跳转到指定页面,此方法属于服务器跳转

17, filter的作用是什么?主要实现什么方法?doFilter()方法中 参数 request,response的全称是什么? filter使用户可以改变一个request和修改一个response,它并不是一个servlet,不能产生一个response。它能在一个request到达servlet之前预处理request,也可以在离开servlet时处理

response.换句话说,filter其实是一个“ servlet chaining” (servlet链)。一个filter包括: 在servlet调用之前截获

在servlet调用之前检查servlet request 根据需要修改request头 和 request 数据 根据需要修改response头 和 response数据 在servlet调用之后截获

Filter接口定义了三个方法:

1, void setFilterConfig(FilterConfig config); //设置filter的配置对象 2, FilterConfig getFilterConfig();//返回filter的配置对象

3, doFilter(ServletRequest req,ServletResponse res,FilterChain chain);//执行filer工作。 request 全称: HttpServletR

18,当容器调用servlet 的destory()方法的时候,servlet 会马上销毁么? 如果当时这个servlet 正在执行其他任务或者线程呢? 是的, 当容器调用servlet 的destory()方法的时候,servlet 会马上销毁,但是容器在调用destory() 方法之前,会等servlet 的service()方法结束剩余的任务。

19,我们没有写servlet的构造方法,那么容器是怎么创建servlet的实例呢?

容器会自动为servlet写一个无参的构造方法,并通过Class.forName(className).newInstance()来创建servlet实例

20. 列出Jsp中包含外部文件的方式,两者有何区别。

1:

区别1:


Jsp、Servlet参考资料.doc 将本文的Word文档下载到电脑
搜索更多关于: Jsp、Servlet参考资料 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219