当前位置: 移动技术网 > IT编程>开发语言>.net > Web部分

Web部分

2018年10月26日  | 移动技术网IT编程  | 我要评论
说出Servlet的生命周期,并说出Servlet和GCI的区别。 Web容器加载Servlet并将其实例化后,Servlet生命周期开始,容器运行其init方法进行Servlet的初始化,请求到达时运行其Service方法,Servive方法自动派遣运行与请求对应的doXXX方法(doGet、do ...

说出servlet的生命周期,并说出servlet和gci的区别。

  web容器加载servlet并将其实例化后,servlet生命周期开始,容器运行其init方法进行servlet的初始化,请求到达时运行其service方法,servive方法自动派遣运行与请求对应的doxxx方法(doget、dopost)等;当服务器决定将实例销毁的时候调用其destroy方法。与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而cgi对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。

forward和redirect的区别。

  forwrad是容器中控制权的转向,是服务器请求资源,服务器直接访问目标地址的url,把那个url的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪里来的,所以它的地址栏还是原来的地址。

  redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session、request参数都可以获取,并且从浏览器的地址栏中可以看到跳转后的链接地址。前者更加高效,在前者可以满足需要时,尽量使用forwrad()方法,并且,这样也有助于隐藏实际的链接;在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendredirect()方法。

jsp中动态include与静态include的区别。

  动态include用jsp:include动作实现<jsp:include page="included.jsp" flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数;静态include用include伪码实现,它不会检查所含文件的变化,适用于包含静态页面<%@ include file="included.html" %>

说出数据连接池的工作机制是什么。

  j2ee服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要建立时,池驱动程序会返回一个未使用的池连接并将其标记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当时用的池连接调用完成后,池驱动程序将此连接标记为空闲,其他调用就可以使用这个连接。

jsp的内置对象及方法。

  request 表示 httpservletrequest对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie、header、session数据的有用的方法;

  response 表示 httpservletresponse对象,并提供了几个用于设置送回浏览器的响应的方法(如cookies、头信息等);

  out 对象是 javax、jsp、jspwriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果;

  pagecontext 表示一个 javax、servlet.jsp.pagecontext对象。它是用于方便存取各种范围的名字空间、servlet相关的对象的api,并且包装了通用的servlet相关功能的方法;

  session 表示一个请求的 javax、servlet.http.httpsession 对象。session可以存贮用户的状态信息;

  application 表示一个 javax、servlet.servletcontext对象。这有助于查找有关servlet引擎和servlet环境的信息;

  config 表示一个 javax.servlet.servletconfig对象。该对象用于存取servlet实例的初始化参数;

  page 表示从该页面产生的一个servlet 实例。

jsp的常用指令。

  <%@page language="java"  contentype="text/html;charset=gb2312"  session="true"  buffer="64kb"  autoflush="true"  isthreadsafe="true"  info="text"  errorpage="error.jsp"  iserrorpage="true"  iselignored="true"  pageencoding="gb2312"  import="java.sql.*" %>

  iserrorpage:是否能使用exception对象;

  iselignored:是否忽略el表达式;

  <%@include file="filename" %>

  <%@taglib prefix="c"  uri="http://........core" %>

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

  jsp共有以下六种基本动作:

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

  jsp:usebean  寻找或者实例化一个javabean;

  jsp:setproperty  设置javabean的属性;

  jsp:getproperty  输出某个javabean的属性;

  jsp:forwrad  把请求转到一个新的页面;

  jsp:plugin  根据浏览器类型为java插件生成object或embed标记。

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

  jsp共有以下九种基本内置组件(可与asp的六种内部组件相对应):

  request:  用户端请求,此请求会包含来自get/post请求的参数;

  response:  网页传回用户端的回应;

  pagecontext:  网页的属性是在这里管理;

  session:  与请求有关的会话期;

  application:  servlet正在执行的内容;

  out:  用来传送回应的输出;

  config:  servlet的构造部件;

  page:  jsp网页本身;

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

get和post的区别?

  form中的get和post方法,在数据传输过程中分别对应了http协议中的get和post方法。二者主要区别如下:

  1)get是用来从服务器获取数据,而post是用来向上传递数据;

  2)get将表单中数据按照vaeiable=value的形式,添加到action所指向的url后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向url;

  3)get是不安全的,因为在传输过程,数据被放在请求的url中;post的所有操作对用户来说都是不可见的;

  4)get传输的数据小,这主要是因为受url长度限制;而post可以传输大量的数据,所以在上传文件只能使用post;

  5)get限制form表单的数据集必须为ascll字符,而post支持整个iso10646字符集;

  6)get是form的默认方法。

