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

ASP.NET 记录 HttpRequest HttpResponse HttpServerUtility

纯属个人记录,会有错误

HttpRequest

Browser是获取客户端浏览器的信息
Cookies是获取客户端的Cookies
QueryString是获取客户端提交的数据
ServerVariables是获取服务器端或客户端的环境变量信息

Browser

语法格式:

Request.Browser[“浏览器特性名”]

常见的特性名

名称说明
ActiveXControls逻辑值,true表示支持ActivateX控件,反之不支持
Browser浏览器类型
Cookies是否支持cookies,true支持,反之不支持
JavaScript是否支持JavaScript,true支持,反之不支持
MajorVersion浏览器主版本号
MinorVersion浏览器次版本号
Version版本号

QueryString

这东西常用于页面间传递数据信息
一般是再NavigateUrl中属性中写目标文件?传递的信息

           <asp:HyperLink runat="server" NavigateUrl="~/target.aspx?name=123&age=12">cehsi</asp:HyperLink>

target.aspx页面的Page_Load函数

Response.Write(Request.QueryString["name"]+Request.QueryString["age"]);

效果就是点击了哪个cehsi超链接后跳转到target页面并显示12312

ServerVariables 数据集合

语法格式:

Request.ServerVariables[“环境变量名”]

环境变量名表

变量名描述
Local_ADDR服务器的IP地址
PATH_TRANSLATED当前页面的服务器端的物理路径
REMOTE_ADDR客户端IP地址
REMOTE_HOST客户端计算机名
SERVER_NAME服务器端计算机名
SERVER_PORT服务器端网站的端口号

注:PATH_TRANSLATED这个我不是很清楚,望知道大佬在评论区评论下

HTTP响应

HttpResponse

注:Page类的Response属性值是HttpResponse类的一个实例对象,
常用的属性与方法

成员描述例子
Cookies添加或者修改客户端的Cookie
AppendToLog()方法自定日志信息添加到IIS日志文件中
Eed()终止页面的执行
Redirect()页面重定向Response.Redirect(“~/target.aspx?name=123”);
Write()页面上输出信息

添加:Response.Cookies[“Name”].Value=“abc”;或
HttpCookie cookie = new HttpCookie(“Name”);
cookie.Value=“张三”;
cookie.Expires=DateTime.Now.AddDays(1);//设置过期时间
Response.Cookies.Add(cookie);

HttpServerUtility

Server.Execute(),下面都是以Server.属性和方法一栏中的内容
常用的属性和方法

属性和方法描述
ScriptTimeOut设置页面执行的最长时间,单位秒
Execute()停止执行当前页面,转到新页面,执行完毕后返回原页面,执行后续语句
HtmlEncode()将字符串中的XHTML元素标记转换为字符实体
MapMath()获取页面的物理路径,假如网址是http://www.demo.com/1.html,程序在c:/code中,那么就是c:/code/1.html
Transfer()不同于Execute的地方是转到新页面后不会返回原页面
UrlEncode()将字符串中的某些特殊字符转换为URL编码
Response.Write("<hr/>");//解释成一条水平线
Response.Write(HttpUtility.HtmlEncode("<hr/>"));//显示就是<hr/>
Response.Write(Server.UrlEncode("a b"));//显示a b

跨页面提交

button进行跨页面提交

在源页面的button中设置PostBackUrl为目标路径
在目标页面上也就是.aspx结尾的文件的页面头部添@ PreviousPageType指令,设置VirtualPath属性值为源页面路径

在目标页面中的头部添加下面代码

<%@ PreviousPageType VirtualPath="test.aspx" %>

如何在目标页面访问原页面中的数据

  1. 利用PreviousPage.FindControl(“控件ID名”)再强转成对应的类型,通过获取属性值的防止来获取数据
  2. 在原页面中定义公共属性,在目的页面中通过PreviousPage.属性名来获取数据

判断是否是跨页面提交

Server.Execute()与Server.Transfer()都可以实现跨页面的效果(我没有验证,)
区分是跨页面提交还是通过调用上述两个函数的操作是在目标页面的.cs文件中判断PreviousPage.IsCrossPageBack属性值是否为true,若为true就是跨页面提交,反之不是

杂七杂八的

禁用ViewState

  1. 全局禁用 : 在<%@ Language=“C#”% >中添加EnableViewState=“false”
  2. 局部禁用:在要禁用的控件的EnableViewState属性改成false

Session

Session[“key”]=value;
注意只有Web.config文件中的sessionState=InProc时才会执行Session_End()方法,Session_End()就是时间到了TimeOut的值的时候要结束Session的时候会调用Session_End(),TimeOut是获取设置会话状态持续时间,单位是分钟,默认为20分钟

Application

这东西相当于一个全局变量,修改时先要调用Applicaiton.Lock(),结束后要调用Application.UnLock();

总结
在这里插入图片描述

http://www.lryc.cn/news/60714.html

相关文章:

  • Python 人工智能:11~15
  • 辉煌优配|军工板块逆市上涨,16只概念股已披露一季度业绩预喜
  • 看板与 Scrum:有什么区别?
  • 零代码是什么?零代码平台适合谁用?
  • CNStack 云服务云组件:打造丰富的云原生技术中台生态
  • #PythonPytorch 1.如何入门深度学习模型
  • [API]节点流和处理流字节流和字符流(七)
  • 开心档之C++ 模板
  • 拥抱还是革命,ChatGPT时代 AI专家给出15条科研生存之道
  • python算法中的数学算法(详解下)
  • Docker Desktop使用PostgreSql配合PGAdmin的使用
  • 大佬入局AI,职场人有新机会了?
  • 《攻防演练》在没有基础安全能力的情况下如何做好蓝队防守
  • SLAM 十四讲(第一版)疑难排查
  • JavaScript的基础语法学习
  • 大语言模型Prompt工程之使用GPT4生成图数据库Cypher
  • ChatGPT已死?AutoGPT太强?
  • Java基础总结(二)
  • 大数据-玩转数据-oracle创建dblink及应用
  • 冯诺依曼体系结构
  • Axios请求(对ajax的二次封装)——Axios API、Axios实例、请求配置、Axios响应结构
  • Scrum of Scrums规模化敏捷开发管理全流程
  • BP神经网络原来就是曲线拟合
  • Oracle数据库查看与修改内存配置
  • Jenkins自动拉取SVN源代码构建打包vue前端项目
  • MySQL表的操作
  • MySQL索引数据结构入门
  • 《低代码PaaS驱动集团企业数字化创新白皮书》-低代码PaaS应对行业集团企业数字化应用的需求(制造)
  • 深度学习实战26-(Pytorch)搭建TextCNN实现多标签文本分类的任务
  • 还在精神内耗?还在焦虑?可以看看这个