Advertisement

Servlet主要知识点

阅读量:

什么是Servlet:

它是一个基于Web服务器的简单Java应用程序,用于处理来自客户端发送过来的数据请求,通常使用HTTP协议。

Servlet 就是Sun公司提供的一个动态网页开发技术。

Servlet的作用:

用来处理从客户端游览器发送的请求,并且可以对请求作出响应

Servlet生命周期

Servlet生命周期的四个阶段的执行时机

阶段一:实例化 调用ServletContext的构造器生成一个特定的Servlet实例的过程

阶段二:初始化 在初始化阶段,Init()方法会被调用

第三阶段:就绪状态,在Servlet完成初始化操作后将进入能够处理请求的状态,并调用服务方法service(req, res)。

第四阶段:当ServletContext停止或重新启动时会触发对ServletContext的销毁操作

Servelt****配置

设置Servlet在服务器启动的时候被创建好

1 =0,表示容器启动时就会被创建,

<0,或未设置,代表servlet被请求时被执行

0.值越小,启动的时机就越早

Url-patten****配置

共有三种:

完全路径匹配

目录匹配/通配符匹配:以/开始需要以 *元素

例如:/. /aaa/. /aaa/bbb/*

后缀匹配:不能以/开始。可以以*开始的,目录匹配后后缀匹配不能混合使用

例如*.do *.action

错误的写法 : /*.do

依次是 完全目录> 目录匹配 > 后缀匹配

ServletConfig****对象

作用:获得servlet配置信息

ServletConfig cfg = getServletConfig();

获取init-param参数值

String getServletName(); ---获得Servlet在web.xml中配置的name的值

String getInitParameter(String Name); ---获得Servlet的初始化参数的

Enumeration getInitParameterNames(); ---枚举所有Servlet的初始化参数名称

String getServltContext(); ---获得servletContext对象

请求方式

get****请求

  • 在地址看输入一个地址
  • 点击页面中的链接
  • 表单的默认提交方式

Post****请求:

将表单的Method属性设置为POST时,游览器会发送POST请求

getpost****的区别:

Get的提交的参数会显示到地址栏上,而Post不显示

Get往往是有大小限制的,而Post没有大小的限制。

Get没有请求体,而Post有请求

ServletRequest****接收参数

HttpServletRequest****对象,游览器发来请求,提交数据到服务器端

**String);**用于接收一个名称对应一个值的数据。

**String数组 getParameter(String名称 name, ParameterValues values) --- **用于获取一个名称对应的数据值集合。

**Map getparameterMap();****---****用于捕获表单提交的所有数据。该Map对象的键对应于表单提交参数的名称,并记录了相关联的数据信息。其中map记录了键值对的数量或其他相关信息。

value****是提交参数的值

Enum getParameterNames() --- 返回所有字段值

接收中文乱码

乱码的产生:客户端编码与服务器解码不一致

解决Get请求时的乱码问题

服务器端:

String username= request.getparameter("username");

Username= new String (username.getBytes(iso-8859"),"utf-8");

请特别注意以下几点:首先,在tomcat8之后,默认情况下get命令会将文件默认编码设置为utf-8;无需额外处理编码设置,请确保使用charset=utf-8即可。

客户端:

< meta http-equiv="content-type" content="text/html;charset=utf-8">

解决post请求时的乱码问题

服务器端

Request.setCharacterEncoding("utf-8");

Response.setContentType("text/html**;**character=utf-8");

ServletRequest对象

请求方式:

Get 请求:

在地址栏中输入一个地址

点击页面中的链接

表单的默认提交方式

Post 请求:

将表单的Method属性设置为Post时,游览器会发送Post请求

Get 与 Post的区别:

Get的提交参数会显示到地址栏上,而Post不显示

Get 往往有大小限制,而Post没有大小写的限制

get没有请求体,而Post有请求

服务器做出响应

HttpServletResponse对象,服务器端,接受完请求,返回数据给客户端

解决向页面输出中文乱码:

Response.setContentType("text/html; charset = utf-8");

setContentType()有两个作用 :

通知容器,在调用out.println方法输出时,使用指定的字符集

创建一个名为content-type的消息头,并向浏览器发送相关信息

获得输出流

PrintWriter out = response.getWriter();

发送数据

Out.println("html代码");

// 使用httpServletResponse 对象 响应数据到客户端

// 解决输出中文乱码

//response.setContentType("text/html;character = utf-8 ");

response.setContentType("text/html;charset = utf-8 ");

PrintWriter out = response.getWriter();

out.println("

" + "hello:" + username + "

");

ServletResponse对象

重定向

什么是重定向?

服务端发送给浏览器一个包含302状态码响应及一个location字段(其值为指定的一个网络地址),通常称为重定向目标。当浏览器接收到此响应时,会立即发送请求至指定的重定向目标。

如何重定向?

Response.sendRedirect(String url)

重定向特点**:**

  • 重定向地址可能指向任何位置。
  • 在发生重定向后, 访问者所在的浏览器会自动更新其访问路径。

在重定向过程中涉及的web组件并不包含同一个request和response对象

全部评论 (0)

还没有任何评论哟~