第四章
2.新建项目ASP.NET项目
名字为Demo,
选择空模板,然后勾选下方Web窗体
点击创建就创建成功了
一、HttpResponse
4.然后就实现样式了
<div>
访问的网址:<asp:TextBox ID="txt_Url" runat="server"></asp:TextBox><asp:Button ID="Button1" runat="server" Text="访问" />
<br />
姓名:<asp:TextBox ID="txtName1" runat="server"></asp:TextBox><asp:Button ID="Button2" runat="server" Text="Response.End测试" />
<br />
<b>姓名:</b><asp:TextBox ID="txtName2" runat="server"></asp:TextBox><asp:Button ID="Button3" runat="server" Text="Response测试" />
</div>
5.点击左下角设计,双击访问按钮,跳转到.aspx.cs中
// 访问按钮的点击事件
protected void Button1_Click(object sender, EventArgs e)
{
// 判断,输出的结果有没有值
// 用来检查名为txt_Url的文本框中输入的文本是否为空白或null
// string.IsNullOrWhiteSpace() 是一个方法,用于检查字符串是否为null,空字符串或仅包含空白字符
// !string.IsNullOrWhiteSpace(txt_Url.Text) 表示如果txt_Url文本框中的文本不是空白或null,则条件为真,否则为假
if (!string.IsNullOrWhiteSpace(txt_Url.Text))
{
// 使用Redirect方法,跳转到txt_Url输入的路径
Response.Redirect(txt_Url.Text);
}
}
6.双击Response.End测试按钮
// Response.End测试的点击事件
protected void Button2_Click(object sender, EventArgs e)
{
if (!string.IsNullOrWhiteSpace(txtName1.Text))
{
// 输入一段话 您好 + 张三 + 欢迎学习Response方法,这个是加了End方法的
Response.Write("您好" + txtName1.Text + "欢迎学习Response方法,这个是加了End方法的");
// End结束页面的所有内容
Response.End();
}
}
7. 双击Response测试按钮
// Response测试的点击事件
protected void Button3_Click(object sender, EventArgs e)
{
if (!string.IsNullOrWhiteSpace(txtName2.Text))
{
// 会继续往后输出的
Response.Write("您好" + txtName2.Text + "欢迎学习Response方法,这个是没有加End方法的");
}
}
8.测试
Ctrl+F5打开网页
(1)在访问的网址中输入正确的网址,就可以跳到对应的页面
(2)在txtName1里面输入张三,点击Response.End测试,会跳转到另一个网页
(3)在txtName2里面输入张三,点击Respons测试
二、
1.添加web窗体,index2
2.
<form id="form1" runat="server">
<div>
index2.aspx所在的物理路径为:
<br />
<%--存放物理路径的地方--%>
<asp:Label ID="Label1" runat="server"></asp:Label>
</div>
</form>
3.打开index2.aspx.cs
// 页面加载事件 Page_Load
protected void Page_Load(object sender, EventArgs e)
{
// 存放物理路径的地方 = 转换为物理路径
Label1.Text = Request.MapPath("index2.aspx");
}
1.添加web窗体,index3
2.
<div>
您的姓名:<asp:TextBox ID="txtName" runat="server"></asp:TextBox>
<br />
您的密码:<asp:TextBox ID="txtPwd" runat="server"></asp:TextBox>
</div>
<asp:Button ID="btn" runat="server" Text="提交" />
3.获取输入信息,双击提交按钮
// 提交按钮的点击事件
protected void btn_Click(object sender, EventArgs e)
{
// 1.获取姓名和密码
// 字符串类型 变量名 = 文本框控件的值
string strName = txtName.Text;
string strPwd = txtPwd.Text;
3.1添加web窗体,TargePage
// 2.通过重定向,跳转到TargePage页面,把姓名和密码通过url的方式传递
// 第一个name和pwd是参数,第二个strName和strPwd是变量
// & 相连的
Response.Redirect("TargePage.aspx?name=" + strName + "&pwd=" + strPwd);
}
4.我不想让他在url中显示,我让他显示在页面当中
打开TargePage.aspx.cs
// 网页加载事件
protected void Page_Load(object sender, EventArgs e)
{
// 值已经传输过来了,需要接收传递过来的值,显示在页面中
Response.Write("欢迎" + Request.QueryString["name"] + ",您的密码是:" + Request.QueryString["pwd"]);
}
三、
1.添加web窗体,index4
2.打开index4.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
// 直接将内容输入到响应流中
Response.Write("<b>测试</b>表示用粗体显示");
Response.Write("<br />");
// 1.显示方式
// < 代表小于号 >代表大于号
Response.Write("<b>测试</b>表示用粗体显示");
Response.Write("<br />");
// 2.显示方式
Response.Write(Server.HtmlEncode("<b>测试</b>表示用粗体显示"));
}
1.添加web窗体,url
2.打开url.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
// 用变量定义一个网址
string url = "http://www.abc.com/articles.aspx?name=张三";
Response.Write("这是没有使用Server.UrlEncode方法" + url + "<br /><br />");
string urlEncode = Server.UrlEncode(url);
Response.Write("这是使用了Server.UrlEncode方法" + urlEncode);
}
总结:
- 传递Form表单中的控件值用Request.Form 获取值,地址栏中传递的参数用 Request.QueryString获取
- 通常用HttpResponse 类的属性Buffer、Cache、Cookie 和 Expires来设置站点的一些特性
- HttpResponse 类的常用方法是 Write()、End() 和 Redirect()
- HttpServerUtility 类的Execute()和Transfer()的区别关键在于执行后控制权是否返回原先页面、URLEncode()和HTMLEncode()主要用于对HTML 标签和URL进行编码,对站点或程序的安全具有重要意思, MapPath()获取物理路径时需要注意是绝对路径还是相对路径