小例子 使用反射机制创建dao的factory

public class Factory {
 private static Properties props =
  new Properties();
 static{
  InputStream ips =
   Factory.class.getClassLoader()
   .getResourceAsStream(
     "util/dao.properties");
  try {
   props.load(ips);
  } catch (IOException e) {
   e.printStackTrace();
  }
 }
 public static Object getInstance(String type){
  Object obj = null;
  //依据接口名称(type)找到类名
  String className = props.getProperty(type);
    try {
   Class c = Class.forName(className);
   //依据方法区中的class对象,创建
   //一个实例。
   obj = c.newInstance();
  } catch (Exception e) {
   e.printStackTrace();
  }
  return obj;
 }
}

 

在web中调用到就可以比较方便,例如:

public class ActionServlet extends HttpServlet {

 public void service(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  request.setCharacterEncoding("utf-8");
  String uri = request.getRequestURI();
  String action = uri.substring(uri.lastIndexOf("/"),
    uri.lastIndexOf("."));
  if(action.equals("/login")){
   String username = request.getParameter(
     "username");
   String pwd = request.getParameter("pwd");
   UserDAO dao =
    (UserDAO)Factory.getInstance("UserDAO");
   try {
    User user = dao.findByUsername(
      username);
    if(user != null && user.getPwd().equals(pwd)){
     //登录成功,跳转到主功能页面
     HttpSession session =
      request.getSession();
     session.setAttribute("user", user);
     response.sendRedirect("main.jsp");
    }else{
     //登录失败,提示用户输入正确的用户名和密码
     request.setAttribute("login_error",
       "用户名或密码错误");
     request.getRequestDispatcher("login.jsp")
     .forward(request, response);
    }
   } catch (Exception e) {
    e.printStackTrace();
    throw new ServletException(e);
   }
  }
 
 }

}

转载于:https://www.cnblogs.com/mxyhws/p/3716314.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值