Servlet主要知识点

Servlet主要知识点

什么是Servlet:

就是一个运行在WEB服务器上的小的java程序,用来接收和响应从客户端发送过来的请求,通常使用HTTP协议。

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

Servlet的作用:

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

Servlet生命周期

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

阶段一:实例化 调用Servlet的构造器创建一个具体的Servlet对象的过程

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

阶段三:就绪,Servlet被初始化后就处于能够响应请求的就绪状态,service(req,res)

阶段四:销毁Servlet容器停止或者重新启动都会引起销毁Servlet对象的动作,destroy();

Servelt配置

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

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

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

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

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

 

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[ ]   getgetParameter(String name  ParameterValues(String name);  )  — 用于接收一个名称对应的多个值的数据

Map  getparameterMap();         —用于接收表单中的所有数据,Mapkey是表单提交的参数的名称,map

value是提交参数的值

 

Enumeration getParameterNames()                    — 用于获取表单中提交的所有参数的名称

接收中文乱码

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

 

解决Get请求时的乱码问题

服务器端:

String username= request.getparameter(“username”);

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

注意:tomcat8以后,get默认编码为utf-8,不需要进行重新编码,只需要setcahracterXXX

客户端:

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

解决post请求时的乱码问题

 

服务器端

Request.setCharacterEncoding(“utf-8”);

Response.setContentType(“text/htmlcharacter=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(“<h1>” + “hello:” + username + “</h1>”);

ServletResponse对象

重定向

什么是重定向?

服务器向游览器一个302状态码及一个location消息头(该消息头的值是一个地址,称之为重定向地址),游览器收到后会立即向重定向地址发出请求。

如何重定向?

Response.sendRedirect(String url)

重定向特点:

  • 重定向地址可以是任意的地址
  • 重定向之后,游览器地址的地址栏会发生改变
  • 重定向过程中涉及到web组件并不会共享同一个request和response对象

 

Servlet主要知识点

 

 

 

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/114760.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号