CC果园

桃子

ServletProcessor,a demo of URLClassLoader usage

 1public class ServletProcessor {
 2
 3  public void process(HttpRequest request, HttpResponse response) {
 4
 5    String uri = request.getRequestURI();
 6    String servletName = uri.substring(uri.lastIndexOf("/"+ 1);
 7    URLClassLoader loader = null;
 8    try {
 9      // create a URLClassLoader
10      URL[] urls = new URL[1];
11      URLStreamHandler streamHandler = null;
12      File classPath = new File(Constants.WEB_ROOT);
13      String repository = (new URL("file"null, classPath.getCanonicalPath() + File.separator)).toString() ;
14      urls[0= new URL(null, repository, streamHandler);
15      loader = new URLClassLoader(urls);
16    }

17    catch (IOException e) {
18      System.out.println(e.toString() );
19    }

20    Class myClass = null;
21    try {
22      myClass = loader.loadClass(servletName);
23    }

24    catch (ClassNotFoundException e) {
25      System.out.println(e.toString());
26    }

27
28    Servlet servlet = null;
29
30    try {
31      servlet = (Servlet) myClass.newInstance();
32      HttpRequestFacade requestFacade = new HttpRequestFacade(request);
33      HttpResponseFacade responseFacade = new HttpResponseFacade(response);
34      servlet.service(requestFacade, responseFacade);
35      ((HttpResponse) response).finishResponse();
36    }

37    catch (Exception e) {
38      System.out.println(e.toString());
39    }

40    catch (Throwable e) {
41      System.out.println(e.toString());
42    }

43  }

44}

posted on 2009-08-16 15:25 Anakin 阅读(163) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: