JSP知识点总结-面试

作者:盐城市天行软件有限公司  来源:www.szgjp.com未知  发布时间:2017-09-05 12:32:20
JSP知识点总结-面试


1、JSP中9种内置对象:

(1)out对象:负责管理对客户端的请求信息

(2)request对象:负责得到客户端的请求信息

(3)response对象:负责向客户端发出响应

(4)session对象:负责保存同一客户端一次会话过程中的一些信息

(5)application对象:表示整个应用环境的信息

(6)exception对象:表示页面上发生的异常,可以通过它获得页面异常信息

(7)page对象:表示的是当前JSP页面本身,就像Java定义的this一样

(8)pageContext对象:表示的是此JSP的上下文

(9)config对象:表示此JSP的ServletConfig



2、response.sendRedirect与两种跳转方式的区别?

(1)从浏览器的地址显示上来看:

  forward方法属于服务器端去请求资源,服务器直接访问目标地址,并对该目标地址的响应内容进行读取,再把读取的内容发给浏览器,因此此时客户端浏览器的地址不变。

  而redirect是告诉客户端,使浏览器知道去请求哪一个地址,相当于客户端重新请求一遍,所以地址栏会改变。

(2)从数据共享上来看:

  forward转发的页,以及转发到的目标页能够共享request里面的数据,而redirect转发的页以及转发到的目标页不能共享request里面的数据。

(3)从功能上来看:

  redirect能够重定向到当前应用程序的其他资源,而且能够重定向到同一个站点上的其他应用程序中的资源。

  forward方法只能在同一个web应用程序内的资源之间转发请求,则可以理解为服务器内部的一种操作。

(4)从效率上来看:

forward效率较高,因为跳转仅仅发生在服务器端。

redirect相对较低,因为类似于再进行一次请求。



3、Cookie操作:cookie是一种常见的在页面之间传递数据的过程。Cookie是一个小的文本数据,由服务器端生成,发送给客户端浏览器,客户端浏览器如果设置为启用cookie,则会将这个小文本数据保存到某个目录下的文本文件内,下次登录同一网站,客户端浏览器自动将cookie读入。



4、定义JavaBean有如下两种方法:

(1)直接在JSP中实例化JavaBean:这是在JSP中使用Java代码,不提倡



(2)使用标签:





5、设置JavaBean属性和获取JavaBean属性。

6、JavaBean的scope范围:

(1)page:表示JavaBean对象的作用范围只是在其实例化的页面上,只有在当前页面可用,在其他页面不可用。

(2)request:表示JavaBean实例除了可以在当前页面上可用之外,还可以在通过forward(3)session:表示JavaBean对象可以存在session中,该对象可以被同一个用户一次会话的所有页面认识到。(要保证是同一个客户端,session才可以的)

(4)application:表示JavaBean对象可以存在application中,该对象可以被所有用户的所有页面认识到。



7、配置servlet,在web.xml中配置:



welcomeservlet

servlets.WelcomeServlet





welcomeservlet

/servlets/WelcomeServlet

上面的不一定非要是类路径,也可以是其他的。





8、在不关闭服务器的情况下,若干次访问只创建一个对象,只创建一个对象,很多用户访问的时候,会不会造成等待?

解:不会的,因为Servlet采用的是多线程机制,每一次请求,系统就会分配一个线程来运行doGet函数,但是这样也会带来安全问题,一般说来,不要在Servlet内定义成员变量,除非这些成员变量是所有的用户公用的。



9、Servlet中获取对象的方法:

(1)获取out对象:PrintWriter out=response.getWriter()

(2)获取request和response对象:

(3)获得session对象:HttpSession session=request.getSession()

(4)获得application对象:ServletContext application=this.getServletContext()



10、在Servlet中设置和读取参数:

(1)设置参数:

设置全局参数:所有的Servlet都可以访问该参数



  参数名

  参数值



设置局部参数:只有本Servlet可以访问该参数



  Servlet名称

  Servlet类路径

  

  参数名

  参数值

  



(2)获取参数:

获取全局参数:

ServletContext application=this.getServletContext(); application.getInitParameter(“参数名称”);

获取局部参数:

this.getInitParameter(“参数名称”);



11、Servlet内实现跳转:

(1)重定向(对应JSP内置对象中的sendRedirect)

response.sendRedirect(“URL地址”);

(2)服务器内跳转(对应于JSP中的forward标签):

ServletContext application=this.getServletContext();

RequestDispatcher rd=application.getRequestDispatcher(“URL地址”);

rd.forward(request,response);

一般情况下,当不需要传递参数或者需要跳转到另一个服务器页面时使用重定向,当需要从A页面跳转到B页面时,存在着大量的暂态数据(即在B页面显示过后就可以不用的数据),为了节省内存,可以使用forward,可以避免把很多内容存储在session中。



12、JSTL声明的核心标签库:



核心标签库:

(1)表达式操作:

显示数据的内容;

对变量或者JavaBean的变量属性进行赋值;

删除存在于scope中的变量。

(2)流程控制:

用于简单的条件语句;

