新闻发布系统,B/S模式下的三层应用

    三层的学习已接触四五个月了,最早是在学习VB.NET视频中开始接触的,那时候跟着视频敲了两个例子。再后来,个人机房重构的时候,从三层进步到了七层,此后就觉得我们不能仅仅局限于三层之上。
    不过,那些都是C/S模式之下的编程。到现在,接触了B/S模式也一个多月了,第一个牛腩新闻发布系统觉得很是有趣,还是从最基本的开始,下面就一起看看B/S模式下,三层是怎样应用的。这篇博客就以添加新闻的实例来总结。
    对于三层的整个过程大家都是很熟悉的了,那么在这里就不再赘述了,直接一层一层来分析。
    一.思路整理。
    U层:给参数赋值,实例化B层添加新闻的方法,最后做出相应的提示。
    B层:实例化D层的添加新闻的方法。
    D层:利用SQLHelper,执行有参数的增加操作。
    二.编写代码
    U层:

protected void btnAdd_Click(object sender, EventArgs e)
        {
            //给参数赋值
            string title = txtTitle.Text.Trim();
            string content = ftbContent.Text.Trim();
            string caid = ddlCategory.SelectedValue;
            //实例化新闻实体类
            News n = new News(title, content, caid);
            //实例化B层添加新闻方法
            bool b = new NewsManager().Insert(n);
            //进行相应的判断并提示
            if (b)
            {
                Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('新闻添加成功!');</script>");
            }
            else
            {
                Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('新闻添加失败,请联系管理员!');</script>");
            }
            // 清空标题和内容
            txtTitle.Text = "";
            ftbContent.Text = "";
        }
 B层:

public bool Insert(News n)
        {
            return ndao.Insert(n);
        }
    D层:
 public bool Insert(News n)
        {
            //TODO:增加新闻
            bool flag = false;
            string cmdText = "news_insert";
            //实例化参数
            SqlParameter[] paras = new SqlParameter[]
            {
                new SqlParameter ("@title",n.Title ),
                new SqlParameter ("@content",n.Content ),
                new SqlParameter ("@caid",n.CaId )
            };
            //执行有参数的增加新闻的存储过程
            int res = sqlhelper.ExecuteNonQuery(cmdText, paras, CommandType.StoredProcedure);
            if (res > 0)
            {
                flag = true;
            }
            return flag;
        }  
    以上都是和我们C/S模式下相同的地方,若是C/S模式下,这也就完工了。而B/S模式下,我们还需要进一步对前台网页进行设计。下面就都是对网页设计需要进行的相应的操作:
    这部分的代码都比较简单,只是因为第一次接触,可能都觉得陌生。这里就简单解释几个代码段的含义:

1.<--添加网页标题-->
    <%@ Page Title="添加新闻_后台管理_牛腩新闻发布系统">
2.<--显示标题-->
    <h3>添加新闻</h3>
    注:h1、h2、h3、h4、h5及h6标签的作用是显示标题(这里的h是“标题(heading)”的意思)。其中h1是一级标题,字体最大;h2是二级标题,字体比一级标题略小;而h6是六级标题,它是最后一级标题,字体也最小。
3.<--新闻分类下拉列表控件设置-->
    <p>
        新闻分类:<asp:DropDownList ID="ddlCategory" runat="server" DataSourceID="SqlDataSource1" DataTextField="name" DataValueField="name"></asp:DropDownList>
            <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:newssystemConnectionString %>" SelectCommand="SELECT [name] FROM [category]"></asp:SqlDataSource>
    </p>
4.<--新闻标题文本框控件设置-->
    <p>新闻标题:<asp:TextBox ID="txtTitle" runat="server" CssClass="newstitle"></asp:TextBox></p>
5.<--新闻内容外部控件设置-->
    <p>新闻内容:</p>
        <p>
            <FTB:FreeTextBox Text="" Language="zh-CN" ToolbarStyleConfiguration="OfficeMac" ID="ftbContent" Width="500" Height="200" runat="server">
            </FTB:FreeTextBox>
        </p>
    注:标签<p>里的p是“段落(paragraph)”的意思,也就是一个文本段落。
    前台设计好后,我们就可以通过浏览器看到此部分了:

学习心得:
    虽然学习了三层很长时间,但换一种模式,又发现了许多新鲜的东西,这也正好激发了自己学习的兴趣。同样,我们的学习还是需要积累,B/S的学习继续。。
时间: 2024-08-26 16:12:59

新闻发布系统,B/S模式下的三层应用的相关文章

牛腩新闻发布系统---外键约束下如何删除记录

一.为什么使用外键? 查了些资料,八个字"保持完整性.一致性",结合我之前做的重构机房收费系统,我的理解是"防止相关表中数据没有关联而变得孤立,最终导致数据冗余",得出这个结论是上次让贾丽敏帮忙点系统时候我最深刻的感受,因为我的数据库关系图中辣么多张表却没有丝毫关系-- 既然官方解释是"完整性和一致性",就先来说明一下: 对于完整性和一致性,不少人都混为一谈了. 完整性(integrity)更多是针对实际业务来说的,比如说一个职员ID,不能在一个

