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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Anaconda–Pycharm安装教程[通俗易懂]

    Anaconda–Pycharm安装教程[通俗易懂]因为不想每次下载安装的时候都要去找博客,干脆就参考别人的博客,把自己需要的写下来了。1、Anaconda的安装从官网https://www.anaconda.com/download/下载Anaconda的安装程序,在该页面选择你电脑所对应的系统(Windows、macOSorLinux)以及操作系统位数(64位or32位)。选择Python3.8,等待下载完成,之后便会得到一个anaconda的exe可执行文件。![在这里插入图片描述](https://img-blog.csd

    2022年8月28日
    3
  • 简述你对ioc的理解_对剩余价值的理解总结

    简述你对ioc的理解_对剩余价值的理解总结目录一、对IOC和DI的基本认识(一)理解IoC,即“控制反转”(二)IoC具体做什么?(三)理解IoC和DI的关系二、对IOC容器初始化的理解四、对DI依赖注入的理解(主要是)参考书籍、文献和资料一、对IOC和DI的基本认识(一)理解IoC,即“控制反转”在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。理解好…

    2022年9月13日
    4
  • wstring操作与普通段字符操作对照表[终于解决]

    字符分类:宽字符函数普通C函数描述iswalnum()isalnum()测试字符是否为数字或字母iswalpha()isalpha()测试字符是否是字母iswcntrl()iscnt

    2021年12月18日
    73
  • 华为光纤交换机zone配置

    华为光纤交换机zone配置需求:划分2个zone,接入两个不同业务群集。环境:华为光纤交换机SNS2124IOIO:串口,只用于串口登录admin/Hawei12#$有网络图标的口:管理口,管理地址10.77.77.77,http://10.77.77.77admin/Hawei12#$,连接网线可通过ssh登录。使用ipaddrset命令修改地址。注意:按照第一步至第六步即可完成配置,如修过别名或zone成…

    2022年5月11日
    296
  • 编程打开控制面板及各项

    编程打开控制面板及各项程序打组件服务C:\WINDOWS\system32\Com\comexp.msc注销程序路径C:\WINDOWS\system32\logoff.exe智能ABC的用户词库位置C:\DocumentsandSettings\用户名\ApplicationData\Microsoft\IME\winabc造字程序的路径C:\WINDOWS\system32\eudcedit.exe语言栏显示…

    2022年7月21日
    15
  • 如何启用计算机双通道内存的方法,内存条怎么插 组建内存双通道正确插法教程…

    如何启用计算机双通道内存的方法,内存条怎么插 组建内存双通道正确插法教程…当我们安装或升级内存时,发现主板上有四个内存插槽,所以不知道该插入哪个内存插槽。事实上,理论上,任何一个内存插槽都可以正常使用。但是如果随意插上,未必能搭建双通道,搭建双通道也是有讲究的。那么双通道内存是什么意思呢?怎么安装?下面,安装者之家将为大家普及双通道内存的知识,并附上正确插入双通道内存的教程。希望这篇文章能对大家有所帮助。设置内存双通道插入教程一、双通道内存是什么意思?有什么好处?我们知…

    2022年6月23日
    88

发表回复

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

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