黑马程序员_学习日记80_808图书商城项目纪要
2012-08-09 22:47
531 查看
重点:url重写、生成静态页
1、BookDetail.aspx
Page_Load():
if(!string.IsNullOrEmpty(Request.QueryString["id"]))//请求id不为空
{
int id = 0;
if(!int.TryParse(Request.QueryString["id"],out id))//id不能成功转换
{
Response.Redirect("/BoookList.aspx");
}
else//id能成功转换
{
StringBuilder builder = new StringBuilder();
//根据id取Model.Book实体
if(model != null)
{
//自己拼字符串,table
}
else
{
Response.Redirect("/BookList.aspx")
}
}
}
2、url重写
为什么进行url重写?
便于搜索引擎优化
(1)在MasterPage.Master的Page_Load中改
//node.NavigateUrl = "/BookList2.aspx?categoryId="+model.Id;
node.NavigateUrl = "/BookList_"+model.Id+".aspx";
(2)在BeginRequest事件中进行url重写
string url = Request.AppRelativeCurrentExecutionFilePath;//~/BookList_25.aspx
Match match = Regex.Match(url,@"~/BookList_(\d+).aspx")//判断url是否需要重写
if(match.Success)
{
int id = Convert.ToInt32(match.Groups[1].Value);//得到书目类别编号
//url重写,重新交给原url进行处理//BookList.aspx?categoryId="+model.Id;
Context.RewritePath("/BookList.aspx?categoryId="+id);
}
(3)修改Action属性的值
问题:点排序方式的提交按钮后url又回到原样式
A、建App_Browsers文件夹,在其中新建my.browser浏览器文件。加一个配置项:
<browser refID="Default">
<controlAdapters>
<adapter controlType="System.Web.UI.HtmlControls.HtmlForm" adapterType="BookShop.Web.UrlRewriterControlAdapter">
</adapter>
</controlAdapters>
</browser>
ASP.Net用.browser浏览器文件来确定浏览器功能
form标签加上runat = server即为HtmlForm
B、添加两个类 UrlRewriter.cs UrlRewriterControlAdapter.cs,这两个类负责修改submit按钮的action属性
3、静态页
静态页降低数据库、web服务器cpu的压力。
什么样的内容做成静态页?看新闻
(1)一站静态化
A、建CreateStatePage.aspx,放一个button,Text="生成静态页"
btnPage_Click()
{
//从BLL层获取图书列表list
if(list != null)
{
//每个model生成一个网页
foreach(Model.Book model int list)
{
//TODO:StringBuilder拼接html网页
//建StaticPage文件夹放静态页
File.WriteAllText(Server.MapPath("/StaticPage/"+model.Id+".html"),builder.ToString(),Encoding.UTF8);
}
}
}
B、改BookList中图片链接"/StaticPage/{0}.html"
(2)生成单个静态文件,按日期放在不同文件夹中
BLL层,加CreateStaticPage方法,根据图书的编号取得model,拼接字符串生成对应的静态页。
按日期分文件夹存放静态页
改BookList中标题链接 href='<%#GetDir(Eval("PublishDate"))%><%#Eval("Id")%>.html'
(3)按模板静态化
TemplatePage文件夹专门放模板,建BookContent.html模板文件。
用占位符代表模板中需要替换的内容。
在BLL.BookManager中的CreateStaticPage方法中读模板并替换:
string template = File.ReadAllText(HttpContext.Current.Server.MapPath("/TemplatePage/BookContent.html"));
string html = template.Replace("$title",model.Title).Replace("$body",model.ContentDescription);
js、css的引用应为绝对路径
RSS在线共享内容的一种简易方式。通常用在时效性较强的网站。
RSS阅读器
<?xml varsion=?>
可以抓取Post的蜘蛛
1、BookDetail.aspx
Page_Load():
if(!string.IsNullOrEmpty(Request.QueryString["id"]))//请求id不为空
{
int id = 0;
if(!int.TryParse(Request.QueryString["id"],out id))//id不能成功转换
{
Response.Redirect("/BoookList.aspx");
}
else//id能成功转换
{
StringBuilder builder = new StringBuilder();
//根据id取Model.Book实体
if(model != null)
{
//自己拼字符串,table
}
else
{
Response.Redirect("/BookList.aspx")
}
}
}
2、url重写
为什么进行url重写?
便于搜索引擎优化
(1)在MasterPage.Master的Page_Load中改
//node.NavigateUrl = "/BookList2.aspx?categoryId="+model.Id;
node.NavigateUrl = "/BookList_"+model.Id+".aspx";
(2)在BeginRequest事件中进行url重写
string url = Request.AppRelativeCurrentExecutionFilePath;//~/BookList_25.aspx
Match match = Regex.Match(url,@"~/BookList_(\d+).aspx")//判断url是否需要重写
if(match.Success)
{
int id = Convert.ToInt32(match.Groups[1].Value);//得到书目类别编号
//url重写,重新交给原url进行处理//BookList.aspx?categoryId="+model.Id;
Context.RewritePath("/BookList.aspx?categoryId="+id);
}
(3)修改Action属性的值
问题:点排序方式的提交按钮后url又回到原样式
A、建App_Browsers文件夹,在其中新建my.browser浏览器文件。加一个配置项:
<browser refID="Default">
<controlAdapters>
<adapter controlType="System.Web.UI.HtmlControls.HtmlForm" adapterType="BookShop.Web.UrlRewriterControlAdapter">
</adapter>
</controlAdapters>
</browser>
ASP.Net用.browser浏览器文件来确定浏览器功能
form标签加上runat = server即为HtmlForm
B、添加两个类 UrlRewriter.cs UrlRewriterControlAdapter.cs,这两个类负责修改submit按钮的action属性
3、静态页
静态页降低数据库、web服务器cpu的压力。
什么样的内容做成静态页?看新闻
(1)一站静态化
A、建CreateStatePage.aspx,放一个button,Text="生成静态页"
btnPage_Click()
{
//从BLL层获取图书列表list
if(list != null)
{
//每个model生成一个网页
foreach(Model.Book model int list)
{
//TODO:StringBuilder拼接html网页
//建StaticPage文件夹放静态页
File.WriteAllText(Server.MapPath("/StaticPage/"+model.Id+".html"),builder.ToString(),Encoding.UTF8);
}
}
}
B、改BookList中图片链接"/StaticPage/{0}.html"
(2)生成单个静态文件,按日期放在不同文件夹中
BLL层,加CreateStaticPage方法,根据图书的编号取得model,拼接字符串生成对应的静态页。
按日期分文件夹存放静态页
改BookList中标题链接 href='<%#GetDir(Eval("PublishDate"))%><%#Eval("Id")%>.html'
(3)按模板静态化
TemplatePage文件夹专门放模板,建BookContent.html模板文件。
用占位符代表模板中需要替换的内容。
在BLL.BookManager中的CreateStaticPage方法中读模板并替换:
string template = File.ReadAllText(HttpContext.Current.Server.MapPath("/TemplatePage/BookContent.html"));
string html = template.Replace("$title",model.Title).Replace("$body",model.ContentDescription);
js、css的引用应为绝对路径
RSS在线共享内容的一种简易方式。通常用在时效性较强的网站。
RSS阅读器
<?xml varsion=?>
可以抓取Post的蜘蛛
相关文章推荐
- 黑马程序员_学习日记79_807图书商城项目纪要
- 黑马程序员_学习日记81_810图书商城项目纪要
- 黑马程序员_学习日记82_811图书商城项目纪要
- 黑马程序员_学习日记78_806图书商城项目纪要
- 黑马程序员_学习日记83_812图书商城项目小结
- 黑马程序员_学习日记55_628三层项目(用类封装用于拼接的where条件语句、写代码生成器)
- 网上图书商城项目学习笔记-027添加二级分类
- 黑马程序员_学习日记56_629三层项目(邮件收发、三层总结、HTML)
- 网上图书商城项目学习笔记-028编辑一级分类
- 网上图书商城项目学习笔记-031图书管理模块介绍及添加图书
- 网上图书商城项目学习笔记-007登录功能实现
- 网上图书商城项目学习笔记-013 添加购物车及我的购物车
- 网上图书商城项目学习笔记-012BOOK模块查询2
- 网上图书商城项目学习笔记-002登录页面的静态设计
- 网上图书商城项目学习笔记-014购物车模块页面javascrip
- 网上图书商城项目学习笔记-018生成订单
- 网上图书商城项目学习笔记-030删除一级分类
- 网上图书商城项目学习笔记-019我的订单
- 网上图书商城项目学习笔记-032编辑图书第一步
- 黑马程序员_学习日记52_622三层项目(MD5、NPOI)