<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    HelloWorld 善戰者,求之于勢,不責于人;故能擇人而任勢。

    知止而后有定,定而后能靜,靜而后能安,安而后能慮,慮而后能得。物有本末,事有終始。知所先后,則近道矣。

      BlogJava :: 首頁 ::  :: 聯系 ::  :: 管理 ::
      167 隨筆 :: 1 文章 :: 40 評論 :: 0 Trackbacks
     

    代碼下載 http://m.tkk7.com/Files/zhaochengming/tomcat.rar

    1.       tomcatmanager添加一個Filter

    manager路徑為tomcat/server/webapps/manager

    package com;

    import java.io.IOException;

    import java.io.ObjectInputStream;

    import java.io.ObjectOutputStream;

    import java.net.URL;

    import java.net.URLConnection;

    import java.util.ArrayList;

    import java.util.List;

    import javax.servlet.Filter;

    import javax.servlet.FilterChain;

    import javax.servlet.FilterConfig;

    import javax.servlet.ServletException;

    import javax.servlet.ServletRequest;

    import javax.servlet.ServletResponse;

    public class SecuritFilter implements Filter{

           private FilterConfig config = null;

           public void destroy() {

                  this.config = null;           

           }

           public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException {

                  try {

                         //獲得驗證信息

                         Object obj = doBackCheck(arg0,arg1);

                         if (obj.equals(true))

                                arg2.doFilter(arg0, arg1);

                         else

                                System.out.println(obj);

                  } catch (Exception e) {

                         e.printStackTrace();

                  }

           }

           public void init(FilterConfig arg0) throws ServletException {

                  this.config = arg0;          

           }

           private Object doBackCheck( ServletRequest arg0, ServletResponse arg1 ) throws Exception {

                  //獲得傳過來的key

                  String key = arg0.getParameter("key");

                  //回調的路徑

                  String backURL = arg0.getParameter("backURL");

                  URL url = new URL(backURL);

                  URLConnection con = url.openConnection();

                  con.setUseCaches(true);

                  con.setDoOutput(true);

                  con.setDoInput(true);

                  con.setRequestProperty("Content-type", "application/octest-stream");

                  con.setRequestProperty("Content-length", "" + -1);

                  ObjectOutputStream dataout = new ObjectOutputStream(con.getOutputStream());

                  List<Object> list = new ArrayList<Object>();

                  list.add("checkSecurityNo");

                  list.add(key);

                  dataout.writeObject(list);

                  dataout.flush();

                  dataout.close();

                  ObjectInputStream in = new ObjectInputStream(con.getInputStream());

                  Object obj = in.readObject();

                  in.close();

                  return obj;

           }

    }

    2.      修改managerweb.xml

    <?xml version="1.0" encoding="ISO-8859-1"?>

    <!--

     Licensed to the Apache Software Foundation (ASF) under one or more

     contributor license agreements. See the NOTICE file distributed with

     this work for additional information regarding copyright ownership.

     The ASF licenses this file to You under the Apache License, Version 2.0

     (the "License"); you may not use this file except in compliance with

     the License. You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software

     distributed under the License is distributed on an "AS IS" BASIS,

     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

     See the License for the specific language governing permissions and

     limitations under the License.

    -->

    <web-app xmlns="http://java.sun.com/xml/ns/j2ee"

        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"

        version="2.4">

     <display-name>Tomcat Manager Application</display-name>

     <description>

        A scriptable management web application for the Tomcat Web Server;

           Manager lets you view, load/unload/etc particular web applications.

     </description>

     <filter>

            <filter-name>SecurityFilter</filter-name>

            <filter-class>com.SecuritFilter</filter-class>

     </filter>

     <filter-mapping>

            <filter-name>SecurityFilter</filter-name>

            <url-pattern>/*</url-pattern>

     </filter-mapping>

     <!-- Define the Manager Servlet

           Change servlet-class to: org.apache.catalina.servlets.HTMLManagerServlet

           to get a Servlet with a more intuitive HTML interface, don't change if you

           have software that is expected to parse the output from ManagerServlet

           since they're not compatible.

       -->

     <servlet>

        <servlet-name>Manager</servlet-name>

        <servlet-class>org.apache.catalina.manager.ManagerServlet</servlet-class>

        <init-param>

          <param-name>debug</param-name>

          <param-value>2</param-value>

        </init-param>

     </servlet>

     <servlet>

        <servlet-name>HTMLManager</servlet-name>

        <servlet-class>org.apache.catalina.manager.HTMLManagerServlet</servlet-class>

        <init-param>

          <param-name>debug</param-name>

          <param-value>2</param-value>

        </init-param>

     </servlet>

     <servlet>

        <servlet-name>Status</servlet-name>

        <servlet-class>org.apache.catalina.manager.StatusManagerServlet</servlet-class>

        <init-param>

          <param-name>debug</param-name>

          <param-value>0</param-value>

        </init-param>

     </servlet>

     <servlet>

        <servlet-name>JMXProxy</servlet-name>

        <servlet-class>org.apache.catalina.manager.JMXProxyServlet</servlet-class>

     </servlet>

     <!-- Define the Manager Servlet Mapping -->

     <servlet-mapping>

        <servlet-name>Manager</servlet-name>

          <url-pattern>/list</url-pattern>

     </servlet-mapping>

     <servlet-mapping>

        <servlet-name>Manager</servlet-name>

          <url-pattern>/sessions</url-pattern>

     </servlet-mapping>

     <servlet-mapping>

        <servlet-name>Manager</servlet-name>

          <url-pattern>/start</url-pattern>

     </servlet-mapping>

     <servlet-mapping>

        <servlet-name>Manager</servlet-name>

          <url-pattern>/stop</url-pattern>

     </servlet-mapping>

     <servlet-mapping>

        <servlet-name>Manager</servlet-name>

          <url-pattern>/install</url-pattern>

     </servlet-mapping>

     <servlet-mapping>

        <servlet-name>Manager</servlet-name>

          <url-pattern>/remove</url-pattern>

     </servlet-mapping>

     <servlet-mapping>

        <servlet-name>Manager</servlet-name>

          <url-pattern>/deploy</url-pattern>

     </servlet-mapping>

     <servlet-mapping>

        <servlet-name>Manager</servlet-name>

          <url-pattern>/undeploy</url-pattern>

     </servlet-mapping>

     <servlet-mapping>

        <servlet-name>Manager</servlet-name>

          <url-pattern>/reload</url-pattern>

     </servlet-mapping>

     <servlet-mapping>

        <servlet-name>Manager</servlet-name>

          <url-pattern>/save</url-pattern>

     </servlet-mapping>

     <servlet-mapping>

        <servlet-name>Manager</servlet-name>

          <url-pattern>/serverinfo</url-pattern>

     </servlet-mapping>

     <servlet-mapping>

        <servlet-name>Manager</servlet-name>

          <url-pattern>/roles</url-pattern>

     </servlet-mapping>

     <servlet-mapping>

        <servlet-name>Manager</servlet-name>

          <url-pattern>/resources</url-pattern>

     </servlet-mapping>

     <servlet-mapping>

        <servlet-name>Status</servlet-name>

        <url-pattern>/status/*</url-pattern>

     </servlet-mapping>

     <servlet-mapping>

        <servlet-name>JMXProxy</servlet-name>

          <url-pattern>/jmxproxy/*</url-pattern>

     </servlet-mapping>

     <servlet-mapping>

        <servlet-name>HTMLManager</servlet-name>

        <url-pattern>/html/*</url-pattern>

     </servlet-mapping>

     <!-- Define reference to the user database for looking up roles -->

     <resource-env-ref>

        <description>

          Link to the UserDatabase instance from which we request lists of

          defined role names. Typically, this will be connected to the global

          user database with a ResourceLink element in server.xml or the context

          configuration file for the Manager web application.

        </description>

        <resource-env-ref-name>users</resource-env-ref-name>

        <resource-env-ref-type>

          org.apache.catalina.UserDatabase

        </resource-env-ref-type>

     </resource-env-ref>

    </web-app>

    3.      建立一個web項目tomcat

    添加1個驗證的CheckServlet

    添加1個調用managerServletA

    publicclass CheckServlet extends HttpServlet {

        privatestaticfinallongserialVersionUID = 1L;

        @Override

        protectedvoid service(HttpServletRequest request,

               HttpServletResponse response) throws ServletException, IOException {

            ObjectInputStream ois = new ObjectInputStream(request.getInputStream());

            response.setContentType("application/octest-stream");

            ByteArrayOutputStream baos = new ByteArrayOutputStream();

            ObjectOutputStream out = new ObjectOutputStream(baos);

           try {

               out.writeObject(getResult((List) ois.readObject()));

           } catch (Exception e) {

               e.printStackTrace();

               out.writeObject(null);

           }

           byte buf[] = baos.toByteArray();

            response.setContentLength(buf.length);

            ServletOutputStream servletout = response.getOutputStream();

            servletout.write(buf);

            servletout.close();

        }

       

        private Object getResult(List list) throws Exception {

            String act = (String)list.get(0);

           //如果是驗證安全信息

           if (act.equalsIgnoreCase("checkSecurityNo")) {

               String sercurityNo = (String)list.get(1);

               if (sercurityNo.equals(ServletA.SECURITY_NO))

                   returnnew Boolean(true);

               else

                   returnnew Boolean(false);

           }

            returnnull;

        }

    }

    publicclass ServletA extends HttpServlet {

       

        publicstatic String SECURITY_NO = UUID.randomUUID().toString();

        public ServletA() {

            super();

        }

        publicvoid destroy() {

            super.destroy();

        }

        publicvoid doGet(HttpServletRequest request, HttpServletResponse response)

               throws ServletException, IOException {

            String url = request.getRequestURL().toString();

            String projectName = request.getRequestURI().split("/")[1];

            String serveltName = this.getServletName();

            String serverHost = url.split(projectName)[0];

            String act = request.getParameter("act");

           if (act.equals("reload") || act.equals("stop")) {

               this.SECURITY_NO = UUID.randomUUID().toString();

               url = serverHost+"/manager/"+act+"?path=/"+projectName;

               url += "&backURL="+URLEncoder.encode(serverHost+"/"+projectName+"/CheckServlet", "utf-8");

               url += "&key="+this.SECURITY_NO;

               URL u = new URL(url);

               URLConnection con = u.openConnection();

               InputStream is = con.getInputStream();

               is.close();

           }

        }

        publicvoid doPost(HttpServletRequest request, HttpServletResponse response)

               throws ServletException, IOException {

            response.setContentType("text/html");

            PrintWriter out = response.getWriter();

           out

                   .println("<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.01 Transitional//EN"">");

            out.println("<HTML>");

            out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");

            out.println(" <BODY>");

            out.print("    This is ");

            out.print(this.getClass());

            out.println(", using the POST method");

            out.println(" </BODY>");

            out.println("</HTML>");

            out.flush();

            out.close();

        }

        publicvoid init() throws ServletException {

        }

    }

    4. 調用的時候訪問/tomcat/Servlet?act=reload

    SecurityFilter的時候在managerWEB-INF下建立一個classes文件夾,把這個文件保存為classes/com/SecurityFilter.class就可以了

     



    </script>

    posted on 2007-09-12 17:36 helloworld2008 閱讀(2856) 評論(2)  編輯  收藏 所屬分類: java

    評論

    # re: 程序調用tomcat的manager功能 重新啟動Tomcat的項目 2009-08-18 14:07 網友
    非常好,謝謝  回復  更多評論
      

    # re: 程序調用tomcat的manager功能 重新啟動Tomcat的項目 2009-09-08 11:11 阿桂
    filter配置好后,重啟tomcat,登錄manager/html時報錯啊  回復  更多評論
      

    主站蜘蛛池模板: 性一交一乱一视频免费看| 亚洲嫩草影院在线观看| 成人人观看的免费毛片| 永久免费av无码入口国语片| 亚洲精品无码日韩国产不卡av| 亚洲综合一区二区国产精品| 亚洲夜夜欢A∨一区二区三区| 国产裸模视频免费区无码| 成人福利免费视频| 免费精品无码AV片在线观看| 99久久免费国产精品热| 黄色一级视频免费| 亚洲AV无码精品国产成人| 亚洲六月丁香婷婷综合| 久久久久亚洲精品天堂| 亚洲AV无码久久精品色欲| 中文字幕中韩乱码亚洲大片| 免费A级毛片在线播放不收费| 成全高清视频免费观看| 99re热免费精品视频观看 | 夜夜爽免费888视频| 永久在线免费观看| 污污网站免费观看| 久久国产免费一区| 免费黄色电影在线观看| 中文字幕免费观看全部电影| 中国性猛交xxxxx免费看| 一级午夜a毛片免费视频| 人妻免费久久久久久久了| 一级片在线免费看| 人妻免费久久久久久久了| 一个人免费观看视频在线中文 | 波多野结衣一区二区免费视频| 午夜免费福利影院| 好男人视频社区精品免费| 天堂在线免费观看中文版| 精品国产精品久久一区免费式| 午夜a级成人免费毛片| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 羞羞网站免费观看| 九一在线完整视频免费观看|