web學習筆記

來源:互聯網
上載者:User

標籤:java   erro   get請求   回收   etc   包含   修改連接埠號碼   發送請求   test   

 
 tomcat
 bin
    startup啟動伺服器
    shutdown關閉伺服器
 conf(設定檔夾)
    server.xml
        伺服器設定檔(連接埠號碼)
    web.xml
 lib(架包)
 logs(日誌)
 temp(臨時檔案)
 webapps(寫好的代碼,部署的項目)
 work(放jsp)
 servlet(java代碼) )
 javac -d . -cp servlet-api.jar FirstServlet.java
 
 手動部署
    1.檔案夾下建立WEB-INF,下建立classes(放java位元組碼檔案)和lib(jar包)檔案將配置好的web.xml放到web-inf    檔案夾下
    2.將上述檔案放到tomcat下的webapps檔案夾下
    3.http://ip:port/項目名/資源名
        http://127.0.0.1:8181/tylg_servlet/FirstServlet
重新部署
    
    servlet
         實現servlet介面
            <servlet>
                <servlet-name>firstservlt</servlet-name>//用來匹配servlet—mapping
                <servlet-class>com.briup.web.servlet.FirstServlet</servlet-class>java類的包名加類名
            </servlet>
            <servlet-mapping>
                <servlet-name>firstservlt</servlet-name>//用來匹配servlet
                <url-pattern>/firstServlet</url-pattern>//資源路徑
            </servlet-mapping>
                響應過程
                    http://ip:port/項目名/資源名
                    http://127.0.0.1:8181/tylg_servlet/FirstServlet
                        伺服器得到get請求,通過ip和連接埠號碼找到tomcat,在tomcat中找到webapps,如果是頁面,直接存取如果是java在web-inf中找到web.xml。在xml裡通過路徑的資源名和url-pattern匹配找到servlet-mapping,在servlet-mapping中通過servlet-name匹配servlet標籤,通過servlet-class找到對應的java運行檔案
         繼承Genericservlet
            實現service方法(自動調用)
            http://127.0.0.1:8181/tylg_servlet/SecondServlet
         繼承HttpServlet
            service(HttpServlet req,HttpServletResponse resp)僅攔截http協議的請求
            service(ServletRequest arg0, ServletResponse arg1)所有請求都會攔截
            init(初始化)destroy(消亡)
        第一次訪問的時候建立對象(init方法)(tomcat的service容器)並調用servlet方法,第二次再發請求時不建立新對象,使用第一次啟動的時建立的對象,調用servlet方法(單例模式)當伺服器停掉的時候調用destro有方法回收對象
        在web.xml裡的servlet標籤加<load-on-startup>1</load-on-startup>可以設定是否在伺服器啟動時建立對象
            數字越接近0越早建立,負數則不建立
    單例模式
        class Test{//懶漢模式判斷是否存在,不存在建立新對象
            private Test test;
            private Test(){}
            public Test getTest(){
            
            if(test!=null){
            test=new Test();
            }
            return test;
            }
        }
        class Test{//餓漢模式先建立對象
            private Test test=new Test();
            private Test(){}
            public Test getTest(){
        
            return test;
            }
        }
    webcontent下方html頁面
 天生多線程,線程不安全
  為伺服器設定重新載入servers -》context.xml-》<context reloadable="true">
  get/post傳參方式(key=value)
  get(將參數用地址的方式傳遞)getParameter
    不安全,有長度限制
    doGet
    超連結,form表單,ajax
    http://127.0.0.1:8181/tylg_servlet/param.html
   當發一個請求,資源存在,將請求封裝成httprequest對象(web伺服器)作為參數發送給service方法
    http://127.0.0.1:8181/tylg_servlet/param.html
    http://127.0.0.1:8181/tylg_servlet/ParamServlet?name=zhang3&age=10
  post參數在要求標頭
  form表單methed屬性設定為post
  doPost只接受post傳參
  解決亂碼
    server.xml 修改連接埠號碼的地方URIEncoding="編碼方式"
    req.setCharacterEncoding("UTF-8");
    resp.setContentType("text/html;charset=utf-8");設定內容類型
    發送請求的方式(五種)
    http://127.0.0.1:8181/tylg_servlet/register.html
    
    跳轉:
        伺服器內部跳轉
            RequestDispatcher rdis=req.getRequestDispatcher("error.html");
            rdis.forward(req, resp);//傳遞請求
                forward僅跳轉
            req.getRequestDispatcher("success.html").include(req, resp);
                include將其他的東西包含進頁面一起顯示
            瀏覽器請求(form的active)-》1.java(req.getRequestDispatcher("2").include(req, resp);)->web.xml->2.java->瀏覽器
        一個請求一個回應
            瀏覽器發一個請求,請求在伺服器內傳遞(向下轉寄),完成後向瀏覽器發一個響應
        
        用戶端重新導向
            新的請求
            resp.sendRedirect("error.html");
    路徑問題
        相對路徑
        ./回到上一級目錄
        ../回到上兩級目錄
        絕對路徑
        /
    範圍
    application  page
        ServletContext app=    session.getServletContext();
    session    
        HttpSession session =req.getSession();
        session會話(每個瀏覽器jsessionid標識)儲存在伺服器端的一個對象,用戶端沒有,瀏覽器以Cookie的形式將jsessionid發送到伺服器,以驗證會話的一致性
        在web配置
        <session-config>
                <session-timeout>1</session-timeout>
        </session-config>
        修改會話儲存時間
        cookie(自動登陸)會話追蹤用戶端(本地檔案)和伺服器端(java對象)都有
    request
         url重寫
            將JsessionId以post或get方式發給伺服器
        
    過濾器
    implements Filter
    判定合法性
    <filter>
      <filter-name>firstfilter</filter-name>
      <filter-class>com.briup.web.filter.FirstFilterTest</filter-class>
  </filter>
  <filter-mapping>
      <filter-name>firstfilter</filter-name>
      <url-pattern>/*(所有請求都會過濾)</url-pattern>地址中出現的路徑才會被過濾器過濾
  </filter-mapping>
    監聽器當事件觸發時調用監聽器
    <listener>
        <listener-class>com.briup.web.listener.SessionListener</listener-class>
    </listener>
 

web學習筆記

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.