java servlet

 

回顧html

1三要素是什麼?java

入口(login.html)     處理(LoginServlet.java)  出口 (success.jsp)web

 

2如何訪問servlet瀏覽器

  http://IP:port/project/urlpatterntomcat

  urlpattern ---->web.xml中找安全

 

3 request response的區別?服務器

 

Request請求  Broswer---->Tomcat    login.html--->LoginSevlet.javaapp

Response返回 Tomcat---->Broswer   webapp

 

4 doGet  和  doPost的區別?jsp

   

   doGet   <a href=url>  超連接用的默認方式 get   不解中文決亂麼

            <form action=url  method=get >

           明文傳遞方式 瀏覽器中能夠看到傳遞的信息

           不安全,而且數據量大的時候會缺損數據

   doPost   <form action=url  method=post >        解決中文亂碼

            密文傳遞方式 瀏覽器看不到傳遞的信息

           安全,而且數據量大的時候不會缺損數據

 

5如何解決亂碼問題?

Request請求有亂碼    

request.setCharacterEncoding("UTF-8");

Reponse返回有亂

response.setCharacterEncoding("UTF-8");

 

6 如何取得請求中的值 ?

 

String value=request.getParameter(「控件名」);   單個值

String []  values=request.getParmeterValues(「控件名」);  同名多個值

 

7 常見的錯誤:404 500

404 路徑錯誤---解決思路  跟蹤路徑

500 代碼錯誤---解決思路  jsp/servlet中代碼錯誤

獲取不到值null  console裏面去找到錯誤的位置。

 

8 servlet中獲得流的方法?

   字符流   response.getWriter( )----->PrintWriter

   字節流   response.getOutputStream()-->OutputStream

 

9 如何跳轉到出口?

       //跳轉而且能夠傳遞數據

request.getRequestDispatcher("success.jsp").forward(request, response);

 

        //從新定向 跳轉不傳遞數據

//response.sendRedirect("success.html");

 

 

10如何將數據傳遞到出口?

        //保存數據

request.setAttribute("name", username);

request.setAttribute("password", pwd);

 

        //獲取數據

        用戶名是:${ name}   ,密碼: ${password}

 

 

11 Servlet的生命週期

   Servlet的生命週期是由tomcat服務器來控制的。

  1 構造方法:

建立servlet對象的時候調用。默認狀況下,第一訪問servlet就會建立servlet對象只建立一次。說明servlet對象在tomcat中是單實例的。

 

 2初始化   init方法

  當建立完servlet對象的時候會調用init()方法,只調用一次。

 

3 調用服務 service 方法   其中就包含doGet  doPost等方法

  每次發送請求的時候調用。能夠調用n次。

4 銷燬    destory 方法

   銷燬servlet對象的時候調用,中止服務器或者從新部署的web項目的時候銷燬servlet就會調用destory方法

 

12 Servlet時序圖

 

 

 

13 servlet自動加載

web.xml中加入

  <load-on-startup> 1</load-on-startup>

裏面的數字越小加載級別越高

tomcat啓動的時候,就去運行web.xml解析裏面的內容,當發現有自動加載的數據時候,就會運行加載。

  <servlet>

    <servlet-name>sl</servlet-name>

    <servlet-class>com.bw.servlet.LoginServlet</servlet-class>

      <load-on-startup>3</load-on-startup>

  </servlet>

 

 

14 ServletConfig 對象

   主要是加載servlet的初始化參數,web應用中能夠存在多個ServletConfig對象

  

  <servlet>

    <servlet-name>sl</servlet-name>

    <servlet-class>com.bw.servlet.LoginServlet</servlet-class>

     <init-param>

      <param-name>username</param-name>

      <param-value>godyang</param-value>

    </init-param>

    <init-param>

      <param-name>password</param-name>

      <param-value>123456</param-value>

    </init-param>

  </servlet>

 

 

15 ServletContext對象

 上下文對象,表示當前的web應用(項目)環境。一個web應用只有一個ServletContext對象

 

  上下文參數配置  它是全局的  全部的servlet均可以訪問

<context-param>

<param-name>ecode</param-name>

<param-value>UTF-8</param-value>

</context-param>

// 獲取上下文對象

ServletContext sc = this.getServletContext();

String contextParamValue = sc.getInitParameter("ecode");

System.out.println("contextParamValue=" + contextParamValue);

//項目路徑

String path=sc.getContextPath();

System.out.println("path="+path);

//文件發佈後(tomcat/webapps)的真實路徑

String realPath=sc.getRealPath("counter.txt");

System.out.println("realPath="+realPath  );

//獲取文件流

     InputStream  is=sc.getResourceAsStream("C:\\Tomcat\\webapps\\webThree\\WEB-INF\\classes\\counter.txt");

相關文章
相關標籤/搜索