1.说出Servlet的生命周期。
Servlet生命周期有三个方法
init()方法: 实例化Servelet对象后调用的方法。
service()方法:分发客户端请求到对应的请求类型方法。
destroy()方法:Servlet实例销毁前调用的方法。
2.forward和redirect的区别.
1.从 地址 栏显示来说
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,
然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.
redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.
2.从 数据 共享来说
forward:转发页面和转发到的页面可以共享request里面的数据.
redirect:不能共享数据.
3.从运用地方来说
forward:一般用于用户登陆的时候,根据 角色 转发到相应的模块.
redirect:一般用于用户 注销 登陆时返回主页面和跳转到其它的网站等.
4.从效率来说
forward:高.
redirect:低.
3.JSP中 动态INCLUDE 与 静态INCLUDE 的区别?
动态INCLUDE在使用的时候,会先解析所要包含的页面(你例子中的included.jsp),解析后在和主页面放到一起显示;
静态INCLUDE在使用的时候,不会解析所要包含的页面(你例子中的included.htm),也就是说,
不管你的included.htm中有什么,我的任务就是把你包含并显示,其他的一概不管
jsp:include是先编译一下included.jsp文件,然后再包含 先编译,后包含
@ include是先把文件包含就来,然后统一编译 先包含,后编译
4.JSP的内置对象有哪些。
Request、Reponse、Out、Session、Application、Cookie、Config、Page、Exception
5.什么情况下调用doGet()和doPost()?
前台form是get 就doGet 前台是post就是doPost
6.什么是jsp? jsp的作用是什么?
jsp是什么?
每一种技术的名称都一定说明了它的作用。
jsp的全称为:Java server pages(翻译:Java服务器页面),既然它是java的服务器页面,则它能支持java的代码编写的web页面(.jsp后缀结尾的html文件)。
1、jsp在<%, %>中编写java代码
2、既然它是java的服务器页面,那它就基于sun的JDK来执行,也就是说jsp文件是java文件的某种伪格式。
3、jsp的运行。
1、jsp在tomcat(以后介绍)发布,
2、在浏览器访问过程中jsp会生成:jsp名称_jsp.java和jsp名称_jsp.class,这就验证了
(2、),说明jsp在执行过程中先生成java文件再使用java语法编译,从而在jvm(虚拟机)执行。
从上面可以看出,jsp是网站的view(视图),同时还能提供java的执行和显示结果。它的作用涵盖了html和java的功能。
7.如何现实jsp的单线程模式 isThreadSafe="false"
它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。
JSP页面可以包含在多种不同的应用体系结构或者模型中,可以用于由不同协议、组件和格式所组成的联合体中。
基于JSP的动态信息发布技术是一个开放的、可扩展的建立动态Web页面的标准。
不论采用什么创建工具,开发人员都可以使用JSP页面来创建可移植的Web应用,在不同的Web应用服务器上运行。
8.页面间对象传递参数的方法(就是如何传值)
1、*.jsp?name=aa
2、request.setAttrabute("aaa");requset.getAttrabute("aaa");session也可以
3、form
9.JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
jsp和servlet的区别:
1.jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM能够识别的java类)
2.jsp更擅长表现于页面显示,servlet更擅长于逻辑控制.
3.Servlet中没有内置对象,Jsp中的内置对象都是必须通过HttpServletRequest对象,HttpServletResponse对象以及HttpServlet对象得到.
Jsp是Servlet的一种简化,使用Jsp只需要完成程序员需要输出到客户端的内容,Jsp中的Java脚本如何镶嵌到一个类中,由Jsp容器完成。而Servlet则是个完整的Java类,这个类的Service方法用于生成对客户端的响应。
联系: JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。JSP编译后是“类servlet”。
Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。
而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。
10.jsp四种会话跟踪技术
page 当前页面有效
request 浏览器对服务器的一次请求有效,服务器返回请求后失效
session 在服务器规定会话最长时间范围内有效,对浏览器串口和其子窗口。
application 就是对整个正在运行的项目有效了。
11.Request对象的主要方法:
getAttribute(String name):返回由name指定的属性值
getAttributeNames():返回request对象所有属性的名字集合,结果是一个枚举的实例
getCookies():返回客户端的所有Cookie对象,结果是一个Cookie数组
getCharacterEncoding():返回请求中的字符编码方式
getContentLength():返回请求的Body的长度实例
getInputStream():返回请求的输入流,用于获得请求中的数据
getMethod():获得客户端向服务器端传送数据的方法
getParameter(String name):获得客户端传送给服务器端的有name指定的参数值
getParameterNames():获得客户端传送给服务器端的所有参数的名字,结果是一个枚举的实例
getParameterValues(String name):获得有name指定的参数的所有值
getProtocol():获取客户端向服务器端传送数据所依据的协议名称
getQueryString():获得查询字符串
getRequestURI():获取发出请求字符串的客户端地址
getRemoteAddr():获取客户端的IP地址
getRemoteHost():获取客户端的名字
getSession([Boolean create]):返回和请求相关Session
getServerName():获取服务器的名字
getServletPath():获取客户端所请求的脚本文件的路径
13.MVC的各个部分都有那些技术来实现?如何实现?
它用JSP技术实现视图的功能,用Servlet技术实现控制器的功能,用JavaBean技术实现模型的功能
14.jsp有哪些动作?作用分别是什么?
1. jsp:include:在页面被请求的时候引入一个文件。
2.jsp:useBean:寻找或者实例化一个JavaBean。
3.jsp:setProperty:设置JavaBean的属性。
4. jsp:getProperty:输出某个JavaBean的属性。
5. jsp:forward:把请求转到一个新的页面。
6.jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记。
15.BS与CS的联系与区别。
B/S与C/S
C/S是Client/Server的缩写。
服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Mysql或 SQL Server。
客户端需要安装专用的客户端软件。
B/S是Brower/Server的缩写,客户机上只要一个浏览器(Browser),
如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Mysql或 SQL Server等数据库。
在这种结构下,用户界面完全通过浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。
浏览器通过服务端应用同数据库进行数据交互。
本例中,MyFirstServlet项目就是运行在服务器上的服务端应用,通过浏览器输入URL即可访问该应用发布的功能。
是一个典型的B/S应用。
16.重定向的方式有那些?
重定向是指页面重新定位到某个新地址,之前的请求失效,进入一个新的请求,且跳转后浏览器地址栏内容将变为新的指定地址
重定向是通过HttpServletResponse对象的sendRedirect()来实现,该方法相当于浏览器重新发送一个请求
response.sendRedirect(path);
17,get提交和post提交的区别?
Get传参优缺点
优点:
可以通过表单进行传值,任何写URL的地方也都可以传值。
缺点:
传递的数据会在地址栏中暴露,传递的数据最大1024。
18.session对象销毁的方式?
destroy()方法:Servlet实例销毁前调用的方法。
19.cookie和session的区别?
Cookie是一种在客户端保持HTTP状态信息的技术,它好比商场发放的优惠卡。
Cookie是在浏览器访问WEB服务器的某个资源时,由WEB服务器在HTTP响应消息头中附带传送给浏览器的一片数据,
WEB服务器传送给各个客户端浏览器的数据是可以各不相同的。
一旦WEB浏览器保存了某个Cookie,那么它在以后每次访问该WEB服务器时,都会在HTTP请求头中将这个Cookie回传给WEB服务器。
WEB服务器通过在HTTP响应消息中增加Set-Cookie响应头字段将Cookie信息发送给浏览器,
浏览器则通过在HTTP请求消息中增加Cookie请求头字段将Cookie回传给WEB服务器。
Session是服务器端技术,利用这个技术,服务器在运行时可以为每一个用户的浏览器创建一个其独享的session对象,
由于session为用户浏览器独享,所以用户在访问服务器的web资源时,可以把各自的数据放在各自的session中
,当用户再去访问服务器中的其它web资源时,其它web资源再从用户各自的session中取出数据为用户服务。
Servlet 提供了 HttpSession 接口,该接口提供了一种跨多个页面请求或访问网站时识别用户以及存储有关用户信息的方式。
Servlet 容器使用这个接口来创建一个 HTTP 客户端和 HTTP 服务器之间的 session 会话。
会话持续一个指定的时间段,跨多个连接或页面请求。
通过调用 HttpServletRequest 的公共方法 getSession() 来获取 HttpSession 对象,
如:HttpSession session = request.getSession();
20.jsp的指令有哪些?
Jsp包含三个编译指令和七个动作指令。
三个编译指令为:page、include、taglib。
七个动作指令为:jsp:forward、jsp:param、jsp:include、jsp:plugin、jsp:useBean、jsp:setProperty、jsp:getProperty。
22.说说servlet的监听器
servlet一共提供了三个类型的监听器类:分别对request、session、application三个作用域对象进行监听;需要在web.xml文件中配置监听器;
23.说说servlet的过滤器
实现一个Filter:需实现javax.servlet.Filter接口,重写该接口下的init、doFilter、destory三个方法; 还需要在web.xml文件中配置当前的filter类;
作用:请求一个服务(servlet或jsp)的时候,可以通过过滤器去拦截相应的任务(乱码、压缩、判断是否登陆、权限控制等)。