在工作室原有项目的基础上,新增一个news板块进行练习PHP最基本的增删改查。
目录:
一、新建数据库
二、连接数据库
三、定义 AR 类( 创建model)
四、控制器(contoller)
五、增删改查方法
1.查找全部信息
2.通过id查找信息
3.删除新闻
4.增加新闻
5.修改新闻
一、新建一个数据库(或者利用原有数据库)
我新建了一个数据库,名为db_new。新建名为t_news的表。包含五个属性。
二、连接数据库
打开main.php , 具体目录如下:
修改本地数据库代码,将数据库名跟用户名、密码该为自己数据库对应的。
//本地的数据库
'db'=>array(
'connectionString' => 'mysql:host=127.0.0.1;dbname=db_new', //mysql:host=125.222.222.73 本地数据库
'emulatePrepare' => true,
'username' => 'root',
'password' => 'root',
'charset' => 'utf8',
'tablePrefix' =>'t_',
),
三、定义 AR 类( 创建model)
要访问一个数据表,我们首先需要通过集成 CActiveRecord 定义一个 AR 类。 每个 AR 类代表一个单独的数据表 ,一个 AR 实例则代表那个表中的一行。
在此目录下。新建PHP文件,继承CActiveRecord。
主要写两个方法,只需将第二个方法(tableName())中的return 该为自己数据库中表的名字,我的是news。
class News extends CActiveRecord
{
public static function model($className=__CLASS__)
{
return parent::model($className);
}
public function tableName()
{
return '{{news}}'; //return 't_news'
}
}
注:默认情况下, AR 类的名字和数据表的名字相同。如果不同,请覆盖 tableName() 方法。
引入的 表前缀功能 AR类的 tableName() 方法可以通过如下方式覆盖
public function tableName(){
return '{{news}}'; //return 't_news'; 表的名字
}
这就是说,我们将返回通过双大括号括起来的没有前缀的表名,而不是完整的表的名字。
四、控制器(Controller)
在controller文件夹下新建一个文件夹,命名为news。在news中新建一个名为 NewsController的controller,并继承Controller。
class NewsController extends Controller
{ ***********
}
五、编写增删改查方法
因为工作室项目的html文件都在这个目录下,因此我们在这个目录下,新建一个名为news的文件夹,我们的html就放在该文件夹下。
1.查找全部信息
(1)news下新建html文件,名为list_news.html
(2)在controller中写查看全部新闻的方法。在controller中的方法名要加action,可以自动识别。
/**
* 全部新闻
*/
public function actionGetNews(){
$list = News::model()->findAll(); //将t_news表中全部信息存到 $list中
$this->smarty->assign('list',$list);
$this->smarty->display('news/list_news.html');//跳到对应的html页面,内容展示
// var_dump($list);
}
对应list_news.html的代码
标题
操作
内容 时间
<{foreach from=$list item=news}>
<{$news.date}>
<{$news.title}> <{$news.writer}>
删除
查看详情 修改
添加
<{/foreach}>
简单展示如下图所示:
2.通过id查找信息
点击新闻页面的查看详情,可查看新闻的全部内容。
查看详情
对应controlle中的方法:
/**
* 通过id查找一条新闻
*/
public function actionGetNewsById(){
$id=$_GET['id'];
$news=News::model()->find('id=:id',array(':id'=>$id));
$this->smarty->assign('news',$news);
$this->smarty->display('news/concrete_content.html');
}
将新闻的详细信息,在concrete_content.html中进行展示。
<{$news.title}>
内容
<{$news.content}>
作者
<{$news.writer}>
时间
<{$news.date}>
简单页面展示如下:
3.删除新闻
删除
将对应新闻的id传到controller,删除对应的新闻,调用查看全部新闻方法,返回到展示新闻页面。
/**
* 删除新闻
*/
public function actionGetDeleteNews()
{
$id=$_GET['id'];
$news=News::model()->findByPk($id);
$news->delete(); // 从数据表中删除此行
$this->redirect(array(getNews));
}
4.增加新闻
< a href= "<{$website}>/news/News/toAddNews" > 添加 a >
通过controller中的方法,跳转到增加新闻页面。
/**
* 跳转到增加新闻
*/
public function actionToAddNews(){
$this->smarty->display('news/add_news.html');
}
增加新闻html
将添加的内容通过form表单,传给controller,增加新闻。
/**
* 增加新闻
*/
public function actionAddNews2(){
$news=new News;
$content=$_POST['content'];
$title=$_POST['title'];
$writer=$_POST['writer'];
$news->title=$title;
$news->content=$content;
$news->writer=$writer;
$news->save();
$this->redirect(array(getNews));
// var_dump($news);
}
简单页面展示:
5.修改新闻
修改
将要修改的新闻的id传给controller,将id对应的新闻在页面呈现出来,进行修改。
/**
* 跳转到更新新闻
*/
public function actionToUpdateNews(){
$id=$_GET['id'];
$news=News::model()->find('id=:id',array(':id'=>$id));
$this->smarty->assign('news',$news);
$this->smarty->display('news/update_news.html');
}
修改新闻页面:
标题
<{$news.title}>
内容
<{$news.content}>
作者
<{$news.writer}>
/**
* 修改新闻
*/
public function actionGetUpdateNews(){
$id=$_POST['id'];
$news=News::model()->find('id=:id',array(':id'=>$id));
$news->title=$_POST['title'];
$news->content=$_POST['content'];
$news->writer=$_POST['writer'];
$news->save(); // 将更改保存到数据库
$this->redirect(array(getNews));
}
简单页面展示:
Yii 权威指南(使用数据库)http://www.yiichina.com/doc/guide/1.1/database.ar
你可能感兴趣的:(语言学习)
C语言学习(十一)7.26
sa905
c语言 学习 开发语言
今天学习预处理命令和指针预处理命令分为宏定义、文件包含、条件编译宏定义又分为:不带参宏和带参宏不带参宏:#include标识符字符串带参宏:#includes(a,b)a*b宏名一般用大写字母表示;gcc-E这个命令只做预处理,不编译;不能再宏后面加上分号(;)加上分号会把分号一起处理;宏也还能嵌套处理;写宏时尽量加上括号,防止优先级出问题。宏就是只换不算,(无脑文本替换)文件包含:把文件打开复制
7.24 C语言学习^_^
1.逻辑与表达式中只要有一个为假整个表达式都为假后面的表达式不再运行2.逻辑或表达式中只要有一个为真整个表达式都为真后面的表达式不再运行总结:&&左边为假,右边就不计算了||左边为真,右边就不计算了3.逗号表达式从左向右依次执行最后一个表达式的结果就是整个表达式的结果4.数组arr【7】可以写成7【arr】(对数组的深刻理解)5.CPU计算数据时是以int型来计算的而int有32个bitechar
2018-01-17 Day 99
Hich99en
Day99-英语学习打卡Date:17thJanTopic:《剑桥英语教学能力认证考试》模块一:语言和语言学习和教学的背景知识Part1-Unit6口语提高口语技能,最好有规律地聚焦某一个方面,比如:流利度、发音、语法的准确性和肢体语言限定的练习(就是使用教授的语言)表达形式非常有限,因为它只注意到语言的准确性,而没有沟通、互动和流利度。不过,它可以为真实的口语表达做准备因为口语是个复杂的技能,课
Go 语言学习之 goroutine 和 channel
goroutine当一个go程序运行时,调用main函数入口的goroutine是主goroutine,我们还可以使用关键字go创建新的goroutine。在Go语言中,创建goroutine的语法很简单,只需要在函数或方法调用前加上go关键字。channelchannel是可以让一个goroutine发送特定的值到另一个goroutine的通信机制,Go官方鼓励使用CSP并发编程风格,以通信代替
Go 语言学习之测试
概念:在Go语言中,Go的测试方法依赖于命令gotest,gotest子命令是Go语言包的测试驱动程序,测试文件的文件名以_test.go结尾。每个测试文件必须导入testing包。测试函数分为三种,分别是功能测试函数,函数名以Test开头,用来检测一些程序逻辑的正确性,gotest命令运行测试函数,输出结果是PASS或FAIL;性能测试函数,函数名以Benchmark开头,用来测试某些操作的性能
Go语言学习笔记【15】 排序算法之堆排序、桶排序、基数排序
LC520730
排序算法 go语言学习之路 排序算法 学习 算法 golang 数据结构
【声明】非完全原创,部分内容来自于学习其他人的理论。如果有侵权,请联系我,可以立即删除掉。一、堆排序1、方法和复杂度1.1、核心思想利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点根据这个特点,先将待排序的序列构造成一个小顶堆,则堆顶就是序列中最小的元素取出堆顶元素,用最后一个元素填充堆顶,然后重新构建小
2022年第六次一周小结(09.11-09.17)
龚宇佳
上周总结:1.阅读28h。第一,上周整理了《深度思维》剩余笔记,目前整本书的笔记都整理完成。第二,开始阅读黄奇帆的《分析与思考》,之前看过他的《结构性改革》,两本书有相似的地方,但值得一看。第三,继续精读《态度改变与社会影响》,需要思考和做笔记的比较多,因此进度比我想得要慢,上周没有达成计划目标。2.写作2h。上周继续保持日更。3.语言学习12.5h。I.粤语学习方面。模仿电影《回魂夜》,且听黄子
c语言学习_数组
无限远的弧光灯
学习c语言 c语言 学习 开发语言
今天学习数组。数组即一种相同类型元素的集合。数组的创建方式:type_tarr_name[const_n]type_t指数组的元素类型,const_n是一个常量表达式,用来指定数组的大小。在c99语法中,const_n处也可以是一个变量,称为变长数组,但一般而言都是常量。对数组进行初始化时,类似intarr[10]={1,2,3};为不完全初始化,类似charch[5]={1,2,3,4,5};为
c语言学习_函数递归
无限远的弧光灯
学习c语言 学习 开发语言 c语言
今天学习函数递归。函数递归通俗来说就是函数自己调用自己,递归的主要思考方式在于:把大事化小。例子:接受一个整型值,按照顺序打印它的每一位。voidprint(unsignedintn){if(n>9){print(n/10);}printf("%d",n%10);}intmain(){unsignedintnum=0;scanf("%u",&num);print(num);return0;}
C语言学习——数组
许白掰
C语言学习 c语言 学习 算法
目录一、初探程序中的数组1.数组的概念2.数组的定义3.数组元素的访问二、数组特性深入剖析1.数组的初始化2.数组的内存分布三、多维数组1.多维数组的定义2.数组类型3.二维数组4.多维数组初始化注意事项一、初探程序中的数组1.数组的概念数组是相同数据类型变量的有序集合—数组作为整体需要一个合法的命名(数组名)—数组中的变量没有独立命名,只有在数组中的编号—数组中的变量数量是固定不变的(数组大小固
用C程序编写一个程序,打印空心倒置直角三角形
程序员极光
C语言练习 c语言 算法 开发语言
用C程序编写一个程序,打印空心倒置直角三角形在C语言学习过程中,图案打印是非常经典且实用的练习,能够帮助你熟悉循环嵌套与条件判断的配合使用。本文将详细解析如何打印一个左对齐空心倒直角三角形。程序目标打印一个10行的左对齐空心倒直角三角形,效果如下:***************************完整代码#includeintmain(){introw,column;introw_length
用C程序编写一个程序,打印空心星号正方形
用C程序编写一个程序,打印空心星号正方形在C语言学习过程中,for循环与条件判断的结合应用非常重要。今天通过一个打印空心矩形的例子,帮助大家理解嵌套循环与if语句的组合技巧。程序目标用C语言在控制台打印一个5行5列的空心矩形:****************完整C语言代码#includeintmain(){introw,column;introw_length=5;//行数intcolumn_le
【游戏引擎之路】登神长阶(五)
erxij
游戏引擎开发 游戏 游戏引擎
5月20日-6月4日:攻克2D物理引擎。6月4日-6月13日:攻克《3D数学基础》。6月13日-6月20日:攻克《3D图形教程》。6月21日-6月22日:攻克《Raycasting游戏教程》。6月23日-6月30日:攻克《Windows游戏编程大师技巧》。下个目标:汇编语言学习。今天收工,这周完成了80小时的净工作时间,没有一点的水份。去年过年之后,我开始了骑行,那时候我只是骑了十公里就非常疲惫,
第31次一周小结(2023.02.19-02.25) 2023.02.26
龚宇佳
上周总结:1.阅读21h。第一,精读《社会性动物》,有些内容和《态度改变与社会影响》、《思考,快与慢》想通,读起来很顺畅。第二,翻看《夏商周:从神话到史实》以及《汉字就是这么来的》。2.写作3.5h。保持日更。3.语言学习5h。I.粤语学习方面。上周模仿了电视剧《新四十二章经》,在工作中和同事用粤语交流,II.英语学习方面。每天至少听写或翻译一篇,跟读电影扎导版《正义联盟》。4.PPT学习3.5h
c语言学习15四则运算
四则运算练习需求:进入一个界面选择+-*/printf选择运算法则(如果选择错误,提示重新选择)switchcasedefult显示100以内两个随机数,输入运算结果rand系统显示正确答案,并且判断正确错误要求:封装函数分析:intmain(void){//界面程序-----界面函数//输入和识别程序-----按键识别函数//随机数程序----产生随机数函数//系统计算并且对比答案----对比答
如何用深度学习实现图像风格迁移
最近研学过程中发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击链接跳转到网站人工智能及编程语言学习教程。读者们可以通过里面的文章详细了解一下人工智能及其编程等教程和学习方法。下面开始对正文内容的介绍。前言图像风格迁移是人工智能领域中一个非常有趣且富有创意的应用。它能够让一张普通的照片瞬间变成梵高笔下的《星月夜》风格,或者像莫奈的《睡莲》一样充满艺术感。这种技术不仅在
C语言学习笔记:do..while循环、goto语句
女巫和她的乌鸦
C语言 c语言 学习
do…while()循环,do语句的语法:do循环语句;while(表达式);例:intmain(){inti=1;do{printf("%d",i);i++;}while(i#include#includevoidmenu(){printf("1.play\n");printf("0.exit\n");}voidgame(){//猜数字游戏的实现:先生成随机数-->猜数字。rand函数返回了一个
C语言学习(4)-- 循环语句(for、while、do...while)、goto
贪睡脑子
C语言学习 c语言 学习 算法
第一章while循环和do...while循环第一节while语句while(整型表达式){...},如果整型表达式为真,即可进入循环体。举例说明:其中需要注意的是1.break和continue都只有在循环体中才可以使用。2.break是结束循环,continue是不执行后面语句,重新进入循环,继续循环。//该现象会进入死循环,因为到了i==5时,下面语句不执行,i始终为5——所以输出1234i
c语言如何宏定义枚举型结构体,C语言学习笔记--枚举&结构体
搁浅的鲎
c语言如何宏定义枚举型结构体
枚举枚举是一种用户定义的数据类型,它用关键字enum以如下语法格式来声明:enum枚举类型名字{名字0,名字1,。。。,名字n};枚举类型名字通常并不真的使用,要用的是大括号里面的名字,因为它们就是常量符号,它们的类型是int,值则依次从0到n。如:enumcolor{red,yellow,green};就创建了3个常量,red的值是0,yellow的值是1,green的值是2。当需要一些可以排列
高效批量单词翻译工具的设计与应用
本文还有配套的精品资源,点击获取简介:在信息技术飞速发展的今天,批量单词翻译工具通过计算机的数据处理能力,大大提高了语言学习和文字处理的效率。用户通过简单输入单词列表到一个文本文件,并运行翻译程序,即可获得翻译结果并保存至指定文件。该工具集成了内置或外部翻译引擎,利用自然语言处理技术实现快速准确的翻译,并可能提供词性识别等附加功能。尽管机器翻译无法完全取代人工校对,但它为用户提供了一种高效的翻译解
c语言变长数组与数组越界保护
嵌入式er.
Linux应用开发 c语言
文章目录1.定长数组的使用2.定长数组的栈空间3.变长数组的使用4.变长数组的栈空间5数组越界保护在c99协议标准中,增加了变长数组(VLA)这一特性,本文旨在从汇编的角度来理解其原理,并且简单阐述下数组越界保护的内容。在此顺带说一下自己对c语言学习的理解,关于常规的表达式、语法等不做阐述,主要对一些复杂的关键字或者特性的学习方式作以自己的感悟。如:c语言中对const、static、变长数组等的
R语言学习笔记—删除对象
w1149033842
R语言
1.删除环境中的对象Arm(A)2.删除环境中的所有对象rm(list=is())3.删除除了A和B以外的所有对象allobj<-is()rm(list=allobj[which(allobj!="A"&allobj!="B")])
C语言学习——四则运算,关系运算,逻辑运算与位运算
许白掰
C语言学习 学习 c语言 开发语言
目录前言编辑一、四则运算1.四则运算的概念2.注意事项3.小结二、关系运算1.关系运算的概念三、逻辑运算1.逻辑运算的概念2.逻辑运算中的短路法则(1)对于&&运算(2)对于||运算3.取非运算(!)四、位运算1.位运算的概念2.深度剖析位运算(1)再论数据类型(2)所以位运算时需要明确知道的事(3)类型补充知识——char字符型3.小结五、总结前言——C语言中支持下面四种类型的运算一、四则运算1
GO 语言学习 之 结构体
唯独不开心
golang 学习 golang 开发语言
在Go语言中,结构体(struct)是一种用户自定义的数据类型,它可以包含多种不同类型的数据组合在一起。结构体为组织和管理相关数据提供了一种有效的方式,常用于表示现实世界中的对象或概念。如果你懂C/C++,那么这个数据结构理解起来挺容易的,只是形式上略有不同。结构体定义typestruct{...}type关键字:表示定义了一个新类型。struct关键字:表示新的类型是一个结构体类型结构体可以包含
java joinpoint教程_Java的教程
weixin_39572168
java joinpoint教程
Java编程语言Java编程语言中,左侧的导航栏(Java编程语言),可以快速定位文章的内容。这篇文章主要汇总以下:Java编程语言学习:Java的概述,Java的基础,Java面向对象的概念,Java的运算符,Java面向对象的概念,Java中的字符串String,Java中的数组array,Java中的关键字,Java中的方法,Java中的构造函数,Java中的异常,Java中的继承,Java
c语言学习_函数的调用2
今天就函数的调用做了一个小练习:写一个函数,每调用一次这个函数,使num的值增加1。voidADD(int*p){(*p)++;}intmain(){intnum=0;ADD(&num);printf("%d\n",num);return0;}
R语言学习笔记之十
摘要:仅用于记录R语言学习过程:内容提要:描述性统计;t检验;数据转换;方差分析;卡方检验;回归分析与模型诊断;生存分析;COX回归写在正文前的话,关于基础知识,此篇为终结篇,笔记来自医学方的课程,仅用于学习R的过程。正文:描述性统计n如何去生成table1用table()函数,快速汇总频数u生成四格表:table(行名,列名)>table(tips$sex,tips$smoker)NoYesFe
机器学习在智能仓储中的应用:库存管理与物流优化
Blossom.118
机器学习与人工智能 机器学习 人工智能 深度学习 机器人 sklearn tensorflow cnn
最近研学过程中发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击链接跳转到网站人工智能及编程语言学习教程。读者们可以通过里面的文章详细了解一下人工智能及其编程等教程和学习方法。下面开始对正文内容的介绍。随着电子商务的蓬勃发展,仓储和物流行业面临着前所未有的挑战和机遇。智能仓储通过整合先进的信息技术,如物联网(IoT)、大数据和机器学习,能够实现从货物入库到出库的全流程
【Go】入门Go应该怎么学
CodeWithMe
Go golang 开发语言 后端
Go语言学习路线图一、为什么学Go?简洁、直观,容易上手,语法像C又比C简洁天然支持并发(goroutine+channel)编译速度快、跨平台强、部署简单(一个二进制)在云原生(K8s)、微服务、工具链开发领域非常受欢迎拥有丰富的标准库与成熟的社区二、学习阶段与资源第一阶段:Go基础语法&核心概念内容:变量、常量、类型流程控制(if、for、switch)数组、切片、map、字符串函数、返回值、
go语言学习 第5章:函数
余厌厌厌
golang go 开发语言 学习
第5章:函数函数是编程中不可或缺的一部分,它封装了一段可重复使用的代码,用于执行特定的任务。在Go语言中,函数同样扮演着重要的角色。本章将详细介绍Go语言中函数的定义、调用、参数传递、返回值处理以及一些高级特性,如闭包和匿名函数。一、函数的定义与调用(一)函数的定义在Go语言中,函数的定义使用func关键字。基本语法如下:func函数名(参数列表)返回值列表{//函数体}函数名:函数的名称,用于调
SAX解析xml文件
小猪猪08
xml
1.创建SAXParserFactory实例
2.通过SAXParserFactory对象获取SAXParser实例
3.创建一个类SAXParserHander继续DefaultHandler,并且实例化这个类
4.SAXParser实例的parse来获取文件
public static void main(String[] args) {
//
为什么mysql里的ibdata1文件不断的增长?
brotherlamp
linux linux运维 linux资料 linux视频 linux运维自学
我们在 Percona 支持栏目经常收到关于 MySQL 的 ibdata1 文件的这个问题。
当监控服务器发送一个关于 MySQL 服务器存储的报警时,恐慌就开始了 —— 就是说磁盘快要满了。
一番调查后你意识到大多数地盘空间被 InnoDB 的共享表空间 ibdata1 使用。而你已经启用了 innodbfileper_table,所以问题是:
ibdata1存了什么?
当你启用了 i
Quartz-quartz.properties配置
eksliang
quartz
其实Quartz JAR文件的org.quartz包下就包含了一个quartz.properties属性配置文件并提供了默认设置。如果需要调整默认配置,可以在类路径下建立一个新的quartz.properties,它将自动被Quartz加载并覆盖默认的设置。
下面是这些默认值的解释
#-----集群的配置
org.quartz.scheduler.instanceName =
informatica session的使用
18289753290
workflow session log Informatica
如果希望workflow存储最近20次的log,在session里的Config Object设置,log options做配置,save session log :sessions run ;savesessio log for these runs:20
session下面的source 里面有个tracing 
Scrapy抓取网页时出现CRC check failed 0x471e6e9a != 0x7c07b839L的错误
酷的飞上天空
scrapy
Scrapy版本0.14.4
出现问题现象:
ERROR: Error downloading <GET http://xxxxx CRC check failed
解决方法
1.设置网络请求时的header中的属性'Accept-Encoding': '*;q=0'
明确表示不支持任何形式的压缩格式,避免程序的解压
java Swing小集锦
永夜-极光
java swing
1.关闭窗体弹出确认对话框
1.1 this.setDefaultCloseOperation (JFrame.DO_NOTHING_ON_CLOSE);
1.2
this.addWindowListener (
new WindowAdapter () {
public void windo
强制删除.svn文件夹
随便小屋
java
在windows上,从别处复制的项目中可能带有.svn文件夹,手动删除太麻烦,并且每个文件夹下都有。所以写了个程序进行删除。因为.svn文件夹在windows上是只读的,所以用File中的delete()和deleteOnExist()方法都不能将其删除,所以只能采用windows命令方式进行删除
GET和POST有什么区别?及为什么网上的多数答案都是错的。
aijuans
get post
如果有人问你,GET和POST,有什么区别?你会如何回答? 我的经历
前几天有人问我这个问题。我说GET是用于获取数据的,POST,一般用于将数据发给服务器之用。
这个答案好像并不是他想要的。于是他继续追问有没有别的区别?我说这就是个名字而已,如果服务器支持,他完全可以把G
谈谈新浪微博背后的那些算法
aoyouzi
谈谈新浪微博背后的那些算法
本文对微博中常见的问题的对应算法进行了简单的介绍,在实际应用中的算法比介绍的要复杂的多。当然,本文覆盖的主题并不全,比如好友推荐、热点跟踪等就没有涉及到。但古人云“窥一斑而见全豹”,希望本文的介绍能帮助大家更好的理解微博这样的社交网络应用。
微博是一个很多人都在用的社交应用。天天刷微博的人每天都会进行着这样几个操作:原创、转发、回复、阅读、关注、@等。其中,前四个是针对短博文,最后的关注和@则针
Connection reset 连接被重置的解决方法
百合不是茶
java 字符流 连接被重置
流是java的核心部分,,昨天在做android服务器连接服务器的时候出了问题,就将代码放到java中执行,结果还是一样连接被重置
被重置的代码如下;
客户端代码;
package 通信软件服务器;
import java.io.BufferedWriter;
import java.io.OutputStream;
import java.io.O
web.xml配置详解之filter
bijian1013
java web.xml filter
一.定义
<filter>
<filter-name>encodingfilter</filter-name>
<filter-class>com.my.app.EncodingFilter</filter-class>
<init-param>
<param-name>encoding<
Heritrix
Bill_chen
多线程 xml 算法 制造 配置管理
作为纯Java语言开发的、功能强大的网络爬虫Heritrix,其功能极其强大,且扩展性良好,深受热爱搜索技术的盆友们的喜爱,但它配置较为复杂,且源码不好理解,最近又使劲看了下,结合自己的学习和理解,跟大家分享Heritrix的点点滴滴。
Heritrix的下载(http://sourceforge.net/projects/archive-crawler/)安装、配置,就不罗嗦了,可以自己找找资
【Zookeeper】FAQ
bit1129
zookeeper
1.脱离IDE,运行简单的Java客户端程序
#ZkClient是简单的Zookeeper~$ java -cp "./:zookeeper-3.4.6.jar:./lib/*" ZKClient
1. Zookeeper是的Watcher回调是同步操作,需要添加异步处理的代码
2. 如果Zookeeper集群跨越多个机房,那么Leader/
The user specified as a definer ('aaa'@'localhost') does not exist
白糖_
localhost
今天遇到一个客户BUG,当前的jdbc连接用户是root,然后部分删除操作都会报下面这个错误:The user specified as a definer ('aaa'@'localhost') does not exist
最后找原因发现删除操作做了触发器,而触发器里面有这样一句
/*!50017 DEFINER = ''aaa@'localhost' */
原来最初
javascript中showModelDialog刷新父页面
bozch
JavaScript 刷新父页面 showModalDialog
在页面中使用showModalDialog打开模式子页面窗口的时候,如果想在子页面中操作父页面中的某个节点,可以通过如下的进行:
window.showModalDialog('url',self,‘status...’); // 首先中间参数使用self
在子页面使用w
编程之美-买书折扣
bylijinnan
编程之美
import java.util.Arrays;
public class BookDiscount {
/**编程之美 买书折扣
书上的贪心算法的分析很有意思,我看了半天看不懂,结果作者说,贪心算法在这个问题上是不适用的。。
下面用动态规划实现。
哈利波特这本书一共有五卷,每卷都是8欧元,如果读者一次购买不同的两卷可扣除5%的折扣,三卷10%,四卷20%,五卷
关于struts2.3.4项目跨站执行脚本以及远程执行漏洞修复概要
chenbowen00
struts WEB安全
因为近期负责的几个银行系统软件,需要交付客户,因此客户专门请了安全公司对系统进行了安全评测,结果发现了诸如跨站执行脚本,远程执行漏洞以及弱口令等问题。
下面记录下本次解决的过程以便后续
1、首先从最简单的开始处理,服务器的弱口令问题,首先根据安全工具提供的测试描述中发现应用服务器中存在一个匿名用户,默认是不需要密码的,经过分析发现服务器使用了FTP协议,
而使用ftp协议默认会产生一个匿名用
[电力与暖气]煤炭燃烧与电力加温
comsci
在宇宙中,用贝塔射线观测地球某个部分,看上去,好像一个个马蜂窝,又像珊瑚礁一样,原来是某个国家的采煤区.....
不过,这个采煤区的煤炭看来是要用完了.....那么依赖将起燃烧并取暖的城市,在极度严寒的季节中...该怎么办呢?
&nbs
oracle O7_DICTIONARY_ACCESSIBILITY参数
daizj
oracle
O7_DICTIONARY_ACCESSIBILITY参数控制对数据字典的访问.设置为true,如果用户被授予了如select any table等any table权限,用户即使不是dba或sysdba用户也可以访问数据字典.在9i及以上版本默认为false,8i及以前版本默认为true.如果设置为true就可能会带来安全上的一些问题.这也就为什么O7_DICTIONARY_ACCESSIBIL
比较全面的MySQL优化参考
dengkane
mysql
本文整理了一些MySQL的通用优化方法,做个简单的总结分享,旨在帮助那些没有专职MySQL DBA的企业做好基本的优化工作,至于具体的SQL优化,大部分通过加适当的索引即可达到效果,更复杂的就需要具体分析了,可以参考本站的一些优化案例或者联系我,下方有我的联系方式。这是上篇。
1、硬件层相关优化
1.1、CPU相关
在服务器的BIOS设置中,可
C语言homework2,有一个逆序打印数字的小算法
dcj3sjt126com
c
#h1#
0、完成课堂例子
1、将一个四位数逆序打印
1234 ==> 4321
实现方法一:
# include <stdio.h>
int main(void)
{
int i = 1234;
int one = i%10;
int two = i / 10 % 10;
int three = i / 100 % 10;
apacheBench对网站进行压力测试
dcj3sjt126com
apachebench
ab 的全称是 ApacheBench , 是 Apache 附带的一个小工具 , 专门用于 HTTP Server 的 benchmark testing , 可以同时模拟多个并发请求。前段时间看到公司的开发人员也在用它作一些测试,看起来也不错,很简单,也很容易使用,所以今天花一点时间看了一下。
通过下面的一个简单的例子和注释,相信大家可以更容易理解这个工具的使用。
2种办法让HashMap线程安全
flyfoxs
java jdk jni
多线程之--2种办法让HashMap线程安全
多线程之--synchronized 和reentrantlock的优缺点
多线程之--2种JAVA乐观锁的比较( NonfairSync VS. FairSync)
HashMap不是线程安全的,往往在写程序时需要通过一些方法来回避.其实JDK原生的提供了2种方法让HashMap支持线程安全.
Spring Security(04)——认证简介
234390216
Spring Security 认证 过程
认证简介
目录
1.1 认证过程
1.2 Web应用的认证过程
1.2.1 ExceptionTranslationFilter
1.2.2 在request之间共享SecurityContext
1
Java 位运算
Javahuhui
java 位运算
// 左移( << ) 低位补0
// 0000 0000 0000 0000 0000 0000 0000 0110 然后左移2位后,低位补0:
// 0000 0000 0000 0000 0000 0000 0001 1000
System.out.println(6 << 2);// 运行结果是24
// 右移( >> ) 高位补"
mysql免安装版配置
ldzyz007
mysql
1、my-small.ini是为了小型数据库而设计的。不应该把这个模型用于含有一些常用项目的数据库。
2、my-medium.ini是为中等规模的数据库而设计的。如果你正在企业中使用RHEL,可能会比这个操作系统的最小RAM需求(256MB)明显多得多的物理内存。由此可见,如果有那么多RAM内存可以使用,自然可以在同一台机器上运行其它服务。
3、my-large.ini是为专用于一个SQL数据
MFC和ado数据库使用时遇到的问题
你不认识的休道人
sql C++ mfc
===================================================================
第一个
===================================================================
try{
CString sql;
sql.Format("select * from p
表单重复提交Double Submits
rensanning
double
可能发生的场景:
*多次点击提交按钮
*刷新页面
*点击浏览器回退按钮
*直接访问收藏夹中的地址
*重复发送HTTP请求(Ajax)
(1)点击按钮后disable该按钮一会儿,这样能避免急躁的用户频繁点击按钮。
这种方法确实有些粗暴,友好一点的可以把按钮的文字变一下做个提示,比如Bootstrap的做法:
http://getbootstrap.co
Java String 十大常见问题
tomcat_oracle
java 正则表达式
1.字符串比较,使用“==”还是equals()? "=="判断两个引用的是不是同一个内存地址(同一个物理对象)。 equals()判断两个字符串的值是否相等。 除非你想判断两个string引用是否同一个对象,否则应该总是使用equals()方法。 如果你了解字符串的驻留(String Interning)则会更好地理解这个问题。
SpringMVC 登陆拦截器实现登陆控制
xp9802
springMVC
思路,先登陆后,将登陆信息存储在session中,然后通过拦截器,对系统中的页面和资源进行访问拦截,同时对于登陆本身相关的页面和资源不拦截。
实现方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23