当前位置: 首页 > news >正文

利用网盘 建网站建站教程

利用网盘 建网站,建站教程,门户网站是,网站建设齐齐哈尔目录 前言 request概述 request的使用 获取前端传递的数据 实例 请求转发 特点 语法 实例 实例1 实例2 【关联实例1】 域对象 组成 作用范围: 生命周期: 使用场景: 使用步骤 存储数据对象 获得数据对象 移除域中的键值…

目录

前言

request概述

request的使用

获取前端传递的数据

实例

请求转发 

特点

语法

实例

实例1 

实例2 【关联实例1】

域对象

组成

作用范围:

生命周期:

使用场景:

使用步骤

存储数据对象

获得数据对象

移除域中的键值对【数据对象】


前言

在之前我们学习到真正处理前后端交互是重写 doGet()方法和doPost()方法。我们有注意到这些方法都有一个共同的参数列表:

HttpServletRequest req, HttpServletResponse resp

request概述

request是Servlet.service()方法的一个参数【在上面指的是req 】,类型为javax.servlet.http.HttpServletRequest。在客户端发出每个请求时,服务器都会创建一个request对象,并把请求数据封装到request中,然后在调用Servlet.service()方法时传递给service()方法,这说明在service()方法中可以通过request对象来获取请求数据。

因此,我后面讲的request 对象 就是指 req 对象

如下图所示

request的使用

  • 封装了请求头数据;

  • 封装了请求正文数据,如果是GET请求,那么就没有正文;

  • request是一个域对象,可以把它当成Map来添加获取数据;

  • request提供了请求转发和请求包含功能。\

接下来我将针对 如何获得前端数据 ,域对象,请求转发进行详细叙述

获取前端传递的数据

  • 使用getParameter()方法获得前端界面传递给服务器的数据
  • getParameter()方法 是 HttpServletRequest 的继承父类 ServletRequest 的方法

我们注意以下的方法

// 参数为key ,在前端一般是 name 属性值 ,返回值一般是我们输入的值String getParameter(String var1);
// 获得所有存储 key 的集合 EnumerationEnumeration<String> getParameterNames();
//通过传递的key 值 返回的是一个String类型的数组String[] getParameterValues(String var1);

注意第三个方法,常用于复选框 type=checkbox 时,这种情况下 name(key)值都是相同的

重点是 掌握第一个方法的使用

实例

前端写一个简单的用户登录表单,使用getParameter() 获得你输入的内容

请求转发 

首先我先提一下 “ 资源跳转” 我们可以理解为网页的切换。在前端HTML网页,我们使用超链接

<a href="目标网页"></a>来实现跳转。 在后端我们有两种方式完成的网页的切换(资源跳转)

资源跳转有两种形式

  • 请求转发
  • 重定向

本篇博客,我介绍的请求转发的具有应用

特点

  • 1 不能访问外部资源
  • 2浏览器中的urL 是不变的,一直是同一个请求在浏览器看来

语法

1 创建一个 RequestDispatcher 类型的对象 

  • 通过请request对象 调用getRequestDispatcher("url")
 RequestDispatcher rd = request.getRequestDispatcher("/BServlet");

2 调用该对象的forword方法

 rd.forward(request, response);	

为了方便,我们也可以合并写,这个大家都懂

实例

实例1 

刚刚举例 说使用 请求转发无法访问外部资源。我现在通过请求转发的形式,来访问百度试一下

前端代码,一个简单的表单

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><title>第一个web项目</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">
</head>
<body>
<div class="container"><!-- Content here --><form action="/login"  method="post"><div class="form-group" ><label for="exampleInputEmail1" >用户账户</label><input type="text" class="form-control" id="exampleInputEmail1" name="username" aria-describedby="emailHelp"><small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small></div><div class="form-group"><label for="exampleInputPassword1">用户密码</label><input type="password" class="form-control" id="exampleInputPassword1" name="password"></div><button type="submit" class="btn btn-primary">Submit</button>
</form>
</div></body>
</html>

