- 简化Spring
Anson__Hu
Spring专题springbeanwebworkappfusemanagerstruts
(1)--配置文件序人人都爱Spring加Hibernate。但SpringMVC+hibernate的Sample如Appfuse的代码却远算不得最简洁优美好读,如果在自己的项目中继续发挥我们最擅长的依样画葫芦大法,美好愿望未必会实现。所以,Pramatic精神不灭。这个系列就是探寻最适合自己的Spring+Hibernate模式。BTW.Rod在他的新书《ProfessionalJavaDev
- 在Ubuntu 11.04环境下开发SSH范例框架AppFuse 2.1 Java Web应用
20161102
AppFuseUbuntuubuntuappfusejava框架sshweb
刚刚把原先在Windows7下开发AppFuse2.1的应用,成功迁移到Ubuntu11.04下,使得在Ubuntu环境下,能够用Maven3.0.3和EclipseGalileo开发源代码,并把WAR包部署到Tomcat6上。Ubuntu是目前市场占有率超过50%的Linux桌面系统,完全免费,通过近一周的体验,其桌面使用体验的“炫”程度要强于已经使用半年的Windows7。Unbuntu最吸引
- spring 编程入门十大问题解答
yzhz
技术心得spring编程beanappfusehibernatedao
版权声明:如有转载请求,请注明出处:http://blog.csdn.net/yzhz1、如何学习Spring?你可以通过下列途径学习spring:(1)spring下载包中doc目录下的MVC-step-by-step和sample目录下的例子都是比较好的spring开发的例子。(2)AppFuse集成了目前最流行的几个开源轻量级框架或者工具Ant,XDoclet,Spring,Hibernat
- AppFuse 里面丑陋的 default.jsp
tmpfree
JSP
AppFuse里面丑陋的default.jsp一开始就放入一大堆普通用户无法明白的CSS和JS,什么是什么呢,初学者要在这个基础上修改也不是那么容易的。"/>"/>"/>">">">">"/>">">
- Idea中maven提供的41个骨架原型
pigstomachs
1:appfuse-basic-jsf(创建一个基于Hibernate,Spring和JSF的Web应用程序的原型)2:appfuse-basic-spring(创建一个基于Hibernate,Spring和SpringMVC的Web应用程序的原型)3:appfuse-basic-struts(创建一个基于Hibernate,Spring和Struts2的Web应用程序的原型)4:appfuse-
- maven远程库列表
雪里风火
Appfuse开源-开发包
远程库地址镜像centralhttp://repo1.maven.org/maven2/http://uk.maven.org/maven2apachehttps://repository.apache.org/content/groups/public/appfusehttp://oss.sonatype.org/content/repositories/appfuse-snapshots/Co
- 使用AppFuse进行开发的总结(转)
sadman0518
AppfuseHibernateStrutsSpringAnt
使用AppFuse进行开发的总结AppFuse是一个集成了当前最流行的Web应用框架的一个更高层次的Web开发框架,也可以说是一个Web开发基础平台,它与它所集成的各种框架相比,它提供了一部分所有Web系统开发过程中都需要开发的一些功能,如登陆、用户密码加密,用户管理、根据不同的用户可以展现不同的菜单,可以自动生成40%-60%左右的代码,自带了默认的一些在CSS中设定的样式,使用这些样式能很快的
- Appfuse 2.0简单开始和源码的下载
雪墙
WEB开发相关技术
下载appfuse2.0源码有两种方法一种是找到他的cvs下载。还有一种就是用maven下载,就是appfuse2.0官网上介绍的下载方法。好了,现在我们开始下载appfuse2.0的源码,用第二钟方法:1、下载安装JDK5或以上版本。2、下载安装Mysql5.x。3、建立一个本地的stmp服务器,或者修改mail.properties(在src/main/resources目录下),使之使用另外
- MySQL常用知识
dudutu
数据库
命令行装载mysql-hsite-uuid-p/usr/backups/testdbmysqldump--help检查表:检查表时确定mysql服务器没有运行myisamchk和mysqlcheck只用于.MYI文件,isamchk用于.ISM文件mysqlcheckappfusepersonmysqlcheck--extendappfuseperson修复表mysqlcheck--repaira
- 如何获得泛型的Class对象
wuha0
j2ee
1)rapid-framework的解决方案抽象类BaseHibernateDao中提供了抽象方法publicabstractClassgetEntityClass();由Dao子类实现该方法2)appfuse的解决方案在GenericDaoHibernate中提供了构造方法和setterpublicGenericDaoHibernate(finalClasspersistentClass),不允
- modular appfuse2搭建的详细过程
wdscgq
按照appfuse官方网站给出的步骤,搭建baseappfuse2不会出现问题。但如果定制多模块即modularappfuse2却并不顺利,其中会不断产生一些小的问题,需要自己花一些精力去研究。最近搭建过程中,发现问题在网上找,关于appfuse的资料倒是不少但是基于modular类型的就少多了,经过一个星期的不断摸索,总算搭建成功了。其实碰到的这几个问题当你解决了回头来看的时候,才发现特别低级吼
- JPA的OneToMany和ManyToOne
SavageGarden_Love
JavaJPAJavaHibernateMySQL编程
在appfuse2下写个测试,用到了一对多,看看了资料,开整,commoneclipse插件已经装好,就等把pojo写好以为就OK了,第一次运行mvncompilehibernate3:hbm2ddl,报个什么net错误,一想,哦,mysql用的绿色的,每次还要手动启动服务,然后,还是报错,这次是报一个pojo里的一个属性是未知类型,一想,哦,hibernate.cfg.xml里加载pojo的顺序
- 第三只眼看SpringSide-一个极富魅力的偶像团队 (转)
bell2008
严肃一点说,在当今JavaEE领域,如果你不知道SpringSide,如果你不是一个排斥新技术的极端顽固分子,应该就是一个已经不求上进的技术混混。开玩笑来说,如果你知道SpringSide而不知有AppFuse,那么我可以肯定你的JavaEE一定还是幼儿班的水平,要走的路还会非常长。借用2007年看几部电影的感想:虽然“兄弟不可靠、组织不可靠、男人女人不可靠”,但最后“帮你的还是你的兄弟,给你正名
- appfuse学习笔记(四)struts2的表单校验
SavageGarden_Love
Appfuse
(1)添加校验项修改文件src/main/resources/com/mycompany/app/model/Person-validation.xml重新编译,重新访问添加人员的页面,姓、名设置为空直接保存,报错校验起了作用(2)struts.xml文件的配置说明......。。。。。。(3)校验流程分析struts.xml中定义默认包时而在struts-default.xml中,配置了如下的拦
- full-stack有appfuse,springside,openmasks,grails.......等
QQ153984069
架构
江南白衣在2005年9月的时候,就在他的博客上提出:每个团队都应该有一个Appfuse式的项目,用来演示团队目前的体系框架和设计模式。这种项目的好处有一打:比如为所有项目提供共同的LibraryStack,提供最可靠的代码蓝本,保证大家的模式和代码风格一致,加快知识在团队的传播,方便新人的融入,还有为试验代码提供一个稳定简洁的环境。而且,构建或者使用这样的项目要遵守几条铁的纪律:一是强制更新,所有
- Maven实现Web应用集成测试自动化 -- 测试自动化(WebTest Maven Plugin)
开心的D哥
JavaJavaWebmaven
最近在appfuse看到使用webtest-maven-plugin实现Web应用的集成测试,研究了下,感觉非常不错,对于Web应用自动构建非常有帮助,在性能测试之前可以保证Web应用的基本功能工作正常,分享给大家。WetTest工作原理它是基于Ant来运行的Web页面的测试工具。通过运行不同的target,测试页面上面提供的所有功能。它的工作原理是运用比较出名的HtmlUnit来实现对一个页面功
- IDEA 默认的maven骨架
维1
IDEAMaven
1:appfuse-basic-jsf(创建一个基于Hibernate,Spring和JSF的Web应用程序的原型)2:appfuse-basic-spring(创建一个基于Hibernate,Spring和SpringMVC的Web应用程序的原型)3:appfuse-basic-struts(创建一个基于Hibernate,Spring和Struts2的Web应用程序的原型)4:appfuse-
- 使用appfuse应用的入门的例子1
mowengaoboa
appfuse
本文以一个J2EE开发者的角度,借助一个简单的应用示例,在融合了个人经验的基础上介绍了如何用AppFuse一步步地构建J2EE项目。通过阅读本文,读者不仅能够学会用AppFuse进行开发,而且能够充分体会到AppFuse提供的“快速开发”的优越性。关于AppFuse的特性、架构以及为什么要使用AppFuse,AppFuse的创始人MattRaible在《使用AppFuse的七个理由》一文中已经做了
- maven项目中骨架
忆时光_f94e
maven提供的41个骨架原型分别是:1:appfuse-basic-jsf(创建一个基于Hibernate,Spring和JSF的Web应用程序的原型)2:appfuse-basic-spring(创建一个基于Hibernate,Spring和SpringMVC的Web应用程序的原型)3:appfuse-basic-struts(创建一个基于Hibernate,Spring和Struts2的We
- Tomcat下log4j设置文件路径和temp目录
weixin_34326558
在Web应用中的如何设置日志文件的路径呢?最笨的方法是写绝对路径,但很不方便。而Spring的做法是使用一个ServletListener,在WebContainer启动时把ROOT的绝对路径写到系统变量里,这样log4j的配置文件里就可以用$大括号myAppfuse.root大括号来表示刚刚设进去的系统变量:log4j.appender.logfile.File=$大括号myAppfuse.ro
- Ant中复制文件(copy)和编码的一些用法
zhouyong0
编码问题解决出现“警告:编码GBK的不可映射字符”的办法在用Ant部署时,出现:“警告:编码GBK的不可映射字符”,网上找了一下,主要是编码兼容性的问题,需要个javac指定编码,于是在build.xml中加入以下说明即可:From:http://hi.baidu.com/buliu/blog/item/ca667d60973332d88db10d9e.html复制文件的一些用法Appfuse的第
- 自动编译部署工具:ant
Jovic-cai
开发工具及环境搭建
Ant真是太方便了,以前都没注意到它。功能很强大,能创建数据库,配置服务器,部署发布应用……只需要写好build.xml文件,剩下的就交给ant来“安装”你的WEB应用了。Appfuse的第一个ant命令是antnew,其任务是建立一个新命名的project,少不了会复制很多文件。build.xml中也有很多copy操作,为了搞清楚antnew到底干了些什么事,还是先把copy操作了解一下。看了会
- sitemesh_文档集锦_1
船长
Appfuse
使用sitemesh使用sitemesh建立复合视图-1.hello.1使用sitemesh建立复合视图-2.装饰器decorator4sitemesh.xml可以设置2种信息:5使用sitemesh建立复合视图-3.其他讨论...9记事贴:我被AppFuse的SiteMesh折磨了2天!...12sitemesh简化布局...14用SiteMesh优雅地分离页面的内容与框架...18AppFus
- Spring里面如何配置数据库驱动?
null_14ee
Spring里面如何配置数据库驱动?使用”org.springframework.jdbc.datasource.DriverManagerDataSource”数据源来配置数据库驱动。示例如下:org.hsqldb.jdbcDriverjdbc:hsqldb:db/appfusesa
- 用好SSH (Struts2+Spring+Hibernate) - AppFuse 2.1 的安装运行步骤
20161102
AppFuse
AppFuse2.1刚刚于2011年4月4日发布。2.1比2.1.0.M2最大的好处是支持jetty:run快速部署,便于你在开发时进行测试(详见下文)。另外,也修正了许多bugs.对于想要用好SSH(Struts2,Spring,Hibernate)的朋友来说,AppFuse是不可多得的宝贵范例。我最近正在研究SSH,并且想用学到的SSH技术,开发一个论坛项目。我发现,学好SSH和用好SSH真是
- Appfuse乱码问题
零壹零
appfuseant任务
中文乱码的原因有很多种,特罗列如下,看了appfuse对中文的支持有点问题.1.build.xml里面display资源没有国际化处理,也就是没有进行编码,在build.xml进行修改使之进行国际化.修改方案:ApplicationResources_zh*.properties"encoding="UTF-8"/>改为:*_zh*.properties"encoding="UTF-8"/>2.T
- Tomcat下log4j设置文件路径和temp目录
秋名山车神_f776
在Web应用中的如何设置日志文件的路径呢?最笨的方法是写绝对路径,但很不方便。而Spring的做法是使用一个ServletListener,在WebContainer启动时把ROOT的绝对路径写到系统变量里,这样log4j的配置文件里就可以用$大括号myAppfuse.root大括号来表示刚刚设进去的系统变量:log4j.appender.logfile.File=$大括号myAppfuse.ro
- Intellij Idea中的maven项目41种原型骨架
ITdevil
Essay
原文链接:http://www.cnblogs.com/iusmile/archive/2012/11/14/2770118.htmlMaven的41种骨架:...>mvnarchetype:generate1:internal->appfuse-basic-jsf(创建一个基于Hibernate,Spring和JSF的Web应用程序的原型)2:internal->appfuse-basic-sp
- idea中的maven项目原型骨架(资源收藏)
我们见过吗?
资源收藏
1:internal->appfuse-basic-jsf(创建一个基于Hibernate,Spring和JSF的Web应用程序的原型)2:internal->appfuse-basic-spring(创建一个基于Hibernate,Spring和SpringMVC的Web应用程序的原型)3:internal->appfuse-basic-struts(创建一个基于Hibernate,Spring
- Maven骨架
JinKe_
Java
Maven的41种骨架:…>mvnarchetype:generate1:internal->appfuse-basic-jsf(创建一个基于Hibernate,Spring和JSF的Web应用程序的原型)2:internal->appfuse-basic-spring(创建一个基于Hibernate,Spring和SpringMVC的Web应用程序的原型)3:internal->appfuse-
- HQL之投影查询
归来朝歌
HQLHibernate查询语句投影查询
在HQL查询中,常常面临这样一个场景,对于多表查询,是要将一个表的对象查出来还是要只需要每个表中的几个字段,最后放在一起显示?
针对上面的场景,如果需要将一个对象查出来:
HQL语句写“from 对象”即可
Session session = HibernateUtil.openSession();
- Spring整合redis
bylijinnan
redis
pom.xml
<dependencies>
<!-- Spring Data - Redis Library -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redi
- org.hibernate.NonUniqueResultException: query did not return a unique result: 2
0624chenhong
Hibernate
参考:http://blog.csdn.net/qingfeilee/article/details/7052736
org.hibernate.NonUniqueResultException: query did not return a unique result: 2
在项目中出现了org.hiber
- android动画效果
不懂事的小屁孩
android动画
前几天弄alertdialog和popupwindow的时候,用到了android的动画效果,今天专门研究了一下关于android的动画效果,列出来,方便以后使用。
Android 平台提供了两类动画。 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转、平移、放缩和渐变)。
第二类就是 Frame动画,即顺序的播放事先做好的图像,与gif图片原理类似。
- js delete 删除机理以及它的内存泄露问题的解决方案
换个号韩国红果果
JavaScript
delete删除属性时只是解除了属性与对象的绑定,故当属性值为一个对象时,删除时会造成内存泄露 (其实还未删除)
举例:
var person={name:{firstname:'bob'}}
var p=person.name
delete person.name
p.firstname -->'bob'
// 依然可以访问p.firstname,存在内存泄露
- Oracle将零干预分析加入网络即服务计划
蓝儿唯美
oracle
由Oracle通信技术部门主导的演示项目并没有在本月较早前法国南斯举行的行业集团TM论坛大会中获得嘉奖。但是,Oracle通信官员解雇致力于打造一个支持零干预分配和编制功能的网络即服务(NaaS)平台,帮助企业以更灵活和更适合云的方式实现通信服务提供商(CSP)的连接产品。这个Oracle主导的项目属于TM Forum Live!活动上展示的Catalyst计划的19个项目之一。Catalyst计
- spring学习——springmvc(二)
a-john
springMVC
Spring MVC提供了非常方便的文件上传功能。
1,配置Spring支持文件上传:
DispatcherServlet本身并不知道如何处理multipart的表单数据,需要一个multipart解析器把POST请求的multipart数据中抽取出来,这样DispatcherServlet就能将其传递给我们的控制器了。为了在Spring中注册multipart解析器,需要声明一个实现了Mul
- POJ-2828-Buy Tickets
aijuans
ACM_POJ
POJ-2828-Buy Tickets
http://poj.org/problem?id=2828
线段树,逆序插入
#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>using namespace std;#define N 200010struct
- Java Ant build.xml详解
asia007
build.xml
1,什么是antant是构建工具2,什么是构建概念到处可查到,形象来说,你要把代码从某个地方拿来,编译,再拷贝到某个地方去等等操作,当然不仅与此,但是主要用来干这个3,ant的好处跨平台 --因为ant是使用java实现的,所以它跨平台使用简单--与ant的兄弟make比起来语法清晰--同样是和make相比功能强大--ant能做的事情很多,可能你用了很久,你仍然不知道它能有
- android按钮监听器的四种技术
百合不是茶
androidxml配置监听器实现接口
android开发中经常会用到各种各样的监听器,android监听器的写法与java又有不同的地方;
1,activity中使用内部类实现接口 ,创建内部类实例 使用add方法 与java类似
创建监听器的实例
myLis lis = new myLis();
使用add方法给按钮添加监听器
- 软件架构师不等同于资深程序员
bijian1013
程序员架构师架构设计
本文的作者Armel Nene是ETAPIX Global公司的首席架构师,他居住在伦敦,他参与过的开源项目包括 Apache Lucene,,Apache Nutch, Liferay 和 Pentaho等。
如今很多的公司
- TeamForge Wiki Syntax & CollabNet User Information Center
sunjing
TeamForgeHow doAttachementAnchorWiki Syntax
the CollabNet user information center http://help.collab.net/
How do I create a new Wiki page?
A CollabNet TeamForge project can have any number of Wiki pages. All Wiki pages are linked, and
- 【Redis四】Redis数据类型
bit1129
redis
概述
Redis是一个高性能的数据结构服务器,称之为数据结构服务器的原因是,它提供了丰富的数据类型以满足不同的应用场景,本文对Redis的数据类型以及对这些类型可能的操作进行总结。
Redis常用的数据类型包括string、set、list、hash以及sorted set.Redis本身是K/V系统,这里的数据类型指的是value的类型,而不是key的类型,key的类型只有一种即string
- SSH2整合-附源码
白糖_
eclipsespringtomcatHibernateGoogle
今天用eclipse终于整合出了struts2+hibernate+spring框架。
我创建的是tomcat项目,需要有tomcat插件。导入项目以后,鼠标右键选择属性,然后再找到“tomcat”项,勾选一下“Is a tomcat project”即可。具体方法见源码里的jsp图片,sql也在源码里。
补充1:项目中部分jar包不是最新版的,可能导
- [转]开源项目代码的学习方法
braveCS
学习方法
转自:
http://blog.sina.com.cn/s/blog_693458530100lk5m.html
http://www.cnblogs.com/west-link/archive/2011/06/07/2074466.html
1)阅读features。以此来搞清楚该项目有哪些特性2)思考。想想如果自己来做有这些features的项目该如何构架3)下载并安装d
- 编程之美-子数组的最大和(二维)
bylijinnan
编程之美
package beautyOfCoding;
import java.util.Arrays;
import java.util.Random;
public class MaxSubArraySum2 {
/**
* 编程之美 子数组之和的最大值(二维)
*/
private static final int ROW = 5;
private stat
- 读书笔记-3
chengxuyuancsdn
jquery笔记resultMap配置ibatis一对多配置
1、resultMap配置
2、ibatis一对多配置
3、jquery笔记
1、resultMap配置
当<select resultMap="topic_data">
<resultMap id="topic_data">必须一一对应。
(1)<resultMap class="tblTopic&q
- [物理与天文]物理学新进展
comsci
如果我们必须获得某种地球上没有的矿石,才能够进行某些能量输出装置的设计和建造,而要获得这种矿石,又必须首先进行深空探测,而要进行深空探测,又必须获得这种能量输出装置,这个矛盾的循环,会导致地球联盟在与宇宙文明建立关系的时候,陷入困境
怎么办呢?
 
- Oracle 11g新特性:Automatic Diagnostic Repository
daizj
oracleADR
Oracle Database 11g的FDI(Fault Diagnosability Infrastructure)是自动化诊断方面的又一增强。
FDI的一个关键组件是自动诊断库(Automatic Diagnostic Repository-ADR)。
在oracle 11g中,alert文件的信息是以xml的文件格式存在的,另外提供了普通文本格式的alert文件。
这两份log文
- 简单排序:选择排序
dieslrae
选择排序
public void selectSort(int[] array){
int select;
for(int i=0;i<array.length;i++){
select = i;
for(int k=i+1;k<array.leng
- C语言学习六指针的经典程序,互换两个数字
dcj3sjt126com
c
示例程序,swap_1和swap_2都是错误的,推理从1开始推到2,2没完成,推到3就完成了
# include <stdio.h>
void swap_1(int, int);
void swap_2(int *, int *);
void swap_3(int *, int *);
int main(void)
{
int a = 3;
int b =
- php 5.4中php-fpm 的重启、终止操作命令
dcj3sjt126com
PHP
php 5.4中php-fpm 的重启、终止操作命令:
查看php运行目录命令:which php/usr/bin/php
查看php-fpm进程数:ps aux | grep -c php-fpm
查看运行内存/usr/bin/php -i|grep mem
重启php-fpm/etc/init.d/php-fpm restart
在phpinfo()输出内容可以看到php
- 线程同步工具类
shuizhaosi888
同步工具类
同步工具类包括信号量(Semaphore)、栅栏(barrier)、闭锁(CountDownLatch)
闭锁(CountDownLatch)
public class RunMain {
public long timeTasks(int nThreads, final Runnable task) throws InterruptedException {
fin
- bleeding edge是什么意思
haojinghua
DI
不止一次,看到很多讲技术的文章里面出现过这个词语。今天终于弄懂了——通过朋友给的浏览软件,上了wiki。
我再一次感到,没有辞典能像WiKi一样,给出这样体贴人心、一清二楚的解释了。为了表达我对WiKi的喜爱,只好在此一一中英对照,给大家上次课。
In computer science, bleeding edge is a term that
- c中实现utf8和gbk的互转
jimmee
ciconvutf8&gbk编码
#include <iconv.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <string.h>
#include <sys/stat.h>
int code_c
- 大型分布式网站架构设计与实践
lilin530
应用服务器搜索引擎
1.大型网站软件系统的特点?
a.高并发,大流量。
b.高可用。
c.海量数据。
d.用户分布广泛,网络情况复杂。
e.安全环境恶劣。
f.需求快速变更,发布频繁。
g.渐进式发展。
2.大型网站架构演化发展历程?
a.初始阶段的网站架构。
应用程序,数据库,文件等所有的资源都在一台服务器上。
b.应用服务器和数据服务器分离。
c.使用缓存改善网站性能。
d.使用应用
- 在代码中获取Android theme中的attr属性值
OliveExcel
androidtheme
Android的Theme是由各种attr组合而成, 每个attr对应了这个属性的一个引用, 这个引用又可以是各种东西.
在某些情况下, 我们需要获取非自定义的主题下某个属性的内容 (比如拿到系统默认的配色colorAccent), 操作方式举例一则:
int defaultColor = 0xFF000000;
int[] attrsArray = { andorid.r.
- 基于Zookeeper的分布式共享锁
roadrunners
zookeeper分布式共享锁
首先,说说我们的场景,订单服务是做成集群的,当两个以上结点同时收到一个相同订单的创建指令,这时并发就产生了,系统就会重复创建订单。等等......场景。这时,分布式共享锁就闪亮登场了。
共享锁在同一个进程中是很容易实现的,但在跨进程或者在不同Server之间就不好实现了。Zookeeper就很容易实现。具体的实现原理官网和其它网站也有翻译,这里就不在赘述了。
官
- 两个容易被忽略的MySQL知识
tomcat_oracle
mysql
1、varchar(5)可以存储多少个汉字,多少个字母数字? 相信有好多人应该跟我一样,对这个已经很熟悉了,根据经验我们能很快的做出决定,比如说用varchar(200)去存储url等等,但是,即使你用了很多次也很熟悉了,也有可能对上面的问题做出错误的回答。 这个问题我查了好多资料,有的人说是可以存储5个字符,2.5个汉字(每个汉字占用两个字节的话),有的人说这个要区分版本,5.0
- zoj 3827 Information Entropy(水题)
阿尔萨斯
format
题目链接:zoj 3827 Information Entropy
题目大意:三种底,计算和。
解题思路:调用库函数就可以直接算了,不过要注意Pi = 0的时候,不过它题目里居然也讲了。。。limp→0+plogb(p)=0,因为p是logp的高阶。
#include <cstdio>
#include <cstring>
#include <cmath&