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

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

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

    HelloWorld 善戰(zhàn)者,求之于勢(shì),不責(zé)于人;故能擇人而任勢(shì)。

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

      BlogJava :: 首頁 ::  :: 聯(lián)系 ::  :: 管理 ::
      167 隨筆 :: 1 文章 :: 40 評(píng)論 :: 0 Trackbacks
     

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

    1.       tomcatmanager添加一個(gè)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 {

                         //獲得驗(yàn)證信息

                         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");

                  //回調(diào)的路徑

                  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.      建立一個(gè)web項(xiàng)目tomcat

    添加1個(gè)驗(yàn)證的CheckServlet

    添加1個(gè)調(diào)用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);

           //如果是驗(yàn)證安全信息

           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. 調(diào)用的時(shí)候訪問/tomcat/Servlet?act=reload

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

     



    </script>

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

    評(píng)論

    # re: 程序調(diào)用tomcat的manager功能 重新啟動(dòng)Tomcat的項(xiàng)目 2009-08-18 14:07 網(wǎng)友
    非常好,謝謝  回復(fù)  更多評(píng)論
      

    # re: 程序調(diào)用tomcat的manager功能 重新啟動(dòng)Tomcat的項(xiàng)目 2009-09-08 11:11 阿桂
    filter配置好后,重啟tomcat,登錄manager/html時(shí)報(bào)錯(cuò)啊  回復(fù)  更多評(píng)論
      

    主站蜘蛛池模板: 免费国产小视频在线观看| 四虎影视www四虎免费| 亚洲日本中文字幕| 无码国产精品一区二区免费式直播 | 女人18毛片水真多免费播放| 亚洲一区在线免费观看| 亚洲s码欧洲m码吹潮| 国产亚洲av片在线观看18女人| 99蜜桃在线观看免费视频网站| 亚洲精品GV天堂无码男同| 亚洲色偷偷色噜噜狠狠99| 中文国产成人精品久久亚洲精品AⅤ无码精品 | 亚洲日韩国产一区二区三区| 67pao强力打造高清免费| 特色特黄a毛片高清免费观看| 亚洲AV永久精品爱情岛论坛| 无码人妻精品一二三区免费| 色老头综合免费视频| 人成电影网在线观看免费| 中文字幕在线免费看| 亚洲精品无码日韩国产不卡av| 久久丫精品国产亚洲av不卡 | 久久99国产乱子伦精品免费| 久久最新免费视频| 亚洲AV无码成人精品区狼人影院| 亚洲高清无在码在线无弹窗| 91在线免费视频| 亚洲av永久无码精品网址| 添bbb免费观看高清视频| 久久久久亚洲精品美女| 亚洲色偷拍区另类无码专区| 国产亚洲美女精品久久久久狼| 亚洲美女在线国产| 成人免费毛片视频| 波多野结衣中文一区二区免费| 自拍偷自拍亚洲精品第1页| 亚洲欧洲日产国产综合网| 亚洲电影免费观看| 亚洲va中文字幕无码久久| 亚洲国产成人精品青青草原| 亚洲福利视频网站|