JAVA知识SERVLET面试题
Sun(Oracle)公司制定的一种用来扩展Web服务器功能的组件规范。
appName---
-----WEB-INF
--------classes
-----------XXX.claass
--------lib
-----------XXX.jar(可选)
--------l
HTTP协议是HyperText Transfer Protocol的简写,它是由w3c(万维网联盟)制定的一种应用层协议,用来定义浏览器与web服务器之间如何通信以及通信的数据格式。
请求头中的键值对:
1.Content-Length:105表示请求消息正文的长度为105。
2.Connection:Keep-Alive表示需要持久连接。
3.Host:localhost表示请求资源的Internet的主机为localhost,端口为80。
响应头的键值对:
1.Server:Apache/
2.0.45表示服务器名字为Apache/2.0.45。
2.Content-Type:text/html表示响应的MIME类型为text/html。
www./doc/0b14463792.html,st-Modified:MON16Jan201212:44:13表示文档的最后改动时间为2012年1月16日12点44分13秒,星期一。
404地址错误(拼写不正确,字母大小写错误)。
l文件中的不一致。
404工程没有部署。
404Web应用程序部署结构没有遵守Servlet规范。
405service方法名称写错。
405service方法参数类型与标准不一致。
405service方法异常、返回值类型与标准不一致。
500Servlet类没有继承HttpServlet或实现Servlet接口
l文件中的写错
500service方法中的代码运行时抛出异常
500错误有可能是l文件中配置错误。
404错误工程没有部署。
public void service(HttpServletRequest request,HttpServletResponse response)
服务器在创建好Servlet对象之后,会调用该方法来处理请求。
PrintWriter Writer();
获得向浏览器打印的输出流。
out.println(rs);
向流中输出数据,其实质是,将处理结果存放到response对象上。
GET和POST的区别如下:
1.从提交的数据量上来说,get方式会将请求参数及参数值放在请求资源路径里面,携带的数据大小有限制,不适合提交大量的数据;post方式会将请求参数及参数值放在实体内容里面,理论上没有限制,适合大量数据的提交。
2.从安全上来讲,post方式相对安全(因为请求参数及值存放在实体内容里面,而get方式会将请求参数及值显示在浏览器地址栏)。但是要注意,post方式并没有将数据加密。
处理表单提交的中文,分为两种情况,一是post方式提交表单、一是get方式提交表单。
1.处理post方式提交表单时的中文,步骤如下:
step1:确保表单所在的页面按照指定的字符集打开,在HTML中设置如下:
另外,在HTML中,将表单form的提交方式设置为post。
step2:在服务器端按照上述设置的编码格式进行解码,代码如下:
request.setCharacterEncoding(“utf-8”);
该行代码要在第一次使用request的时候进行设置。
2.处理get方式提交表单时的中文,步骤如下:
step1:使用meta确保表单所在页面按指定字符集打开,在HTML中设置如下:
另外,在HTML中,将表单form的提交方式设置为get。
step2:将从表单中获取的信息使用上述设置的字符集utf-8进行重新编码。例如:将从表单获取的username进行重新编码,代码如下:
String Parameter(“username”);
username=new Bytes(“iso-8859-1”),“utf-8”);
String Parameter("name");
获取请求参数name的值。
response.setContentType("text/html;charset=utf-8");
保证servlet输出中文无乱码。
1.JSP页面中可以包含Java代码,包含以下三种形式:
JSP表达式
JSP小脚本
JSP声明
其作用为控制页面中可变内容的产生。
2.JSP页面中可以包含指令,语法规则为“<%@指令名属性=值%>”。常用指令如下:
page指令
include指令
taglib指令
其作用为控制JSP在转译成Servlet类时生成的内容。
3.JSP页面中包含隐含对象,所有隐含对象由容器自动创建,在JSP文件中可以直接使用。隐含对象
--输入输出对象request respnose out
--作用域通信对象session application pageContext
--Servlet对象page config
--异常对象exception
其作用为JSP预先创建的这些对象可以简化对HTTP请求、响应信息的访问
1.<%@page pageEncoding="utf-8"contentType="text/html;charset=utf-8"%>
通过page指令设置了容器读取该文件时,按UTF-8进行解码;设置response.setContentType 方法的参数值为"text/html;charset=utf-8"。
2.<%%>JSP小脚本,能够写在方法里的Java代码片段都可以作为小脚本。
3.<%=e.getId()%>输出“e.getId()”的值到浏览器。
转发是一个Web组件(Servlet/JSP)将未完成的处理通过容器转交给另外一个Web组件继续完成。
1.绑定数据到request对象
request.setAttribute(String name,Object obj);
2.获得转发器
RequestDispatcher RequestDispatcher(String uri);
3.转发
rd.forward(request,response);
java加密方式有哪些转发和重定向的区别有以下几点:
1.重定向是浏览器发送请求并收到响应以后再次向一个新地址发请求,转发是服务器收到请求后为了完成响应转到一个。
2.重定向中有两次请求,不共享数据,转发只产生一次请求,且在组件间共享数据。
3.重定向后地址栏地址改变,而转发则不会。
4.重定向的新地址可以是任意地址,转发到的新地址必须是同一个应用内的某地址。
将客户端(浏览器)与服务器之间多次交互当整体来看待,并且将多次交互所涉及的数据即状态保存。
浏览器向web服务器发送请求时,服务器会将少量的数据以set-Cookie消息头的方式发送给浏览器,浏览器将这些数据保存下来;当浏览器再次访问服务器时,会将这些数据以Cookie 消息头的方式发送给服务器。
Cookie[]Cookies();
获取请求的客户端的所有Cookie对象。
String Name();
获取一个Cookie对象的名称。
浏览器访问Web服务器时,服务器会为每一个浏览器在服务器端的内存中分配空间,单独创建一个Session对象,该对象有一个Id属性,其值唯一,一般称之为SessionId,并且服务器会将这个SessionId(使用Cookie的方式)发送给浏览器;浏览器再次访问服务器时,会
将SessionId发送给服务器,服务器可以依据SessionId到对应的Session对象。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论