web servlet something

通过部署描述文件(web.xml)可以配置哪些功能?

【参考答案】 

1、配置项目的欢迎页面。

2、配置Servlet访问URL

3、配置Web 容器、Servlet的初始化参数

4、配置错误页面,可以通过异常编号进行错误页面跳转。

5、Servlet加载优先级。

6、Web容器监听器。

7、Web请求过滤器。

8、设置会话的过期时间。

 

JSP与SERVLET区别

【参考答案】 

JSP在本质上就是SERVLET,但是两者的创建方式不一样.Servlet完全是JAVA程序代码构成,擅长于流程控制;而.JSP由HTML代码和JSP标签构成,可以方便地编写动态网页.因此在实际应用中采用Servlet来控制业务流程,而采用JSP来生成动态网页,同时在MVC设计模式中JSP充当视图层,而Servlet位于控制层。另外JSP也是Servlet技术的扩展,本质上就是Servlet,就是JSP的另一种简易体现形式,因为JSP编译后就是一个“类servlet”,再经由JVM编译生成Java类文件来执行。
 

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):删除请求中的一个属性 

request.getAttribute() 和request.getParameter() 有何区别?

【参考答案】

request.getAttribute()获取在请求对象中设置的属性,该方法返回对象为Object类型;
request.getParameter()方法是获取指定的请求参数值,返回值为String类型的字符串。

 

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

【参考答案】 

答:JSP共有以下9个内置的对象: 

1)request 用户端请求,此请求会包含来自GET/POST请求的参数 

2)response 网页传回用户端的回应 

3)pageContext 网页的属性是在这里管理 

4)session 与请求有关的会话期 

5)application servlet 正在执行的内容 

6)out 用来传送回应的输出 

7)config servlet的构架部件 

8)page JSP网页本身 

9)exception 针对错误网页,未捕捉的例外

具体说明如下:

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可以存贮用户的状态信息 

applicaton 表示一个javax.servle.ServletContext对象。这有助于查找有关servlet引擎和servlet环境的信息 

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

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

 

JSP的常用指令 

【参考答案】 

共三种,分别是:

1)<%@include >用来在JSP页面包含静态资源

2)<%@taglib >用来指定JSP页面标签类型

3)<%@page >用来指定页面相关属性

 

页面间对象传递的方法 

【参考答案】

 request、session、application、Cookie等,其中比较常用的像request、Session。request主要是应用在同一请求周期内,可能进行对象或参数的共享传递。而Session主要可以应用于同一客户端会话周期内进行参数属性的共享。

 

我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串? 

 【参考答案】 

public String translate (String str) { 

   String tempStr = ""; 

   try { 

     tempStr = new String(str.getBytes("ISO-8859-1"), "GBK"); 

     tempStr = tempStr.trim(); 

   } 

   catch (Exception e) { 

     System.err.println(e.getMessage()); 

   } 

   return tempStr; 

 } 
 

String s=new String(text.getBytes(“iso8859-1”),”gb2312”)
 

<jsp:include>与<%@include>的区别

【参考答案】 

上面两种都是在当前页面加载或包含另一页面内容,而使用<jsp:include>动作标签实现时它总是会检查所含文件中的变化,适合用于包含动态页面,并且包含的页页要符合web容器语法要求,因为被包含的页面会被web引擎进行编译和加载,同时包含时会发送http请求,所以可以携带参数。 

    而<%@include>是用伪码实现,定不会检查所含文件的变化,只是简单的将被加载的资源拷贝到了当前,而这种包含更多的是一种重用,不能实现参数共享。

 

如何实现Servlet单线程

【参考答案】

<%@ page isThreadSafe="false"%>

 

实现会话跟踪有哪几个方式?

【参考答案】

1、URL重写

2、隐藏表单域

3、Cookie

4、Session

 

Servlet对象的生命周期?

【参考答案】

当然由web容器进行创建管理的对象主要有application,session,request,page这四个级别的对象,而这4种级别的对象,根据它们自身的特点来管理所持的对象,如:request中的对象的生命周期就是在请求范围内,Session在是会话周期内,page是在当前JSP Page内,Application是在服务器启、停的周期内。

 

 

浏览器页面与Tomcat的交互过程?

【参考答案】 

当一个JSP页面第一次被访问的时候,JSP引擎将执行以下步骤:

(1)将JSP页面翻译成一个Servlet,这个Servlet是一个java文件,同时也是一个完整的java程序

(2)再由java编译器对这个Servlet进行编译,得到可执行class文件

(3)再由JVM解释器来解释执行class文件,生成向客户端发送的应答,然后发送给客户端

以上三个步骤仅仅在JSP页面第一次被访问时才会执行,以后的访问速度会因为class文件已经生成而大大提高。


 

什么是断点续传,HTTP是否支持上传下载,原理?

所谓断点续传,也就是要从文件已经下载的地方开始继续下载。客户端在请求时,除了其它的信息外,需要增加一条参数,告诉服务器从哪里开始传,在读取时从指定的字节数的开始位向后读取。简单示例:

RandomAccess oSavedFile = new RandomAccessFile("down.zip","rw"); 

 long nPos = 100000; //表示从100000字节位置开始读取。

 // 定位文件指针到 nPos 位置 

 oSavedFile.seek(nPos); 

 byte[] b = new byte[1024]; 

 int nRead; 

 // 从输入流中读入字节流,然后写到文件中 

 while((nRead=input.read(b,0,1024)) > 0) 

 { 

 oSavedFile.write(b,0,nRead); 

 } 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值