jsp-servlet的总结
1.什么是Sp? Sp的作用是什么?
基于java技术,用于创建可支持跨平台以及跨WEB服务器的动态页面
特点:
1、将内容的生成和显示进行分离
2、生成可重用的组件java
3、采用标识简化页面开发
4、JSP能提供所有的Servlet功能
5、健壮的存储管理和安全性
6、一次编写,随处运行(JAVA之上)
7、JSP的平台适应性更广
8、JAVA中连接数据库的技术是JDBC(Java Database Connectivity)
2.Jsp的生命周期(jsp是如何被加载的)?
1、解析阶段:Servlet容器解析JSP文件代码,如果有语法错误,就会向客户端返回错误信息
2、翻译阶段:Servelet容器把JSP文件翻译成Servelet源文件
3、编译阶段:Servelet容器编译Servelet源文件,生成servelet类
4、初始化阶段:加载与JSP对应的Servelet类,创建其实例,并调用它的初始化方法
5、运行时阶段:调用与JSP对应的Servelet实例的服务方法
6、销毁阶段:调用与JSP对应的Servelet实例的销毁方法,然后销毁Servelet实例
3.Sp常用的动作有哪些? useBean,setproperty,getproperty, forward, include...
1.jsp:include:在页面被请求的时候引入一个文件。
2.jsp:useBean:寻找或者实例化一个JavaBean。
3.jsp:setProperty:设置JavaBean的属性。
4.jsp:getProperty:输出某个JavaBean的属性。
5.jsp:forward:把请求转到一个新的页面。
6.jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记。
7.jsp:param:
4.jsp的指令有哪些? (page, include, taglib)
三个编译指令为:
page、include、taglib。
七个动作指令为:
jsp:forward、jsp:param、jsp:include、jsp:plugin、jsp:useBean、jsp:setProperty、jsp:getProperty。
5.静态include和动态include区别?
动态include在使用的时候,会先解析所要包含的页面(你例子中的included.jsp),解析后在和主页面放到一起显示;
静态include在使用的时候,不会解析所要包含的页面(你例子中的included.htm),也就是说,不管你的included.htm中有什么,我的任务就是把你包含并显示,其他的一概不管
jsp:include是先编译一下included.jsp文件,然后再包含先编译,后包含
@ include是先把文件包含就来,然后统一编译先包含,后编译
6.转发forward和重定向redirect的区别?
1.从地址栏显示来说
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.
redirect是服务器根据逻辑,发送一个状态码,告诉服务器重新去请求那个地址.所以地址栏显示的是新的URL.
2.从数据共享来说
forward:转发页面和转发到的页面可以共享request里面的数据.
redirect:不能共享数据.
3.从运用地方来说
forward:一般用于用户登陆的时候,根据角色转发到相应的模块.
redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.
4.从效率来说
forward:高.
redirect:低.
7.jsp的内置对象有哪些? (九大)
1.request对象
客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。
2.reponse对象
reponse对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。
3.session对象
session对象指的是客户端与服务器的一次会话,从客户端连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。它是HttpSession类的实例.
4.out对象
out对象是JspWriter类的实例,是向客户端输出内容常用的对象
5.page对象
page对象就是指向当前JSP页面本身,有点象类中的this指针,它是https://www.doczj.com/doc/6113281448.html,ng.Object 类的实例
6.application对象
application对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,
直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命。它是ServletContext类的实例。
7.exception对象
exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。他实际上是https://www.doczj.com/doc/6113281448.html,ng.Throwable的对象
8.pageContext对象
pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本类名也叫pageContext。
9.config对象
config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)
8.什么是servlet? servlet的作用是什么?
狭义上:指java语言实现的一个接口
广义上:指任意一个实现了这个Servlet接口的类。
作用:主要用于交互式地浏览和修改数据,生成Web内容。
这个过程主要有:(1)客户端发送请求到服务器端
(2)服务器将请求信息发送至Servlet
(3)Servlet生成响应内容并将其传给服务器。
(4)服务器将响应返回给客户端。
9.servlet的生命周期?(servlet如何被加载的)
1、初始化阶段调用init()方法
2、响应客户端请求阶段调用service()方法
3、终止阶段调用destroy()方法
10.什么时候调用doGet方法? 什么时候调用doPost方法?
第一:你的servlet如果是继承自HttpServlet,就必须重写它里面的两个虚方法doGet 和doPost,也就是说,先不管别的servlet或jsp会去调用哪个方法,这两个方法都应该有。
第二:至于它调用哪个方法,就看提交方式