新闻发布系统,添加新闻+++文件上传

1.新闻发布系统 2.文件上传+++ ①首先在index.jsp的界面上初始化一个表单. <body> <form enctype="multipart/form-data" action="<%=path%>/1.jsp" method="post"> 姓名:<input type="text" name="username"/> 选择文件:<inpu

安卓项目-利用Sqlite数据库,开发新闻发布系统

本教程致力于程序员可以快速的学习安卓移动端手机开发. 适合于已经习得一种编程语言的同仁. 更多志同道合,想要学习更多编程技术的大神们. 小弟不才,麻烦关注一下我的今日头条号-做全栈攻城狮. 本文章是基于上篇文章基础之上进行深入学习的.程序员带你学习安卓开发-XML文档的创建与解析 Sqlite数据库: Sqlite数据库是在安卓中使用较广泛的数据库.其为简单.轻巧的Sql类文件型数据库.因以简单的文本形式保存,所以安全性不是很高.只要拿到sqlite数据库文件就可以得到数据.所以这就决定了sql

牛腩新闻发布系统概要

开始了B/S项目学习,第一个学习内容就是开发新闻发布系统,跟着牛腩老师的视频学习有几天了,在这个过程 中也积累了点知识,在这里把新闻发布系统的一个轮廓叙述一下了. 系统说明 1.系统的整体功能 就是能够实现后台人员添加新闻,在前台可以浏览新闻并发表评论 2.功能图 3.数据库设计图 4.建表 --建立数据库 create database newssystem --建立类别表 create table category ( id int identity(1,1) primary key, [n

新闻发布系统后台

作为第一个进行的Web系统,新闻发布系统的后台代码和之前编写的机房没有太大的区别,下面主要通过SQLHelper()方法的创建和重构总结下新闻系统的后台. 首先是画用例图.类图.进行数据库的设计!这里不做详细说明每个系统开始的工作.然后编写D层代码SQLHelper(),以ExecuteNonQuery()方法来简单描述SQLHelper()的几次重构 1.主要结构 原来是针对单个的一个功能写一个方法,这里将方法的主要结构拿出,通过传入sql语句来执行类似的操作. public int Exec

牛腩新闻发布系统总结——网站发布和分页制作

牛腩新闻发布系统的视频看了将近半个月的时间,今天成功地把它发布了,哈哈.第一次看教学视频看得这么专注,都不带走思的,很不错.给小牛老师赞一个,嘿嘿! 言归正传,每学完一个阶段,最重要的就是总结,所以就允许我以倒序的形式,颗粒归仓吧! 牛腩新闻发布系统的发布 参考博文: win7下IIS的安装和配置 http://www.jb51.net/article/29787.htm VS2010网站发布详解 http://wanghaitaoboke.blog.163.com/blog/static/17

牛腩新闻发布系统总结(四)--知识点滴

紧接上篇博客:牛腩新闻发布系统总结(三)----知识点滴,继续我们的总结: 第五,在回复评论后如何保持滚动条的位置不变: <%@ Page Title="新闻内容-牛腩新闻发布系统" Language="C#" MasterPageFile="~/common.Master" AutoEventWireup="true" CodeBehind="newsContent.aspx.cs" Inherit

牛腩新闻发布系统--重构SQL Helper

天外有天,人外有人.自我进提高班以来,一直都在考虑,先前重构机房的时候,看到别人在D层加了SQL Helper,就一定要学者加上玩玩,等做完了以后,进行下一个阶段牛腩的时候,又看到了人家建的SQL Helper,不觉感慨,跟人家比,人家就是我的老师! 闲话就不多说了,进行正式的话题:如何写好SQL Helper?从宏观上讲,SQL Helper是完全体现了面向对象的抽象和封装的思想的.它对重复代码抽取出来,进行抽象,抽象就是为了封装,提高了代码的复用. 那么就该讨论怎么写的问题.如果我先上来给大

【牛腩新闻发布系统】----你的验证码正确么

前言 这是一个神奇的网站--牛腩新闻发布系统,虽然做的不咋地,但毕竟是自己动手敲出来,还是有一点点的满足感.同时这也是小编的第一个雠小鸭,长相不算漂亮,发育还是挺健全的. 终有一天我的丑小鸭会变成白天鹅. 一步一步的进化,一步一步的蜕变-- 你的验证码正确么 哎呀--为什么我的牛腩新闻发布系统   请输入验证码的图片一直为这个样子呀--不显示,就是不显示图片,图片加载出错呀.想想估计是图片路径不正确. 尝试一:牛老师说的图片加载路径 <img src="handler/WaterMark.