2024年3月31日发(作者:)

JAVA知识SERVLET面试题

Sun(Oracle)公司制定的一种用来扩展Web服务器功能的组件

规范。

appName---

-----WEB-INF

--------classes

-----------

--------lib

-----------(可选)

--------

HTTP协议是HyperText Transfer Protocol的简写,它是由w3c

(万维网联盟)制定的一种应用层协议,用来定义浏览器与web服务

器之间如何通信以及通信的数据格式。

请求头中的键值对:

t-Length:105表示请求消息正文的长度为105。

tion:Keep-Alive表示需要持久连接。

:localhost表示请求资源的Internet的主机为localhost,

端口为80。

响应头的键值对:

:Apache/

2.0.45表示服务器名字为Apache/2.0.45。

t-Type:text/html表示响应的MIME类型为text/html。

/doc/,st-Modified

月16日12点44分13秒,星期一。

404地址错误(拼写不正确,字母大小写错误)。

文件中的不一致。

404工程没有部署。

404Web应用程序部署结构没有遵守Servlet规范。

MON16Jan201212:44:13表示文档的最后改动时间为2012年1

405service方法名称写错。

405service方法参数类型与标准不一致。

405service方法异常、返回值类型与标准不一致。

500Servlet类没有继承HttpServlet或实现Servlet接口

文件中的写错

500service方法中的代码运行时抛出异常

500错误有可能是文件中配置错误。

404错误工程没有部署。

public void service(HttpServletRequest

request,HttpServletResponse response)

服务器在创建好Servlet对象之后,会调用该方法来处理请求。

PrintWriter out=ter();

获得向浏览器打印的输出流。

n(rs);

向流中输出数据,其实质是,将处理结果存放到response对象上。

GET和POST的区别如下:

1.从提交的数据量上来说,get方式会将请求参数及参数值放在请

求资源路径里面,携带的数据大小有限制,不适合提交大量的数据;

post方式会将请求参数及参数值放在实体内容里面,理论上没有限制,

适合大量数据的提交。

2.从安全上来讲,post方式相对安全(因为请求参数及值存放在

实体内容里面,而get方式会将请求参数及值显示在浏览器地址栏)。

但是要注意,post方式并没有将数据加密。

处理表单提交的中文,分为两种情况,一是post方式提交表单、

一是get方式提交表单。

1.处理post方式提交表单时的中文,步骤如下:

step1:确保表单所在的页面按照指定的字符集打开,在HTML中

设置如下:

另外,在HTML中,将表单form的提交方式设置为post。

step2:在服务器端按照上述设置的编码格式进行解码,代码如下:

racterEncoding(“utf-8”);

该行代码要在第一次使用request的时候进行设置。

2.处理get方式提交表单时的中文,步骤如下:

step1:使用meta确保表单所在页面按指定字符集打开,在

HTML中设置如下:

另外,在HTML中,将表单form的提交方式设置为get。

step2:将从表单中获取的信息使用上述设置的字符集utf-8进行

重新编码。例如:将从表单获取的username进行重新编码,代码如

下:

String username=ameter(“username”);

username=new

1”),“utf-8”);

String name=ameter("name");

获取请求参数name的值。

tentType("text/html;charset=utf-8");

保证servlet输出中文无乱码。

页面中可以包含Java代码,包含以下三种形式:

JSP表达式

JSP小脚本

JSP声明

其作用为控制页面中可变内容的产生。

页面中可以包含指令,语法规则为“<%@指令名属性=

值%>”。常用指令如下:

page指令

include指令

taglib指令

其作用为控制JSP在转译成Servlet类时生成的内容。

页面中包含隐含对象,所有隐含对象由容器自动创建,在

JSP文件中可以直接使用。隐含对象

--输入输出对象request respnose out

String(es(“iso-8859-

--作用域通信对象session application pageContext

--Servlet对象page config

--异常对象exception

其作用为JSP预先创建的这些对象可以简化对HTTP请求、响应

信息的访问

1.<%@page pageEncoding="utf-

8"contentType="text/html;charset=utf-8"%>

通过page指令设置了容器读取该文件时,按UTF-8进行解码;

设置tentType 方法的参数值为

"text/html;charset=utf-8"。

2.<%%>JSP小脚本,能够写在方法里的Java代码片段都可以作

为小脚本。

3.<%=()%>输出“()”的值到浏览器。

转发是一个Web组件(Servlet/JSP)将未完成的处理通过容器

转交给另外一个Web组件继续完成。

1.绑定数据到request对象

ribute(String name,Object obj);

2.获得转发器

RequestDispatcher rd=uestDispatcher(String

uri);

3.转发

d(request,response);

转发和重定向的区别有以下几点:

1.重定向是浏览器发送请求并收到响应以后再次向一个新地址发

请求,转发是服务器收到请求后为了完成响应转到一个新的地址。

2.重定向中有两次请求,不共享数据,转发只产生一次请求,且

在组件间共享数据。

3.重定向后地址栏地址改变,而转发则不会。

4.重定向的新地址可以是任意地址,转发到的新地址必须是同一

个应用内的某地址。