老师总结的Servlet知识点

Servlet知识点总结

1.搭建JavaEE开发环境

  编写一个简单的Servlet<web.xml的配置>

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.部署描述符<web.xml>

  <servlet>

    <servlet-name>HelloServlet</servlet-name>

    <servlet-class>com.xxx.one.HelloServlet</servlet-class>

   //<load-on-startup>1</load-on-startup>

     注意:

   ①、非负的整型:优先级按照 优先初始化 0 级别,数字越大初始化越靠后,也就是数字小的优先初始化。

   ②、负数/无设置: Tomcat正常启动,servlet不能被初始化,只有当该Servlet被请求时才初始化。

   ③、<load-on-startup></load-on-startup>这种情况会产生异常。

  </servlet>

  <servlet-mapping>

    <servlet-name>HelloServlet</servlet-name>

    <url-pattern>/hello</url-pattern>

  </servlet-mapping>

 

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.请求转发与重定向

Servlet知识点总结

1.搭建JavaEE开发环境

  编写一个简单的Servlet<web.xml的配置>

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.部署描述符<web.xml>

  <servlet>

    <servlet-name>HelloServlet</servlet-name>

    <servlet-class>com.xxx.one.HelloServlet</servlet-class>

   //<load-on-startup>1</load-on-startup>

     注意:

   ①、非负的整型:优先级按照 优先初始化 0 级别,数字越大初始化越靠后,也就是数字小的优先初始化。

   ②、负数/无设置: Tomcat正常启动,servlet不能被初始化,只有当该Servlet被请求时才初始化。

   ③、<load-on-startup></load-on-startup>这种情况会产生异常。

  </servlet>

  <servlet-mapping>

    <servlet-name>HelloServlet</servlet-name>

    <url-pattern>/hello</url-pattern>

  </servlet-mapping>

 

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");

 

/************************************************************************/

  #)请求转发

  一次请求,一次响应;参数(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");

 

/************************************************************************/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值