首页 > 其他分享 >2022-8-30第一组孙乃宇Servlet

2022-8-30第一组孙乃宇Servlet

时间:2022-08-30 21:35:33浏览次数:67  
标签:请求 get Servlet 30 request 地址栏 转发 孙乃宇 response

Servlet

request(请求)

所有和请求相关的操作,都用这个对象来处理

当有请求来的时候,request就被实例化

response对象

所有和响应相关的操作,都用这个对象来处理 当你想要给出响应时,response就被实例化

当你想要给出响应时,使用response 我们要给出的响应必须要展示在客户端(浏览器)

servlet的生命周期

初始化-init()只需调用一次默认当我们第一次访问servlet的时候被执行,延迟加载

提供服务- service() [doGet doPost] 多次(多线程)

销毁 destory() 只需要调用一次

设置字符集

我们需要设置字符集,不然会乱码

request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");

当我们向页面回应数据时,也会容易乱码,需要添加响应头

response.addHeader("content-type","text/html;charset=utf-8");

PrintWriter

使用printWriter对象可以向页面给出响应

这就是客户端和服务器端的信息传递 IO流

还需要关流out.flush(); out.close();

传参

最常见的客户端传参的方式两种:get,post

浏览器地址栏直接输入:一定是get请求

超级连接:一定是get请求

表单:可以是get,也可以是post,取决于method

get请求和post请求的区别

get:请求的参数会在浏览器的地址栏中显示,不安全,请求的长度限制在1k之内。没有请求体,无法通过request去设置一些参数。

post:请求的参数不会再浏览器的地址栏中显示,相对安全把请求的参数封装成几个数据报文(请求体),请求参数的长度没有限制。

request方法

getParameter()获取客户端传入的值

getParameterValues()获取一个key对应的多个值,返回值为String类型的数组

getParameterNames()拿到所有传过来的参数名称 就是key的值,可以根据key获取对应的值

getParameterMap()可以获取到请求中的所有的键值对,返回值是一个map集合,这个map集合的key是string, vaLue是string[ ]

请求转发

请求转发--有多个servlet来处理一个请求 请求转发实在服务器上完成的,跟客户端无关。

方法:

request.getRequestDispatcher("/Demo03").forward(request, response);
}

参数:转发的servlet地址

forward参数:把当前的servlet用的request和response传过去

原理:转发路径URL 在地址栏是不可见的, 可以共享请求对象

重定向

重定向则是浏览器端跳转,会产生两次请求

重定向语句是:response.sendRedirect()

原理:转发路径URL 在地址栏是可见的, 不可以共享Request对象。

作用域

作用域可以实现多个服务之间数据的共享

往request作用域中添加一个属性name,值是zhagnsan

//向域中添加数据
request.setAttribute("name","zhangsan");
//获取域中的数据
request.getAttribute("name");
//加上转发到别的服务中,其他类也可以获得域中的值
request.getRequestDispatcher("Demo05").forward(request,response);

域中获取数据的方法

//获取request作用域中的所有的key
Enumeration<String> attributeNames = request.getAttributeNames(); //根据key获取value
Object name = request.getAttribute("name");

重定向和请求转发的区别

1.请求转发是两次请求,请求转发是一个请求

2.重定向是客户端行为,请求转发是服务器行为

3.重定向浏览器地址会发生改变,转发不会

4.重定向可以定向到任意地址,转发只能项目内转发

标签:请求,get,Servlet,30,request,地址栏,转发,孙乃宇,response
From: https://www.cnblogs.com/sunnaiyu/p/16640895.html

相关文章

  • 2022-8-30 servlet
    HttpServletRequest---request(请求)所有的和请求相关的操作,都用这对象来处理当有请求来的时候,request就被实例化HttpServletResponse---response(响应)所有......
  • PAT Advanced 1030 Travel Plan(30)
    题目描述:Atraveler'smapgivesthedistancesbetweencitiesalongthehighways,togetherwiththecostofeachhighway.Nowyouaresupposedtowriteaprogra......
  • PAN3028 是一款采用 ChirpIoTTM调制解调技术的低功耗远距离无线收发芯片
    PAN3028是一款采用ChirpIoTTM调制解调技术的低功耗远距离无线收发芯片,支持半双工无线通信,工作频段为370~600MHz和740~1200MHz,该芯片具有高抗干扰性、高灵敏度、低......
  • 8/30 注册博客园
    8月30日下午17:05鄙人写下了第一篇博客。写博客的目的很单纯,想通过记录博客的方式以记录自己的ACM学习,大学生活什么的。另外大佬们总会说要自己写解题报告,算法分析,模板什......
  • 2022-08-30 第二小组 张晟源(javaweb,request,response)
    JavaWebHttpServletRequest//请求  所有和请求相关的操作  当请求来的时候,request就被实例化HttpServletResponse//响应   所有和响应的操作  当请求来......
  • Spring Boot注册Servlet、Filter、Listener原理
    如何使用在SpringBoot中注册Servlet、Filter办法主要有3种,下面来看下具体例子,例子都采用Filter,Servlet同理。第一种,使用FilterRegistrationBean、ServletRegistrationBe......
  • JetBrains 里不为人知的秘密(17)---对比文件---最新(2022-08-30) 大飞
    JetBrains里不为人知的秘密(17)---对比文件---最新(2022-08-30)大飞比较项目文件在macOS上按 ⌘1(在Windows和Linux上按 Alt+1)打开 Project(项目)工具窗口,或者......
  • 2022-8-30 每日一题-二叉树递归-
    998.最大二叉树II难度中等90收藏分享切换为英文接收动态反馈最大树 定义:一棵树,并满足:其中每个节点的值都大于其子树中的任何其他值。给你最大树的根节点 root......
  • 220830-linux磁盘系统初识
    linux中,每一个设备都会被当做一个文件来看待。在linux中,所有的硬件设备文件都会在/dev这个目录下。而SATA接口的硬盘文件名称会被命名为/dev/sd[a-d]。分区的命名:Windows......
  • 20220830-hi3516交叉编译opencv4.6.0
    1. 下载opencv4.6.0并解压https://opencv.org/releases/unzipopencv-4.6.0.zipcdopencv-4.6.0 2. 安装基础工具sudoapt-getinstallbuild-essentialsudoapt......