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内容。
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
简单就是
-
客户端请求该servlet
-
加载servlet类到内存
-
实例化、初始化该servlet
-
init()初始化参数
-
service()(doGet()或者doPost())
-
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数据结构题 JAVA笔试面试WORD资料汇总(19个): 2014年最新Java笔试题及答案.docx 225道Java面试题 学会了Java面试随你问.docx Ant和Maven的作用是什么?两者...
225道Java面试题 学会了Java面试随你问.docx Ant和Maven的作用是什么?两者之间功能、特点有哪些区别?.docx Java初级程序员面试必备的基础知识总结.docx Java基础、Java集合、多线程、JDBC、HTTP、JSP、Servlet、...
最后,"Java面试宝典2010版.rar"是一个较早版本的面试指南,虽然时间较早,但它仍包含了许多经典的Java知识,如Servlet、JSP、JDBC等Web开发技术,以及Spring、Hibernate等企业级应用框架的使用。此外,可能还会涉及...
【JAVA面试题】Java语言是IT领域广泛应用的编程语言,面试中经常涉及到其核心概念和技术。以下是基于给定内容的一些详细知识点: 1. **面向对象的特征**:面向对象编程的四大特征是抽象、继承、封装和多态。 - ...
"Java面试笔试题大汇总(最全+详细答案)"这份资料提供了全面的Java面试题及解答,旨在帮助求职者充分准备,提高面试成功率。 首先,Java的基础知识是任何面试的基础。这包括Java语言的基本语法,如变量、数据类型、...
Java面试资料汇总的知识点可以从多个方面来总结: 面向对象的编程特性包括封装、继承、多态和抽象,它们是面向对象编程的基础。 String在Java中不是基本数据类型,而是一个不可变的字符序列对象。 int是基本数据...
Java面试题涵盖了许多核心概念,这里我们详细讨论其中的一些关键知识点。 1. **面向对象的特征**:面向对象编程(OOP)的核心特征包括抽象、继承、封装和多态性。 - 抽象:通过忽略无关细节来关注问题的关键方面,...
Core Java技术面试, java_web试题 java笔试题大集合及答案 java经典面试题 java面试题及答案(基础题122道,代码题19道) JAVA面试题集 java试题(实习生) ...最终JAVA面试题目汇总 java笔试汇总
这份"Java后端技术面试汇总-2019"资料,无疑是为准备面试的Java开发者提供了一份宝贵的资源。文档包含了J2EE、算法、网络、分布式、微服务和大数据等关键领域的面试题目,总计超过1000道,反映了当前Java开发者所需...
Java面试汇总——提升面试成功率的关键知识点 在Java面试中,掌握关键知识点是成功的关键。以下是一些常见的面试问题和解答,这些内容可以帮助你更好地准备Java面试。 1. 面向对象的特征: - 抽象:允许我们定义...
以上内容涵盖了Java面试中常见的基础概念和技术,对于理解和解答Java相关的面试问题非常有帮助。在实际面试中,面试者还需要深入理解这些概念的实际应用和最佳实践,以及如何解决实际开发中遇到的问题。
Java面试宝典.txt 包含有 Java编程面试题 Java面试题全集84集系列-视频系列 2019年最新Java笔试题及答案.docx 225道Java面试题 学会了Java面试随你问.docx Java笔试面试宝典.docx Java基础、Java集合、多线程...
根据提供的文件信息,我们可以整理出以下关键的Java知识点: ### 1. 面向对象的特征 面向对象编程(Object-Oriented Programming, OOP...这些知识点对于准备 Java 面试非常重要,也是日常开发工作中经常使用的知识。
本文将基于给定的标题“JAVA面试题集合 大汇总 数据库 JSP”和描述,深入探讨Java基础、数据库管理和JSP(Java Server Pages)等相关知识点。 1. **Java基础知识**:Java的基础知识是任何Java开发者必备的技能。这...
### Java面试知识点总结 #### 一、Java基础与核心概念 **1.1 Java关键字与异常处理** - **final, finally, finalize的区别** - `final`:用于声明变量、方法或类为不可更改(常量)。 - `finally`:在异常处理...
### Java面试错误汇总知识点解析 #### 1. 面试中的常见问题及误区 - **面试中的常见问题**:面试者经常会遇到一些基础性的问题,例如数据类型、类与对象的区别等。这些问题看似简单,但往往能反映出面试者对Java...
以下是一些常见的Java面试知识点: 1. **抽象**:抽象是面向对象编程的基础概念,它允许我们关注对象的主要功能,而不必考虑其无关的细节。抽象类定义了一组公共方法,子类可以根据需要实现这些方法。过程抽象指的...
以下是一些基于给定文件名的常见Java面试知识点: 1. **Java Web面试题**:这部分通常会涉及到Servlet、JSP、过滤器、监听器、MVC架构、Spring框架、Hibernate、MyBatis等知识点。了解它们的工作原理、应用场景和...
这份"java面试笔试题分类汇总"涵盖了多个核心Java技术领域的知识点,对于准备Java面试或笔试的人员来说,是一份非常宝贵的学习资源。以下是对每个领域的详细解读: 1. **EJB (Enterprise JavaBeans)**:EJB是Java ...