与以及这三个标签通常会一起使用,用于复杂语句的判断;

为循环控制标签,功能是将集合中的成员顺序浏览一遍,在实际应用开发中,使用频率最高;

标签是用来浏览字符串里的所有成员,其成员是用分隔符delims所分隔的。

(3)迭代操作:

(4)URL操作。



13、Ajax(Asynchronous JavaScript and XML),当一个异步过程调用发出后,调用者不需要立刻得到结果,可以继续做自己的事情,等到过程调用完毕,再通过回调函数通知调用方。而在同步情况下,调用方必须等待对方得到结果,才能继续运行。

Ajax包含一下5部分:

(1)异步数据获取技术:使用XMLHttpRequest,(它是所有技术的基础)

(2)基于标准的表示技术:使用XHTML与CSS

(3)动态显示和交互技术:使用Document Object Model(文档对象模型)

(4)数据互换和操作技术:使用XML与XSLT

(5)JavaScript:将以上的技术融合在一起



14、实现Ajax程序的5个核心步骤:

(1)在IE中实例化Msxml2.XMLHTTP对象:

var xmlHttp=new ActiveObject(“Msxml2.XMLHTTP”);

Msxml2.XMLHTTP是IE浏览器内置的对象,该对象具有异步提交数据和获取结果的功能,如果不是IE浏览器,则实例化方法如下:

<script type=”text/javascript”>

Var xmlHttp=new XMLHttpRequest();

</script>

(2)指定异步提交的目标和提交方式,调用了xmlHttp的open方法:

xmlHttp.open(“get”,”info.jsp”,true);此方法共单个参数,参数1表示请求的方式,参数2表示请求的目标是info.jsp,参数3为true时表示异步请求,为false表示非异步请求。

注意:此时知识指定异步提交的目标和提交方式,并没有进行真正的提交。

(3)指定当xmlHttp状态改变时,需要进行的处理,处理一般是以相应函数的形式进行:

xmlHttp.onreadystatechange=function(){

  //处理代码

}

该代码中用到了xmlHttp的onreadystatechange事件,表示xmlHttp状态改变时,调用处理代码。也可以直接将处理代码单独写成函数。

(4)编写处理代码:

xmlHttp.onreadystatechange=function(){

  if(xmlHttp.readyState==4)

  infoDiv.innerHTML=xmlHttp.responseText;

}

(5)发出请求,调用xmlHttp的send函数:

xmlHttp.send();



15、Ajax具有如下的优点:

(1)减轻服务器负担,避免整个浏览器窗口刷新的时造成的重复请求。

(2)带来更好的用户体验。

(3)进一步促进页面呈现和数据本身的分离。

缺点:

(1)对浏览器有一定的限制,对于不兼容的浏览器,无法使用。

(2)Ajax没有刷新按钮,浏览器上的“后退”按钮是失效的,因此,客户经常无法回退到以前的操作。



16、MVC(Model、View、Controller):软件开发过程中比较流行的设计思想,基于该思想,将JSP拆成三个模块来实现,首先,编写JSP,负责输入查询代码,提交到Servlet,Servlet进行安全验证,调用DAO来访问数据库,得到结果,跳转到JSP显示。

我们可以从这种设计思想上发现:程序被分成了不同的模块,显示、业务逻辑、过程控制相互独立,使得软件在伸缩性和可维护性方面有了很大的优势。

M(Model),封装应用程序的数据结构和事务逻辑,集中体现应用程序的状态,当数据状态改变的时候,能够在视图中体现出来,JavaBean适合这个角色。

V(View),是Model的外在表现,模型状态改变时,有所体现,JSP非常适合这个角色。

C(Controller),对用户的输入进行响应,将模型和视图联系到一起,负责将数据写到模型中,并调用视图,Servlet适合这个角色。



17、Structs中常用的组件:JSP、ActionServlet、ActionForm、Action、JavaBean、配置文件等。

(1)用户输入,JSP表单提交给ActionServlet。

(2)ActionServlet将表单信息封装在ActionForm内,转交Action。

(3)ActionServlet不直接处理业务逻辑,让Action来调用JavaBean(DAO)。

(4)Action返回要跳转的JSP页面地址给ActionServlet。

(5)ActionServlet进行跳转,结果在JSP上显示。

注意:

(1)ActionServlet先实例化LoginForm对象,然后调用LoginForm的setAccount函数,封装表单数据,然后实例化LoginAction进行处理。

(2)LoginForm和LoginAction第一次实例化之后就不会再实例化,这和Servlet的原理是一样的,实际上是一个对象用多线程的方式来运行。



18、Struts三个主要标签库:

(1)struts-html taglib(htm标签库):包含来生成动态HTML用户界面和窗体标签。

(2)struts-bean taglib(bean标签库):包含访问bean和bean属性时使用的标签,也包含一些消息显示的标签。

(3)struts-logic taglib(逻辑标签库):包含的标签来管理一些逻辑条件,站群系统,根据逻辑条件进行一些操作。

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:武汉网站开发 http://www.feimao666.com


上一篇:关于PHP中eval函数的返回值
下一篇:最后一页