apache-tomcat服務器

一、創建項目

1.第一步:New ——>Dynamic Web Project

這裏寫圖片描述


2.第二步:給工程起名,和選擇New Runtime

這裏寫圖片描述
這裏寫圖片描述

3.第三步,選擇服務器

這裏寫圖片描述

4.第四步 選擇Browse(選擇服務器所在文件)

這裏寫圖片描述
這裏寫圖片描述

二、Tomcat文件夾文件

1.bin:可執行文件,裏面有打開和關閉服務器可執行文件
2.conf:服務器配置信息
3.lib:服務器依賴的架包
4.logs:服務器日誌
5.temp:服務器臨時產生的文件
6.webbapps:默認的存放工程,存放應用程序/網站
7.跟eclipse關聯後產生的文件夾

三、啓動tomcat服務器

方式一:從控制檯啓動tomcate服務器
   sudo chmod 755 *.sh    //獲取文件夾的權限
   sudo sh ./startup.sh   //執行打開服務器
   sudo sh ./shutdown.sh  //關閉服務器
 方式二:
 1.

Run As
2.選擇服務器
3.添加項目

2.檢驗是否啓動成功

訪問服務器網址(url):http://localhost:8080

協議://本地地址:端口號/項目名(應用程序)/訪問資源
<!--http://localhost:8080/sh-web-servlet1/1.html

4.Servlet小服務程序

1.是java類接口
2.在瀏覽器上訪問的每個網頁都有一個Servlet
3.每個Servlet都需要配置一個網址
4.在web.XML中配置

用戶如何從瀏覽器訪問到Servlet類:
1.用戶用網址訪問服務器(tomact)
2.服務器通過網址可以找到,對應項目的web.xml文件
3.通過網址找到對應的servlename
4.通過servletname找到對應的servlet類
5.創建servlet對象
6.執行生命週期的幾個方法
實例化--》初始化--》service服務--》銷燬

五、web.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- 下面是xml文件頭文件,限制了xml文件所能書寫的內容 -->
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
 <!-- 工程的名字 -->
  <display-name>sh-web-servlet1</display-name>
  <!-- 你可以設置歡迎頁面 -->
  <welcome-file-list>
    <welcome-file>1.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <!-- 創建一個Servet -->
  <servlet>
  <!--設置 servlet 名字  -->
  <servlet-name>demo01</servlet-name>
  <!--設置該servlet使用哪個類  填寫權限修飾名-->
  <servlet-class>com.lanou3g.com.Demo01</servlet-class>

  </servlet>

  <servlet-mapping>
 <!--配置哪一個servlet的映射地址  -->
 <servlet-name>demo01</servlet-name>
 <!--配置映射地址  -->
 <!--這裏的斜槓,代表工程名後面的斜槓,必須加上  -->
 <url-pattern>/demo01</url-pattern>
 </servlet-mapping>

  <servlet>
  <servlet-name>demo02</servlet-name>
  <servlet-class>com.lanou3g.com.Demo02</servlet-class>
  </servlet>
  <servlet-mapping>
  <!--配置哪一個servlet的映射地址  -->
 <servlet-name>demo02</servlet-name>
 <!--配置訪問路徑通配符  -->
 <!--*.action 只要是以.action結尾的訪問路徑
 都可以訪問到demo02這個servlet  -->
 <!--/*項目目錄下,隨便輸入網址,都能訪問到demo02  -->
 <!--注意:上面兩種方式不能連用-->
 <url-pattern>/demo02</url-pattern>
  </servlet-mapping>

   <servlet>
  <servlet-name>demo03</servlet-name>
  <servlet-class>com.lanou3g.com.Demo03</servlet-class>

  <!--添加servlet配置信息  -->
  <init-param>
  <param-name>encoding</param-name>
  <param-value>UTF-8</param-value>
  </init-param>

  </servlet>
  <servlet-mapping>
  <!--配置哪一個servlet的映射地址  -->
 <servlet-name>demo03</servlet-name>

 <url-pattern>/demo03</url-pattern>
  </servlet-mapping>

   <servlet>
  <servlet-name>demo04</servlet-name>
  <servlet-class>com.lanou3g.com.Demo04</servlet-class>

  <!--添加servlet配置信息  -->
  <init-param>
  <param-name>encoding</param-name>
  <param-value>UTF-8</param-value>
  </init-param>

  </servlet>
  <servlet-mapping>
  <!--配置哪一個servlet的映射地址  -->
 <servlet-name>demo04</servlet-name>

 <url-pattern>/demo04</url-pattern>
  </servlet-mapping>



   <servlet>
  <servlet-name>demo05</servlet-name>
  <servlet-class>com.lanou3g.com.Demo05</servlet-class>

  <!--添加servlet配置信息  -->
  <init-param>
  <param-name>encoding</param-name>
  <param-value>UTF-8</param-value>
  </init-param>

  </servlet>
  <servlet-mapping>
  <!--配置哪一個servlet的映射地址  -->
 <servlet-name>demo05</servlet-name>

 <url-pattern>/demo05</url-pattern>
  </servlet-mapping>




   <servlet>
  <servlet-name>demo06</servlet-name>
  <servlet-class>com.lanou3g.com.Demo06</servlet-class>

  <!--添加servlet配置信息  -->
  <init-param>
  <param-name>encoding</param-name>
  <param-value>UTF-8</param-value>
  </init-param>

  </servlet>
  <servlet-mapping>
  <!--配置哪一個servlet的映射地址  -->
 <servlet-name>demo06</servlet-name>

 <url-pattern>/demo06</url-pattern>
  </servlet-mapping>
</web-app>

六、Servlet接口實現類,創建servlet三種方式

方式一:
public class Demo01 implements Servlet{
    //無參構造方
//無參構造方法
    //聲明週期
    public  Demo01() {
        System.out.println("我是實例化方法");
    }
    @Override
    public void init(ServletConfig arg0) throws ServletException {
        System.out.println("我是初始化init方法");
    }

    @Override
    public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
//      Servlet只創建一個,多次訪問實際上就是多次調用服務的方法service
        System.out.println("我是服務方法 service");
    }
    @Override
    public void destroy() {
//      第一種:刪除該應用程序調用
//  第二種,停止服務器
        System.out.println("我是銷燬方法 destroy");

    }

    @Override
    public ServletConfig getServletConfig() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public String getServletInfo() {
        // TODO Auto-generated method stub
        return null;
    }
}
方式二:通過繼承GenericServlet類
/*
 * 創建servlet方式二(適配器模式創建)
 * 使用哪個方法就重寫哪個方法,
 * 用不上的方法可以不重寫
 * 
 */
