Java-Web核心重點剖析

Servlet

JSP本質是Servlet。Sun公司主推的BS架構,Servlet就是一個java接口。

  • 寫類實現Servlet接口。
  • 部署到Web服務器(tomcat之類)。

註解形式:@WebServlet("/名字")

匹配形式:

<web-app>
  <servlet>
    <servlet-name>hello</servlet-name>
    <servlet-class>com.leo.servlet.HelloServlet</servlet-class>
  </servlet>
  
  <servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>
</web-app>

約定大於配置

Maven的目錄結構。默認有resources文件夾,存放資源配置文件。src-main-resources,src-main-java。默認的編譯生成的類都在targe文件夾下面。
spring boot默認的配置文件必須是application.命名的yml文件或者properties文件,且唯一application.yml中默認屬性。
數據庫連接信息必須是以spring: datasource: 爲前綴;多環境配置。該屬性可以根據運行環境自動讀取不同的配置文件;端口號、請求路徑等。

Context-中間商爲每個web程

this.getServletContext-拿到對象

Web容器啓動爲程序創建一個對應點ServlecContext對象,代表當前Web應用。

  1. 數據共享:不同servlet中共享同一個對象就可以互相使用數據。不用傳統io。
  2. 請求轉發:(轉發vs重定向 一個在服務器一個在頁面。轉發地址欄不變,數據不丟)
  3. 讀取配置文件:構建流Properties(Java.util.Properties),讀取Java的配置文件。Properties類的load方法。

HttpServletRequest-獲取客戶端參數

HttpServletResponse-給客戶端信息

  • 下載文件
/**
 * @author Lenovo
 */
@WebServlet("/down")
public class FileServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1,要獲取下載文件路徑
        String realPath = "C:\\Users\\Lenovo\\Pictures\\map.jpg";
        //2,文件名稱
        String fileName = realPath.substring(realPath.lastIndexOf("\\") + 1);
        //3, 瀏覽器支持
        resp.setHeader("Content-Disposition","attachment;filename="+fileName);
        //4, 流操作:獲取流-緩衝區
        FileInputStream input = new FileInputStream(realPath);
        int len = 0;
        byte[] buffer = new byte[1024];
        //5, 拿到outputStream對象-寫入Buffer
        ServletOutputStream output = resp.getOutputStream();
        while ((len=input.read(buffer))>0){
            output.write(buffer,0,len);
        };
        input.close();
        output.close();
    }
}
  • 驗證碼和重定向什麼的
resp.sendRedirect("/longin.jsp");

JSP-JavaServePages

4個JSP內置對象的作用域分別爲:application、session、request、page 。JSP內置對象作用域表如下:

名稱

作用域

application

在所有應用程序中有效,打開服務器到關閉服務器

session

在當前會話中有效,打開關閉瀏覽器

request

在當前請求中有效,請求轉發會攜帶這個數據

page

在當前頁面有效。關閉頁面就木有了。

MVC三層架構

Filter:過濾一些垃圾請求啥的。實現一個過濾器接口就ok。implements Filter(javax servlet)

註解配置
@WebFilter(filterName = "XXX",urlPatterns = {"/XXX"})
--------------------------------------------------------
web.xml配置
<filter>
     <filter-name>filter01</filter-name>
     <filter-class>com.edu.dcx.filters.FilterTest01</filter-class>
</filter>
<filter-mapping>
     <filter-name>filter01</filter-name>
      <!--對所有地址進行過濾-->
     <url-pattern>/*</url-pattern>
</filter-mapping>

JDBC固定6部

  1. 加載驅動------Class.forName("com.mysql.cj.jdbc.Driver")
  2. 連接數據庫---Connection conn = DriverManager.getConnection(url,username,password)
  3. 向數據庫發送SQL對象Statement:CRUD;PrepareStatement
  4. 編寫SQL。---看情況
  5. 執行SQL。---看情況
  6. 關閉連接。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章