背景:

这几天,由于项目集成的需要,我要在doFilter里调用dao层里的某些方法,可是总之报空指针,只要调用那个dao方法,就报错误。很是纳闷,网上查找了各种原因,终于让我给突破了,看来还是Java基础掌握的不够呀!

代码:

在servlet中加入私有变量UserDao,然后在servlet的init()方法中初始化一下即可用。

private UserDao userDao;

public void init(FilterConfig filterConfig) throws ServletException {

ServletContext sc = filterConfig.getServletContext();

XmlWebApplicationContext cxt = (XmlWebApplicationContext)WebApplicationContextUtils.getWebApplicationContext(sc);

if(cxt != null && cxt.getBean("userDao") != null && userDao == null)

userDao = (UserDao) cxt.getBean("userDao");

}

public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {

...............

//下面只展示调用的方法

DashboardUser dashboardUser = userDao.getOauthUserByLoginName(oauthUserCode);

String userId = dashboardUser.getUserId();

String username = dashboardUser.getUserName();

String loginname = dashboardUser.getLoginName();

String password = dashboardUser.getUserPassword();

boolean enabled = true;

User user = new User(loginname, password, enabled, true, true, true, AuthorityUtils.NO_AUTHORITIES);

user.setUserId(userId);

user.setName(username);

SecurityContext context = SecurityContextHolder.getContext();

context.setAuthentication(new ShareAuthenticationToken(user));

hsr.getSession().setAttribute("SPRING_SECURITY_CONTEXT", context);

..............

}

总结一下:

在servlet里面想调用接口实现类,结果一直报空指针异常。不能new 接口实现类

我们用spring的依赖注入可以将dao注入到action中,然后我们就可以直接调用了dao中的方法了,可是servlet不是由spring容器管理,所以在servlet中不能注入dao类,也就不能用dao中的方法。

如果这篇文章对您有所帮助,请随便打赏一下作为鼓励,我会再接再厉的!!!

java调用dao_Servlet里面一调用Dao里的某个方法相关推荐

  1. java接口 调用哪个_Java通过接口调用方法的时候,怎么知道调用的是哪个实现类里的方法?...

    一个抽象接口,有很多实现类,通过接口调用某个方法的时候,怎么知道调用的是哪个实现类里的方法? 谢谢. 2014-07-02 更新 前三个回答是 可以 ,不过依然没有找到我想要的答案.比如在 Eclip ...

  2. java source folder作用_java项目把源码放到folder里,不是source folder,这个java代码还能被调用吗?...

    看到这个问题,真心觉得初学入门就用IDE真心不是一个好方法.IDE屏蔽了太多基础知识,比如Java是需要编译的,运行的是编译后的class文件.编译命令有编译参数,执行命令有执行命令的参数.还有环境变 ...

  3. java调用matlab 数组_JAVA调用matlab程序 输入输出数据转换

    JAVA调用matlab程序 输入输出数据转换 JAVA 程序调用 matlab函数(matlab导出jar包里的函数).JAVA解析matlab返回数据时,机器需要先安装matlab运行时环境 并 ...

  4. JAVA与.NET的相互调用——通过Web服务实现相互调用

    JAVA与.NET是现今世界竞争激烈的两大开发媒体,两者语言有很多相似的地方.而在很多大型的开发项目里面,往往需要使用两种语言进行集成开发.而很多的开发人员都会偏向于其中一种语言,在使用集成开发的时候 ...

  5. jni调用java类_JNI之C++调用Java类 —— java.lang.String

    JNI之C++调用Java类 -- java.lang.String 为什么要用C++调用Java类?很难回答,写着文章只是觉得JNI很有意思.于是开始编写一段使用VC++在Windows系统里调用j ...

  6. .Net 与 Java 的服务接口相互调用

    本文介绍.Net 与 Java 相互调用的例子.下面的介绍主要包括三方面:一是通过常用Web服务进行相互调用,二是使用TCP/IP套接字进行相互调用,三是使用Remote实现远程对象相互调用. 首先说 ...

  7. java lambda 反射_反射调用与Lambda表达式调用

    想调用一个方法很容易,直接代码调用就行,这人人都会.其次呢,还可以使用反射.不过通过反射调用的性能会远远低于直接调用--至少从绝对时间上来看的确是这样.虽然这是个众所周知的现象,我们还是来写个程序来验 ...

  8. java 多线程 数据重复,java 多线程 出现数据重复调用有关问题

    java 多线程 出现数据重复调用问题 线程操作过程描述: 1.线程查询数据库表(table1)数据,并遍历修改记录状态(防止出现数据重复调用).(此操作加入了同步锁) 2.调用接口,获取返回的状态. ...

  9. #Livy配置Kerberos,#调用Hadoop组件,#Java 实现Livy大数据调用,#java拉取hive数据同步到本地

    项目场景: 78做java后端的, 让联调大数据, 78做java的都没看过大数据让去做, 又不是没做大数据的人了,而且 nm让做不懂得涨点工资, 发个福利吗? 自己写一个Java程序, 去调用别人L ...

  10. java如何在一个Action中调用另外一个Action

    java如何在一个Action中调用另外一个Action /*** 通过远程调用其他系统里的URL获取数据的方法** @param path 需要调用远程的URL地址* @return 返回的是调用U ...

最新文章

  1. Uva 11997 多路归并
  2. PAT甲级题目翻译+答案 AcWing(高精度)
  3. hadoop删除节点
  4. 50个直击灵魂的问题_直击灵魂的问题:“妈妈,我还能要个哥哥不!”
  5. 图像检索新方向,阿里提出区域检索算法|CVPR 2020
  6. Search in Rotated Sorted Array
  7. Rpc框架dubbo-client(v2.6.3) 源码阅读(二)
  8. Scrapy中的Spider
  9. sql 截取字符串:
  10. 计算机网络是由网络硬件网络软件,超星尔雅FPGA应用开发课程设计期末答案
  11. Pthread多线程
  12. 信息系统项目管理师(2022年) —— 第 7 章 项目成本管理
  13. C - Copy (hdu)
  14. 20年广西赛题技能要求(服务器)
  15. 交互设计师成长指引-从平凡到卓越
  16. android 高德地图 lbstraceclient,安卓高德地图定位篇-(1)
  17. 深圳计算机发展好的地方,深圳和广州的哪个发达数据比较广州的繁荣还是深圳的繁荣?...
  18. K-Means聚类实验报告实例
  19. 微信朋友圈广告,杀鸡取卵?
  20. 反三角函数定义域的确定

热门文章

  1. 怎么卸载quartus_分享一个Quartus工程清理方法
  2. python计算log2×_带有Python示例的math.log2()方法
  3. 如何将学堂在线(安卓)APP视频保存到本地并重命名
  4. Element UI实现全选和取消功能
  5. 用windows电脑制作macos系统安装U盘
  6. EEPROM与FLASH闪存到底有什么区别?
  7. 我的2016——我和嵌入式的那些事
  8. C++实现二阶行列式的计算
  9. matlab空间光调制器,空间光调制器原理与应用
  10. Windows下GetLastError()返回值介绍