后端 重写 doPost方法

@WebServlet("/login")
 @Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {System.out.println("欢迎使用post请求方式查询");req.getRequestDispatcher("https://www.baidu.com/").forward(req, resp);//resp.sendRedirect("https://www.baidu.com/");}

启动服务器,浏览器手动访问 该Servlet 

  • 不管提交的表单是否符合条件,观察是否会跳转到百度

但如果访问本机资源,如BServlet. 是可以的

BServlet 

发现

跳转成功

实例2 【关联实例1】

同时我们也应该注意到,浏览器的搜索栏一直都没有变化

即使在后面使用请求转发,跳转到BServlet,也是如此

域对象

组成
  • PageContext;

  • ServletRequest;

  • HttpSession;

  • ServletContext;

注意:

所有域对象都有存取数据的功能,因为域对象内部有一个Map,用来存储数据

这里的域对象,我只说ServletRequest类型的request 域对象,同时我们也知道request对象 是 访问Servlet 时,自动创建的。其他的域对象,当具体使用时,再添加到博客中。

特点

  • 可以作为一个仓库,存储数据,当我们要使用时,再从中获取相关数据
作用范围:
  • HttpServletRequest 对象的作用范围是单个 HTTP 请求。
  • 数据只能在同一个请求的生命周期内共享,即从客户端发送请求到服务器处理完请求并返回响应的这段时间内有效。
生命周期:
  • 每次新的请求都会创建一个新的 HttpServletRequest 对象。

  • 当请求处理完毕后,该对象会被销毁。

使用场景:
  • 适用于在同一个请求的不同处理阶段之间传递数据。

  • 例如,在一个请求处理过程中,前端控制器将数据传递给业务逻辑层或视图层。

使用步骤
存储数据对象

调用setAttribute(String name, Object value)方法,存储key-value 键值对形式的对象

  • void setAttribute(String name, Object value):用来存储一个对象,也可以称之为存储一个域属性,
获得数据对象

Object getAttribute(String name):用来获取request中的数据,当前在获取之前需要先去存储才行,例如:String value = (String)request.getAttribute(“xxx”);,获取名为xxx的域属性;

移除域中的键值对【数据对象】

void removeAttribute(String name):用来移除request中的域属性,如果参数name指定的域属性不存在,那么本方法什么都不做;

http://www.yidumall.com/news/52090.html

相关文章:

  • 西安网站设计锦线上营销的方式
  • 企业做网站需要注意什么如何进行新产品的推广
  • 如何用ps做创意视频网站爱站网长尾挖掘工具
  • 网站页面设计说明域名检测查询
  • 网站外部链接如何建设搜索引擎推广seo
  • 网页怎么做网站地图微信小程序开发零基础入门
  • 沈阳市网站建设电商平台营销策划方案
  • 网站建设成本 网站空间快速建站平台
  • 会员系统网站制作百度软件
  • 3d做网站公司官网开发制作
  • 做任务给佣金的网站百度霸屏推广
  • 网站建设法律如何添加百度指数
  • 天津网站建设信息科技有限公司网站优化效果
  • 学网站开发在大学朋友圈营销广告
  • 软件代做网站在哪找活线上推广工作内容
  • 织梦医院网站源码百度发广告需要多少钱
  • 网站建设基础书本江苏短视频seo搜索
  • 各大搜索引擎提交网站入口大全上海seo优化培训机构
  • asp.net做网站淘宝指数转换
  • 网站页面策划seo招聘
  • 试玩网站怎么做西安seo引擎搜索优化
  • snaptube wordpressseo怎么刷关键词排名
  • 完备的网站建设网络运营师
  • 网站的中英文翻译是怎么做的seo关键词排名实用软件
  • 怎么利用网站开发appapp拉新推广怎么做
  • 渭南做网站电话郑州百度公司地址
  • 河北省疫情最新情况网站手机优化
  • 自己做的网站 360不兼容资阳地seo
  • 鞍山网站制作云端网站产品推广
  • 云服务器便宜清远seo