1~3什么是servlet 4~6HTTP协议 7读取参数值 8~9servlet的生命周期
1、Tomcat是容器,servlet是扩展web服务器的组件规范(组件),他要部署到Tomcat中才能发挥作用
1)客户端发送请求至服务器端
2)服务器将请求信息发送至Servlet容器
3) Servlet容器调用其中的Servlet组件来完成响应
4) Servlet容器将动态生成的响应内容传给服务器
5)服务器将响应返回给客户端
2、404 服务器依据请求地址找不到对应资源
原因: ①没有部署 ②servlet-name不一致 ③地址写错了
500 系统出错
原因:程序在运行过程中出错
①没有继承HttpServlet ②servlet-class 写错了 ③代码写得不够严谨,比如对请求参数
405 找不到处理方法
原因:service方法不规范
3、乱码问题
由Servlet动态生成页面的时候,如果代码中出现中文,就很容易会出现乱码了。
一般在这种情况下,我们只需要在生成页面的头文件中增加以下代码就能够解决:
response.setContentType("text/html;charset=utf-8")
4、HTTP协议 它定义了浏览器(或者其他客户端)与Web服务器之间通讯的过程及数据格式
为了保证服务器内存,一次请求一次回应。所以,HTTP协议是一种无状态协议。
由于无状态协议HTTP严重阻碍了WEB应用的实现,所以就出现了如
cookies, session, application这样的东西来保持web应用之间的状态
5、请求数据包: 请求行 消息头 实体内容
GET /web01/hello?qty=3 HTTP/1.1
请求方式 请求资源路径 参数 协议类型版本
Eclipse查看:Window – show view – others – myeclipse common – tcp/ip monitor
6、get请求与post请求
get请求的特点:
①get请求会将请求参数添加到请求资源路径的后面,因为请求行存放的数据大小有限
(也就是地址栏的最长字节数),所以get请求只能提交少量的数据。
②get请求会将请求参数显示在浏览器地址栏,不安全(比如,路由器会记录整个地址)。
post请求:
①post请求会将请求参数添加到实体内容里面,所以,可以提交大量的数据。
②post请求不会将请求参数显示在浏览器地址栏,相对安全一些。但是,post请求并不会对请求
参数进行加密处理。用HTTPS协议进行加密处理。
7、Request对象
Request对象用于读取客户端传递的参数。客户端传递给服务器的参数最常见的是表单数据或附在URL中的参数。
例如:
http://localhost/exam.jsp?qty=4
其中的“qty=4”就是参数
用request读取参数分为2种:单值参数 和 多值参数
①单值参数是指一个变量最多有一个值。我们可以用request对象的getParameter()方法来读取指定变量的参数值。
②多值参数的典型代表是表单复选框,例如“爱好”就是多值参数:选项中的表单变量名只有一个,但用户可以
选定多个爱好。我们可以用request对象的getParameterValues()方法来读取同一变量的多个参数值。
8、servlet的生命周期
指容器“创建servlet对象”
——“对它进行初始化”调用init()
——“调用方法处理请求”调用service()
——“销毁该对象” 的整个过程 调用destroy()
9、相应请求阶段用到的三个重要对象
①Request对象:
---- request(用户请求期)
---- 封装客户端的请求信息
---- getParameter()
getParameterValues()
setCharacterEncoding()
setAttribute()
getAttribute()
②Response对象
----page(页面执行期)
----包含了响应客户请求的有关信息
----sendRedirect()
setContentType()
getWriter()
③out对象:
---- page(页面执行期)
---- out对象用于管理应用服务器上的输出缓 冲区,代表输出流,
主要用于向客户端输出各类数据;
-- print()
println()