public class Demo02 extends GenericServlet {

     //適配器模式的創建
    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        System.out.println("我是demo02的service");
    }
    //接受post請求

}
創建方式三:模板設計模式--必會的
繼承HttpServlet
public class Demo03 extends HttpServlet{
    //聲明一個ServletConfig對象,當做成員變量

//獲取ServletConfig方式一

    private ServletConfig config;

    //初始化方法()通過該方法的ServletConfig對象
    //ServletConfig對象保存的是servlet中的配置信息
    @Override
        public void init(ServletConfig config) throws ServletException {
            // TODO Auto-generated method stub
            super.init(config);
//          接受一下ServletConfig
            this.config =  config;
        }
   @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    // TODO Auto-generated method stub
      //調用父類的doGet 怎麼都會報錯
       //不是400 就是405
     //重寫玩doget方法,注意不要調用父類的doget方法,
     //否則無論怎麼配置,都會報錯
     //super.doGet(req, resp);   


       //獲取sevlet的配置信息
       //參數時 配置時的 name(相當於key)
       //用於獲取 key 對應的value
       String value = this.config.getInitParameter("encoding");
       System.out.println(value);
}
   //接受post請求
   @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(req, resp);
    }
}

創建方式二:

/*
 * 獲取ServletConfig 方式二
 * 
 */
public class Demo04 extends HttpServlet{
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         //通過父類中的方法,獲取ServletConfig對象
//      String value = this.getServletConfig().getInitParameter("encoding");
        ServletConfig servletConfig = this.getServletConfig();
        String value = servletConfig.getInitParameter("encoding");
             System.out.println(value);
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

七、創建域對象

/*
 * 域對象(在一定範圍內,存儲信息的對象)
 * ServletContext範圍:是整個程序中,都可以訪問到,並且只有一個--單例對象
 * 每個servlet都可以訪問到這個域對象
 * 如何訪問ServletContext 兩種方式
 * 
 * 方式一:從ServletConfig對象中獲取
 * 方式二:從父類中直接獲取
 * 
 * 所有的域對象,都有設置/獲取/刪除的方法
 *  
 */
public class Demo05 extends HttpServlet {

   @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    //方式一:從ServletConfig對象中獲取
       ServletContext application = this.getServletConfig().getServletContext();
     //添加一個數據到域中
       //相當於添加一個鍵值對,key和value
         application.setAttribute("username", "wanglong");
}

}


public class Demo06 extends HttpServlet {
     @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

            Object object = this.getServletContext().getAttribute("username");
   System.out.println(object);
     //設置全局配置信息,
     //獲取資源的真實路徑,獲取路徑下所有的
     }

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章