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主要知识点

 

 

 

 

 

 

 

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • CSV文件太大打不开进行分割、和打开乱码问题[通俗易懂]

    CSV文件太大打不开进行分割、和打开乱码问题[通俗易懂]CSV文件打开以及乱码问题今天要使用一个csv文件,但是有8个G,excel打不开,用Python的pandas也读不了,可能是我电脑配置太落后,也可能是数据实在太大了。解决办法:首先处理打不开的问题,我们可以把大的csv分割成若干小文件,使用文件分割器,按10000行一个文件分割,分割器在F:\新建文件夹\csv文件分割器\split.exe,稍等一段时间就行。我还试过另一个分割器,但是不行…

    2022年7月21日
    88
  • OIDC(OpenId Connect)身份认证「建议收藏」

    OIDC(OpenId Connect)身份认证「建议收藏」1什么是OIDC?看一下官方的介绍(http://openid.net/connect/):OpenIDConnect1.0isasimpleidentitylayerontopoftheOAuth2.0protocol.ItallowsClientstoverifytheidentityoftheEnd-Userbasedonth…

    2022年4月19日
    260
  • 发布版sha1是什么_软件调试 第二版 卷2 情况

    发布版sha1是什么_软件调试 第二版 卷2 情况第一次签名遇到太多的麻烦,本来很简单的,但是一个人摸索,百度,也要搞整大半天。现在总结一下调用高德地图百度地图等所需要的SHA1。调试版:首先按照网上说的,直接在as的terminal中输入命令   keytool-list-v-keystoredebug.keystore,你就会发现,报错,keytool既不是外部命令也不是内部命令,这个时候,你需要先进入你的.and

    2022年8月11日
    8
  • ⁉️socket实现Ping命令打造⚡BOSS来了⚡摸鱼神器⭐干货巨多❤️建议收藏❤️

    ⁉️socket实现Ping命令打造⚡BOSS来了⚡摸鱼神器⭐干货巨多❤️建议收藏❤️大家好,我是????前面我写了篇水文《获取当前局域网下所有连接设备的ip地址和mac地址》,但是没有想到的是居然上了热榜,也是我个人第一篇上热榜的文章,阅读量瞬间飙升????。然而我的硬核技术文却几乎没有人看到。既然又很多人对这个话题感兴趣,那么我们就继续对相关原理深挖,最好能自己实现,理解透彻。首先我们回顾一下前文,在前文中我介绍了windows下获取ip地址和arp映射表的命令,通过分析最新arp映射表知道当前网段下在线或下线的设备⭐。文章使用的技术是通过python调用系统ping命令,实现ar

    2022年7月14日
    12
  • 狂神说Linux_狂神说docker笔记

    狂神说Linux_狂神说docker笔记Linux在服务器端,很多大型项目都是部署在Linux服务器上利用VM + Centos7搭建本地Linux系统你可以使用 man [命令]来查看各个命令的使用文档,如 :man cp。概念云服务器就是一个远程电脑Linux中一切皆文件根目录/,所有的文件都挂载在这个节点下/bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令。/boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。/dev : dev是Device(设备

    2022年8月9日
    7
  • x7r与x5r电容参数区别_2700X参数

    x7r与x5r电容参数区别_2700X参数
    关键词:X5R、X7R、电容  
       
       在我们选择无极性电容式,不知道大家是否有注意到电容的X5R,X7R,Y5V,COG等等看上去很奇怪的参数,有些摸不着头脑,

       其实这类参数描述了电容采用的电介质材料类别,温度特性以及误差等参数,不同的值也对应着一定的电容容量的范围。具体来说,就是:
    X7R常用于容量为3300pF~0.33uF的电容,这类电容适用于滤波,耦合等场合,电介质常数比

    2025年6月22日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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