`

Java 面试汇总(八)Servlet

 
阅读更多

1,什么是Servlet?

Servlet是用Java编写的Server端程序,它与协议和平台无关。Servlet运行于Java-enabled Web Server中。Java Servlet可以动态地扩展Server的能力,并采用请求-响应模式提供Web服务。   最早支持Servlet技术的是JavaSoft的Java Web Server。此后,一些其它的基于Java的Web Server开始支持标准的Servlet API。

Servlet的主要功能在于交互式地浏览和修改数据,生成动态Web内容。

 

2,HTTP请求中Get和Post区别

Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符。我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作.

1.根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的。

2.根据HTTP规范,POST表示可能修改变服务器上的资源的请求。

区别:

1.GET请求的数据会附在URL之后,以?分割URL和传输数据,参数之间以&相连,如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密。POST把提交的数据则放置在是HTTP包的包体中。

2."GET方式提交的数据最多只能是1024字节,理论上POST没有限制,可传较大量的数据,IIS4中最大为80KB,IIS5中为100KB"??!

4.POST的安全性要比GET的安全性高,比如:通过GET提交数据,用户名和密码将明文出现在URL上,因为(1)登录页面有可能被浏览器缓存,(2)其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码了,除此之外,使用GET提交数据还可能会造成Cross-site request forgery攻击

 

3.说说servlet生命周期

1、Web Client 向Servlet容器(Tomcat)发出Http请求

2、Servlet容器接收Web Client的请求

3、Servlet容器创建一个HttpRequest对象,将Web Client请求的信息封装到这个对象中

4、Servlet容器创建一个HttpResponse对象

5、Servlet容器调用HttpServlet对象的service方法,把HttpRequest对象与HttpResponse对象作为参数

     传给 HttpServlet对象

6、HttpServlet调用HttpRequest对象的有关方法,获取Http请求信息

7、HttpServlet调用HttpResponse对象的有关方法,生成响应数据

8、Servlet容器把HttpServlet的响应结果传给Web Client

简单就是

  1. 客户端请求该servlet
  2. 加载servlet类到内存
  3. 实例化、初始化该servlet
  4. init()初始化参数
  5. service()(doGet()或者doPost())
  6. destroy()

 

4,SERVLET API中forward() 与redirect()的区别

1.从地址栏显示来说 
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.
redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.

2.从数据共享来说 
forward:转发页面和转发到的页面可以共享request里面的数据.
redirect:不能共享数据.

3.从运用地方来说 
forward:一般用于用户登陆的时候,根据角色转发到相应的模块.
redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.

4.从效率来说 
forward:高.
redirect:低.

本质区别

 

5、什么情况下调用doGet()和doPost()?

 Jsp页面中的FORM标签里的method属性为get时调用doGet(),为post时调用doPost()。

 

 

6、Request对象的主要方法:

 setAttribute(String name,Object):设置名字为name的request的参数值

   getAttribute(String name):返回由name指定的属性值

getAttributeNames():返回request对象所有属性的名字集合,结果是一个枚举的实例

getCookies():返回客户端的所有Cookie对象,结果是一个Cookie数组

getCharacterEncoding():返回请求中的字符编码方式

getContentLength():返回请求的Body的长度

getHeader(String name):获得HTTP协议定义的文件头信息

getHeaders(String name):返回指定名字的request Header的所有值,结果是一个枚举的实例

getHeaderNames():返回所以request Header的名字,结果是一个枚举的实例

getInputStream():返回请求的输入流,用于获得请求中的数据

getMethod():获得客户端向服务器端传送数据的方法

getParameter(String name):获得客户端传送给服务器端的有name指定的参数值

getParameterNames():获得客户端传送给服务器端的所有参数的名字,结果是一个枚举的实例

getParametervalues(String name):获得有name指定的参数的所有值

getProtocol():获取客户端向服务器端传送数据所依据的协议名称

getQueryString():获得查询字符串

getRequestURI():获取发出请求字符串的客户端地址

getRemoteAddr():获取客户端的IP地址

getRemoteHost():获取客户端的名字

getSession([Boolean create]):返回和请求相关Session

getServerName():获取服务器的名字

getServletPath():获取客户端所请求的脚本文件的路径

getServerPort():获取服务器的端口号

removeAttribute(String name):删除请求中的一个属性

 

8、request.getAttribute() 和 request.getParameter() 有何区别

 

9、jsp有哪些内置对象?作用分别是什么? 分别有什么方法?

 

答:JSP共有以下9个内置的对象:

request 用户端请求,此请求会包含来自GET/POST请求的参数

response 网页传回用户端的回应

pageContext 网页的属性是在这里管理

session 与请求有关的会话期

application servlet 正在执行的内容

out 用来传送回应的输出 

config servlet的构架部件

page JSP网页本身

exception 针对错误网页,未捕捉的例外

 

10、. jsp有哪些动作?作用分别是什么?

 答:JSP共有以下6种基本动作

jsp:include:在页面被请求的时候引入一个文件。

jsp:useBean:寻找或者实例化一个JavaBean。

jsp:setProperty:设置JavaBean的属性。

jsp:getProperty:输出某个JavaBean的属性。

jsp:forward:把请求转到一个新的页面。

jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记

 

11、JSP的常用指令

 

isErrorPage(是否能使用Exception对象),isELIgnored(是否忽略表达式) 

 

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

JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。JSP编译后是"类servlet"。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。

 

 

 

 

 

 

分享到:
评论

相关推荐

    Java面试笔记 225道Java面试题JAVA面试基础知识点总结Java数据结构题笔试WORD资料汇总(19个).zip

    Java面试笔记 225道Java面试题JAVA面试基础知识点总结Java数据结构题 JAVA笔试面试WORD资料汇总(19个): 2014年最新Java笔试题及答案.docx 225道Java面试题 学会了Java面试随你问.docx Ant和Maven的作用是什么?两者...

    JAVA笔试面试资料JDBC HTTP、JSP、Servlet、Struts面试题汇总资料.zip

    225道Java面试题 学会了Java面试随你问.docx Ant和Maven的作用是什么?两者之间功能、特点有哪些区别?.docx Java初级程序员面试必备的基础知识总结.docx Java基础、Java集合、多线程、JDBC、HTTP、JSP、Servlet、...

    Java面试宝典 100家大公司java笔试题汇总 等

    最后,"Java面试宝典2010版.rar"是一个较早版本的面试指南,虽然时间较早,但它仍包含了许多经典的Java知识,如Servlet、JSP、JDBC等Web开发技术,以及Spring、Hibernate等企业级应用框架的使用。此外,可能还会涉及...

    IBM公司JAVA面试题汇总(含答案)

    【JAVA面试题】Java语言是IT领域广泛应用的编程语言,面试中经常涉及到其核心概念和技术。以下是基于给定内容的一些详细知识点: 1. **面向对象的特征**:面向对象编程的四大特征是抽象、继承、封装和多态。 - ...

    Java面试笔试题大汇总(最全+详细答案)

    "Java面试笔试题大汇总(最全+详细答案)"这份资料提供了全面的Java面试题及解答,旨在帮助求职者充分准备,提高面试成功率。 首先,Java的基础知识是任何面试的基础。这包括Java语言的基本语法,如变量、数据类型、...

    java面试资料汇总

    Java面试资料汇总的知识点可以从多个方面来总结: 面向对象的编程特性包括封装、继承、多态和抽象,它们是面向对象编程的基础。 String在Java中不是基本数据类型,而是一个不可变的字符序列对象。 int是基本数据...

    最新最全Java面试题汇总

    Java面试题涵盖了许多核心概念,这里我们详细讨论其中的一些关键知识点。 1. **面向对象的特征**:面向对象编程(OOP)的核心特征包括抽象、继承、封装和多态性。 - 抽象:通过忽略无关细节来关注问题的关键方面,...

    java面试与笔试资料收集

    Core Java技术面试, java_web试题 java笔试题大集合及答案 java经典面试题 java面试题及答案(基础题122道,代码题19道) JAVA面试题集 java试题(实习生) ...最终JAVA面试题目汇总 java笔试汇总

    Java后端技术面试汇总-2019.zip_Java面试题2019_finesto5w_java后端汇总_java面试 2019

    这份"Java后端技术面试汇总-2019"资料,无疑是为准备面试的Java开发者提供了一份宝贵的资源。文档包含了J2EE、算法、网络、分布式、微服务和大数据等关键领域的面试题目,总计超过1000道,反映了当前Java开发者所需...

    java面试汇总--提高成功率的宝典

    Java面试汇总——提升面试成功率的关键知识点 在Java面试中,掌握关键知识点是成功的关键。以下是一些常见的面试问题和解答,这些内容可以帮助你更好地准备Java面试。 1. 面向对象的特征: - 抽象:允许我们定义...

    java面试题汇总最新.pdf

    以上内容涵盖了Java面试中常见的基础概念和技术,对于理解和解答Java相关的面试问题非常有帮助。在实际面试中,面试者还需要深入理解这些概念的实际应用和最佳实践,以及如何解决实际开发中遇到的问题。

    Java面试宝典.txt

    Java面试宝典.txt 包含有 Java编程面试题 Java面试题全集84集系列-视频系列 2019年最新Java笔试题及答案.docx 225道Java面试题 学会了Java面试随你问.docx Java笔试面试宝典.docx Java基础、Java集合、多线程...

    java面试题经典汇总

    根据提供的文件信息,我们可以整理出以下关键的Java知识点: ### 1. 面向对象的特征 面向对象编程(Object-Oriented Programming, OOP...这些知识点对于准备 Java 面试非常重要,也是日常开发工作中经常使用的知识。

    JAVA面试题集合 大汇总 数据库 JSP

    本文将基于给定的标题“JAVA面试题集合 大汇总 数据库 JSP”和描述,深入探讨Java基础、数据库管理和JSP(Java Server Pages)等相关知识点。 1. **Java基础知识**:Java的基础知识是任何Java开发者必备的技能。这...

    整理的2018 java面试汇总,要面试的抓紧看了

    ### Java面试知识点总结 #### 一、Java基础与核心概念 **1.1 Java关键字与异常处理** - **final, finally, finalize的区别** - `final`:用于声明变量、方法或类为不可更改(常量)。 - `finally`:在异常处理...

    Java面试错误汇总.txt

    ### Java面试错误汇总知识点解析 #### 1. 面试中的常见问题及误区 - **面试中的常见问题**:面试者经常会遇到一些基础性的问题,例如数据类型、类与对象的区别等。这些问题看似简单,但往往能反映出面试者对Java...

    125条常见java面试题大汇总

    以下是一些常见的Java面试知识点: 1. **抽象**:抽象是面向对象编程的基础概念,它允许我们关注对象的主要功能,而不必考虑其无关的细节。抽象类定义了一组公共方法,子类可以根据需要实现这些方法。过程抽象指的...

    常用的Java面试题目汇总

    以下是一些基于给定文件名的常见Java面试知识点: 1. **Java Web面试题**:这部分通常会涉及到Servlet、JSP、过滤器、监听器、MVC架构、Spring框架、Hibernate、MyBatis等知识点。了解它们的工作原理、应用场景和...

    java面试笔试题分类汇总

    这份"java面试笔试题分类汇总"涵盖了多个核心Java技术领域的知识点,对于准备Java面试或笔试的人员来说,是一份非常宝贵的学习资源。以下是对每个领域的详细解读: 1. **EJB (Enterprise JavaBeans)**:EJB是Java ...

Global site tag (gtag.js) - Google Analytics