什么情况下调用doget()和dopost()?

  jsp页面中的form标签里的method属性为get时调用doget(),为post时调用dopost()。

如何从form表单中得取checkbox的值?

  可在页面把checkbox的name属性取同一个,value属性取每个条目的id,后台用getparamter("name")能取到checkbox的一组值。

页面中有一个命名为bank的下拉列表,写脚本获取当前选项的索引值。

  用 java或 javascript的处理方式分别如下:

  java:  request.getparameter("bank");

  javascript:  var selectitems = document.getelementsbyname("bank");

           selectitems[0].value;

javascript 常用的方面

  常用于数据输入效验和页面特殊效果等;

常用的web容器和开发工具

  最常用的容器包括:tomcat、weblogic;

  开发工具:eclipse、jbuilder;

jsp和servlet有哪些相同点和不同点,它们之间的联系是什么?

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

jsp的四种范围

  page是代表与一个页面相关的对象和属性。一个页面由一个编译好的java servlet 类(可以带有任何的 include 指令,但是没有 include 动作)表示。这既包括servlet又包括被编译成 servlet 的 jsp 页面;

  request是代表与web客户机发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个web组件(由于 forwrad 指令和 include 动作的关系);

  session 是代表与用于某个web客户机的一个用户体验相关的对象和属性。一个web会话可以也经常会跨越多个客户机请求;

  application 是代表与整个web应用程序相关的对象和属性。这实质上是跨越整个web应用程序,包括多个页面,请求和会话的一个全局作用域。

request对象的主要方法?

 1 request.setattribute(name, object);//设置名字为name的属性值;
 2         request.getattribute(name);//返回由name指定的属性值;
 3         request.getattributenames();//返回request对象所有属性的名字集合(枚举);
 4         request.getcookies();//返回客户端的所有cookie对象,结果是一个cookie数组;
 5         request.getcharacterencoding();//返回请求中的字符编码方式;
 6         request.getcontentlength();//返回请求的body的长度;
 7         request.getheader(name);//获得http协议定义的文件头信息;
 8         request.getheaders(name);//返回指定名的request header的所有值(枚举);
 9         request.getheadernames();//返回所有 request header的名字(枚举);
10         request.getinputstream();//返回请求的输入流,用于获得请求中的数据;
11         request.getmethod();//获得客户端向服务器端传送数据的方法;
12         request.getparameter(name);//获得客户端请求中传送的name指定的参数值;
13         request.getparameternames();//获得客户端传送给服务端的所有参数的名字(枚举);
14         request.getparametervalues(name);//获得有name指定的参数的所有值;
15         request.getprotocol();//获得客户端向服务端传送数据所依据的协议名称;
16         request.getquerystring();//获得查询字符串;
17         request.getrequesturi();//获得发出请求字符串的客户端地址;
18         request.getremoteaddr();//获得客户端的ip地址;
19         request.getremotehost();//获取客户端的名字;
20         request.getsession(create);//返回和请求相关session;
21         request.getservername();//获取服务器的名字;
22         request.getservletpath();//获取客户端所请求的脚本文件的路径;
23         request.getserverport();//获取服务器的端口号;
24         request.removeattribute(name);//删除请求中的一个属性;

 

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网