卜风贤
卜风贤
性      别: 职      称: 教育,高等学校教师,教授
籍      贯: 陕西省 西安市 现 居 地: 甘肃省 平凉市
毕业院校: 西北农林科技大学 专      业: 管理学
查看更多个人信息
出生年月: 1966-03-29 工作单位: 陕西师范大学
邮       箱: bfengxian@nwsuaf.edu.cn 联系电话:
学       历: 博士

【人物简介】

  卜风贤,男,1966年3月生,甘肃省静宁县人,教授,博士生导师。1988年本科毕业于宁夏农学院,1997年硕士研究生毕业于西北农业大学,同年留校任教迄今。2001年获西北农林科技大学管理学博士学位。2002年1月至2003年1月在英国剑桥李约瑟研究所做Li Fellowship研究,2003年10月至2004年9月在以色列本·古里安大学做博士后研究,2005年11月至12月在以色列本·古里安大学做访问学者。现任中国灾害史学会常务理事、副秘书长,中国毒理学会毒物史研究会副理事长,中国农业历史学会理事,陕西省科技史学会常务理事,2007年9月入选教育部“新世纪优秀人才支持计划”。   主要致力于农业科技史、中国灾荒史的教学与科研工作,先后承担本科生中国农业史、自然灾害与社会救助等课程教学,为博、硕士研究生讲授中国农业科技史、中国历史农业地理、中国灾荒史等课程。目前已培养硕士研究生7名,在读硕士研究生9名,博士研究生4名。

【研究方向】

农业灾害史,农业科技史

【研究成果】

研究成果发表在《史学理论研究》、《中国农史》、《地理科学》、《中国史研究动态》等刊物上。其中关于历史灾害与粮食安全的研究引起较大反响,相关成果被《新华文摘》网络版全文转载,《科学时报》等多家媒体对主要观点予以引用,也获得陕西省高校人文社会科学优秀成果奖二等奖。近年来主要进行中西灾荒史比较研究和历史灾害地理的专项研究。

【科研项目】

  (1)《中国古代灾荒风险评价研究》,西北农林科技大学首批“青年学术骨干支持计划”项目,2005-2008   (2)《西北地区历史灾害与区域发展》国家社科基金,2006-2009   (3)《中华大典、农业典、农业灾害分典》主编,国家重点文化项目,2006.8-2009.12   (4)《中国古代救荒书研究》、教育部留学基金项目,2004-2006   (5)《西北地区灾荒史研究》,中国第38批博士后基金

【论文著作】

  主要发表论文   1、《中国农业灾害史料灾度等级量化方法研究》,《中国农史》,1996(4)   2、《农业减灾与农业可持续发展》,《光明日报》1998/2/20   3、《Agricultural Disaster Reduction and development of Chines Agricultural in 21th Century》,Natural Disaster Reduction in China 1998(3)   4、《简谈中国古代的抗灾救荒》,《光明日报》1999/4/22   5、《二十世纪中国农业科技史研综述》,《中国史研动态》2000(5)   6、《中国农业灾害史研综述》,《中国史研究动态》2001(2)   7、《周秦两汉时期农业灾害时空分布研究》,《地理科学》2002(4)著   8、《中国古代灾荒理念,史学理论研究》2006(3)   9、《前农业时代的季节性饥荒》,中国农史2005(4)   10、《传统农业早期的灾荒思想》,天津社会科学2006(1)   著作   1、《农业灾荒论》中国农业出版社,2006年   2、《周秦汉晋期农业灾害与农业减灾方略研究》中国社会科学出版社,2006

与TA有关的专家
姓名:
工作职务:
副教授
研究方向:
主要从事小麦遗传育种研究。
毕业学院:
西北农林科技大学
姓名:
工作职务:
FreeMarker template error (DEBUG mode; use RETHROW in production!): The following has evaluated to null or missing: ==> c.admheadship [in template "WEB-INF/t/cms/www/xatrm/techexpert/detail.html" at line 174, column 47] ---- Tip: It's the step after the last dot that caused this error, not those before it. ---- Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use [#if myOptionalVar??]when-present[#else]when-missing[/#if]. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${c.admheadship} [in template "WEB-INF/t/cms/www/xatrm/techexpert/detail.html" at line 174, column 45] ---- Java stack trace (for programmers): ---- freemarker.core.InvalidReferenceException: [... Exception message was already printed; see it above ...] at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:134) at freemarker.core.EvalUtil.coerceModelToTextualCommon(EvalUtil.java:451) at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:374) at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:96) at freemarker.core.DollarVariable.accept(DollarVariable.java:59) at freemarker.core.Environment.visit(Environment.java:362) at freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:263) at freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:200) at freemarker.core.Environment.visitIteratorBlock(Environment.java:595) at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:81) at freemarker.core.IteratorBlock.accept(IteratorBlock.java:67) at freemarker.core.Environment.visit(Environment.java:326) at freemarker.core.Environment.visit(Environment.java:332) at freemarker.core.Environment.process(Environment.java:305) at freemarker.template.Template.process(Template.java:384) at com.xatrm.common.web.springmvc.SimpleFreeMarkerView.renderMergedTemplateModel(SimpleFreeMarkerView.java:114) at org.springframework.web.servlet.view.AbstractTemplateView.renderMergedOutputModel(AbstractTemplateView.java:167) at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303) at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1257) at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1037) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:980) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) at javax.servlet.http.HttpServlet.service(HttpServlet.java:622) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at ci.filter.SqlInjectFilter.doFilter(SqlInjectFilter.java:157) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at ci.filter.XssFilter.doFilter(XssFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at ci.filter.SecurityFilter.doFilter(SecurityFilter.java:25) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at com.xatrm.common.web.XssFilter.doFilter(XssFilter.java:40) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:151) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at com.xatrm.common.web.ProcessTimeFilter.doFilter(ProcessTimeFilter.java:35) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:108) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:783) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:789) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745)