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應用。
- 數據共享:不同servlet中共享同一個對象就可以互相使用數據。不用傳統io。
- 請求轉發:(轉發vs重定向 一個在服務器一個在頁面。轉發地址欄不變,數據不丟)
- 讀取配置文件:構建流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部
- 加載驅動------Class.forName("com.mysql.cj.jdbc.Driver")
- 連接數據庫---Connection conn = DriverManager.getConnection(url,username,password)
- 向數據庫發送SQL對象Statement:CRUD;PrepareStatement
- 編寫SQL。---看情況
- 執行SQL。---看情況
- 關閉連接。