<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      導航

      servlet學習筆記

      Posted on 2019-04-14 20:00  李日天  閱讀(155)  評論(0)    收藏  舉報

      操作環境IDEA

       

      首先創建項目

       

      創建完成后導入 java ee jar包

      配置tomcat 

       

      修改TomCat的默認訪問頁面

       

          <welcome-file-list>
              <welcome-file>xx.html</welcome-file>
          </welcome-file-list>

      缺省的默認訪問頁面是index.html

      也可以指定一個servlet來作為默認訪問頁面,前提是這個servlet可以推送一個網頁。

       

       

      在src下創建 com.xx.control包,servlet一般放在control下。一個簡單的HttpServlet

      package com.xx.control;

      import javax.servlet.ServletException;
      import javax.servlet.annotation.WebServlet;
      import javax.servlet.http.HttpServlet;
      import javax.servlet.http.HttpServletRequest;
      import javax.servlet.http.HttpServletResponse;
      import java.io.IOException;

      @WebServlet(name = "TwoServlet")
      public class TwoServlet extends HttpServlet {
      protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      String mt = request.getMethod();
      String uname = request.getParameter("uname");
      System.out.println("用戶名: "+ uname);
      System.out.println("方法: " + mt);
      }

      protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      String mt = request.getMethod();
      String uname = request.getParameter("uname");
      System.out.println("用戶名: "+ uname);
      System.out.println("方法: " + mt);
      }
      }

       

       然后在web目錄下配置WEB-INF中的web.xml

          <servlet>
              <servlet-name>WYF</servlet-name>
              <servlet-class>com.lh.control.OneServlet</servlet-class>
              <load-on-startup>10</load-on-startup>
              <!--    設置為啟動tomcat時即加載該實例,數字越小 加載優先級越高    -->
              <!--    tomcat 訪問期間,只會有一個servlet被實例化-->
          </servlet>
      
          <servlet-mapping>
              <servlet-name>WYF</servlet-name>
              <url-pattern>/wyf</url-pattern>
          </servlet-mapping>

      有四種路徑配置方法,當路徑沖突時,優先級為   具體 > 前置 > 通配 > 后置

      <!--        具體路徑請求-->
              <url-pattern>/wyf</url-pattern>
      
      <!--        前置條件請求-->
              <url-pattern>/wyf/*</url-pattern>
      
      <!--        后置條件請求-->
              <url-pattern>*.do</url-pattern>
      
      <!--        通配符請求路徑-->
              <url-pattern>/*</url-pattern>

       

      Response

      為了給用戶一個返回數據,我們需要使用HttpServletResponse

      從相應對象獲取一個輸入流

      通過輸入流將返回結果寫入到響應體中

      關閉輸入流

      復制代碼
      public class ResponseServlet extends HttpServlet {
          @Override
          protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
              String result = "Hello Java";
              PrintWriter out = resp.getWriter();
              out.println(result);
              out.close();
          }
      }
      復制代碼

      中文會亂碼

      還是因為默認的響應體編碼是 ISO的

      需要指定編碼

      resp.setCharacterEncoding("utf-8");

      還可以指定ContentType。

      resp.setContentType("text/html;charset=utf-8");

       

       

      Cookie

      Cookie ck = new Cookie("key", "value");
      resp.addCookie(ck);

      讀取cookie

      Cookie[] cookies = req.getCookies();

      不好的是要獲取key就只能循環出來,不能單獨讀取。后續學到了再來做補充。

       Session

      通過在cookie中存一個session_id來確認用戶身份。

       session創建方法

      HttpSession hs = req.getSession();
      HttpSession hs = req.getSession(false);
      HttpSession hs = req.getSession(true);

      getSession() 已有session則返回現有session,否則創建返回

      getSession(true) 同上

      getSession(false) 已有session則返回現有session,否則返回空

       

      session保存數據

      hs.setAttribute("key","value");
      hs.getAttribute("key");

       

      設置session的空閑時間

      1)Tomcat中配置

          <session-config>
              <session-timeout>1</session-timeout>  
          </session-config>
      <!-- 單位分鐘 --!>

      2)Servlet中配置

      hs.setMaxInactiveInterval(120); #單位秒

       

      ServletContext

      ServletContext其實就是全局作用域對象, 上下文環境對象

      利用context可以實現對,當前網站中所有的Servlet共享數據

      context對象只能由Tomcat負責創建,在tomcat啟動時創建,關閉時銷毀

      只能有一個context singleton。

      使用

      1)從request中獲取

      ServletContext application = req.getServletContext();

      2)context中存放數據

        1)在tomcat中存放

          <context-param>
              <param-name>driver</param-name>
              <param-value>com.mysql.cj.jdbc.Driver</param-value>
          </context-param>

        2) 在servlet中存放

      application.setAttribute("name", "silly B");

         取

      String name = (String) application.getAttribute("name");

      注意事項

      消耗的是服務器端的內存,所以不要隨意往里面放東西。

       

      Post時編碼問題

      <html>
        <body>
        <div>
          <form action="/Sample01/wyf" method="get">
            <label>用戶名: </label><input type="text" name="uname"/>
            <input type="submit" value="get"/>
          </form>
          <form action="/Sample01/wyf" method="post">
            <label>用戶名: </label><input type="text" name="uname"/>
            <input type="submit" value="post"/>
          </form>
        </div>
        </body>
      </html>

      使用post傳參時會發現,tomcat在console的輸出會亂碼

      原因

        瀏覽器采用【get】請求時,請求參數保存在【請求頭】,請求頭的內容是由tomcat負責的。Tomcat9 編碼集默認為 utf-8, 以前也是ISO-8859-1

        瀏覽器采用【post】請求時,請求參數保存在【請求體】,請求體的內容是由請求對象負責的。編碼集默認為 ISO-8859-1

      解決方法

        設置request對象的編碼

      request.setCharacterEncoding("utf-8");

        必須在讀取內容前調用該方法.

       

        Tomcat9以前的版本還需要修改Tomcat/conf/server.xml

      <Connector port="8080" protocol="HTTP/1.1"
                     connectionTimeout="20000"
                     redirectPort="8443" 
                 URIEncoding="utf-8"/>        

       

       

      讀取復選框的參數

      String array[] = req.getParameterValues("hobby");

       

          <form action="/Sample01/cbs" method="get">
            <label>愛好: </label><input type="checkbox" name="hobby" value="1">吳亦凡<br>
            <input type="checkbox" name="hobby" value="2">才徐坤<br>
            <input type="checkbox" name="hobby" value="3">郭德綱<br>
            <input type="submit"/>
          </form>

      測試結果

       

       

      過濾器

      創建

      1.實現了Filter接口的實現類被認為是一個過濾器

      2.重寫doFilter方法,來過濾請求

      3.webxml中注冊過濾器通知tomcat

      生命周期

      啟動時創建,一個過濾器只有一個實例對象,關閉時銷毀。

      public class myFilter implements Filter {
          @Override
          public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
              String age = servletRequest.getParameter("age");
              if(Integer.valueOf(age)<18){
                  servletResponse.getWriter().println("too young");
              }else {
                  filterChain.doFilter(servletRequest, servletResponse); // 繼續下一個filter
              }
          }
      }

      web.xml

          <filter>
              <filter-name>firstFilter</filter-name>
              <filter-class>com.lh.control.myFilter</filter-class>
          </filter>
          <filter-mapping>
              <filter-name>firstFilter</filter-name>
              <url-pattern>/18x.jpg</url-pattern> //還有通配符 前置 后置的匹配模式
          </filter-mapping>

      應用:用filter設置編碼集。 控制未登錄用戶訪問頁面

       

       

      監聽器

      servlet中的監聽器專門用于監控域對象(request,session,context)

       

      public class MyListener implements ServletContextListener {
      
          @Override
          public void contextInitialized(ServletContextEvent servletContextEvent) {
      
          }
      @Override
      public void contextDestroyed(ServletContextEvent servletContextEvent) { } }

      web.xml中注冊

          <listener>
              <listener-class>com.lh.control.MyListener</listener-class>
          </listener>

       

      主站蜘蛛池模板: 婷婷丁香五月激情综合| 精品人妻人人做人人爽夜夜爽| 中文文字幕文字幕亚洲色| 亚洲第一成人网站| 亚洲老妇女一区二区三区| 午夜成人鲁丝片午夜精品| 国产三级国产精品国产专| 亚洲午夜爱爱香蕉片| 国产成人亚洲日韩欧美| 亚洲熟妇自偷自拍另欧美| 樱花草视频www日本韩国| 色综合天天色综合久久网| 不卡国产一区二区三区| 国产乱人伦真实精品视频| 国产精品成人午夜福利| 亚洲精品一区二区口爆| 九九热在线这里只有精品| 国产片av在线观看国语| 国产黄色一级片在线观看| 久久精品国产亚洲av忘忧草18| 人妻系列无码专区免费| 高清国产一区二区无遮挡| 又大又紧又粉嫩18p少妇| 国产精品成人网址在线观看| 欧美丰满熟妇xxxx性| 太康县| 天天做天天躁天天躁| 亚洲欧美日韩综合一区在线| 又粗又硬又黄a级毛片| 人人色在线视频播放| 99久久精品久久久久久婷婷| 日韩不卡1卡2卡三卡网站| 成人一区二区不卡国产| 国产午夜福利高清在线观看| 欧美国产日韩久久mv| 少妇宾馆粉嫩10p| 欧洲精品色在线观看| 一边添奶一边添p好爽视频| 国产亚洲一区二区三区av| 精品一区二区成人精品| 美女裸体黄网站18禁止免费下载 |