servlet知识点总结

Servlet知识点总结
1.搭建JavaEE开发环境
编写一个简单的Servlet
2.Servlet生命周期
Web服务器在与客户端交互时Servlet的工作过程是:
##在客户端对web服务器发出请求;
##web服务器接收到请求后将其发送给Servlet;
##Servlet容器为此产生一个实例对象并调用ServletAPI中相应的方法来对客户端HTTP请求进行处理,然后将处理的响应结果返回给WEB服务器;
##web服务器将从Servlet实例对象中收到的响应结构发送回客户端.
加载类(实例化对象)–>初始化(init)–>服务(service)–>销毁(destroy)

3.Servlet API
我们学习的Servlet基于Http协议,位于javax.servlet.http包
servlet继承关系
ServletConfig接口 常见方法
getServletContext()—>ServletContext:获取上下文对象
getInitParameter(String name)—>String :获取当前Servlet初始化参数
ServletContext类 常见方法
getInitParameter(String name)—>String: 获取当前web容器初始化参数
setAttribute()、getArrribute()

HttpServletRequest之request对象常用方法:
setAttribute(String name,Object):设置名字为name的request的參数值
getAttribute(String name):返回由name指定的属性值
getAttributeNames():返回request对象全部属性的名字集合,结果是一个枚举的实例
getCookies():返回client的全部Cookie对象,结果是一个Cookie数组
getCharacterEncoding():返回请求中的字符编码方式
getParameter(String name):获得client传送给server端的有name指定的參数值
getParameterNames():获得client传送给server端的全部參数的名字,结果是一个枚举的实例
getParameterValues(String name):获得有name指定的參数的全部值
getHeader(“Accept-Encoding”):获取单个请求头name对应的value值
getHeaders(“Accept-Encoding”):获取多个同名请求头对应的一组value值,因此返回枚举类型数据
getHeaderNames():获取请求头的所有name值,返回的数据也是一个枚举类型的数据,将枚举中的元素依次遍历出来,根据name获取对应的value值,即可得到Http请求头的所有信息

HttpServletResponse之response对象常用方法:
getCharacterEncoding() 返回响应用的是何种字符编码
getOutputStream() 返回响应的一个二进制输出流
getWriter() 返回可以向客户端输出字符的一个对象
void setContentLength(int len) 设置响应头长度
void setContentType(String type) 设置响应的MIME类型
sendRedirect("") 重新定向客户端的请求

4.部署描述符

HelloServlet
com.xxx.one.HelloServlet
//1
注意:
①、非负的整型:优先级按照 优先初始化 0 级别,数字越大初始化越靠后,也就是数字小的优先初始化。
②、负数/无设置: Tomcat正常启动,servlet不能被初始化,只有当该Servlet被请求时才初始化。
③、这种情况会产生异常。


HelloServlet
/hello

5.doGet(表单参数跟随url)与doPost(请求头信息)的区别
a、form运行方式
当form框里面的method为get时,执行doGet方法
当form框里面的method为post时,执行doPost方法

b、生成方式
get方式有四种:1)直接在URL地址栏中输入URL。2)网页中的超链接。3)form中method为get。
4)form中method为空时,默认是get提交。
post只知道有一种:form中method属性为post。
c、数据传送方式
get方式:表单数据存放在URL地址后面。所有get方式提交时HTTP中没有消息体。
post方式:表单数据存放在HTTP协议的消息体中以实体的方式传送到服务器。

 get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL          中可以看到。
 post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性          所指的URL地址。用户看不到这个过程。

d、服务器获取数据方式
GET方式:服务器采用request.QueryString来获取变量的值。
POST方式:服务器采用request.Form来获取数据。
e、传送的数据量
GET方式:数据量长度有限制,一般不超过2kb。因为是参数传递,且在地址栏中,故数据量有限制。
POST方式:适合大规模的数据传送。因为是以实体的方式传送的。
f、安全性
GET方式:安全性差。因为是直接将数据显示在地址栏中,浏览器有缓冲,可记录用户信息。所以安全性低。
POST方式:安全性高。因为post方式提交数据时是采用的HTTP post机制,是将表单中的字段与值放置在 HTTP HEADER内一起传送到ACTION所指的URL中,用户是看不见的。
6.请求转发与重定向
#)请求转发
一次请求,一次响应;参数(Attribute类型)可在Servlet之间共享;地址栏没有变化;速度比较快;
request.getRequestDispatcher(“targetURL”).forward(request,response);
#)请求重定向
两次请求,两次响应;参数(Attribute类型)不能在Servlet之间共享;地址栏有变化;速度比较慢;
response.sendRedirect(“targetURL”);

7.常见的中文乱码问题。
request.setCharacterEncoding(“UTF-8”);
response.setContentType(“text/html;charset=UTF-8”);
response.setCharacterEncoding(“UTF-8”);

你可能感兴趣的:(servlet知识点总结)