JavaWeb隨心筆記(1)
阿新 • • 發佈:2019-02-20
閱讀目錄
- JavaSE 標準版本
- JavaEE 企業版本
- JavaME 移動版本
- 伴隨伺服器的啟動,啟動Servlet
- 標籤值中大於0或等於0的表示伴隨伺服器的啟動,自動啟動Servlet
- 標籤值小於0或者沒有標籤的表示,選擇時再啟用
- 其中數值表示優先順序,在很多需要啟動的 Servlet 中數值越小優先順序越大
在做檔案處理的情況下,不能把路徑寫成絕地路徑,因為我們最後需要搭建到伺服器上,所以把路徑寫到相對路徑上就會省去不必要的麻煩
Java
String realPath=request.getServletContent.getRealPath("");
String from=request.getHeader("User-Agent");
if(from.indexOf("Windows")>0){
userFrom ="來自Windows的使用者!";
}else if(from.indexOf("Macintosh")>0){
userFrom ="來自 Mac 的使用者!";
}else if(from.indexOf("Android")>0){
userFrom ="來自 Android 的使用者!";
}else if(from.indexOf("IPhone")>0){
userFrom ="來自 IPhone 的使用者!" ;
}
indexOf(str) 獲取第一次出現的字串索引
response.setHeader("Refresh","2,URL=路徑");
- 獲取檔名稱
- 獲取檔案路徑
- 建立檔案物件,並判斷是否存在
- 設定遊覽器的的型別為應用下載(application/x-msDownload)
- 設定遊覽器的下載方式
//獲取下載名稱
String filename=request.getParameter("filename");
//獲取路徑名稱
String downloadPath=this.getServletContext().getRealPath("/" )+"WEB-INF\\Logs\\";
if(file.exists()){
//對遊覽器進行下載設定
response.setContentType("application/x-msDownload");
//對遊覽器進行設定,將下載的內容作為附件,並指定檔名
response.setHeader("Content-Disposition", "attachment;filename=\""+filename+"\"");
//開啟輸入輸出流
InputStream inputStream=new FileInputStream(file);
ServletOutputStream servletOutputStream=response.getOutputStream();
//開始進行檔案讀寫
byte[] b=new byte[1024];
int n;
while((n=inputStream.read(b))!=-1){
servletOutputStream.write(b, 0, n);
}
inputStream.close();
servletOutputStream.close();
}else{
//下載不存在
PrintWriter out=response.getWriter();
out.print("下載檔案不存在....");
out.flush();
out.close();
}
referer:當訪客訪問網頁時,HTTP來源地址是前一個網頁的URL。
String referer=request.getHeader("referer");
String sitePart="http://"+request.getServerName();
System.out.println(referer+"\n"+sitePart);
if(referer!=null&& referer.startsWith(sitePart)){
if(file.exists()){
//對遊覽器進行下載設定
response.setContentType("application/x-msDownload");
//對遊覽器進行設定,將下載的內容作為附件,並指定檔名
response.setHeader("Content-Disposition", "attachment;filename=\""+filename+"\"");
//開啟輸入輸出流
InputStream inputStream=new FileInputStream(file);
ServletOutputStream servletOutputStream=response.getOutputStream();
//開始進行檔案讀寫
byte[] b=new byte[1024];
int n;
while((n=inputStream.read(b))!=-1){
servletOutputStream.write(b, 0, n);
}
inputStream.close();
servletOutputStream.close();
}else{
//下載不存在
PrintWriter out=response.getWriter();
out.print("下載檔案不存在....");
out.flush();
out.close();
}
}else{
//跳轉到自己的頁面
request.getRequestDispatcher("自己的現在地址").format(request,response);
}
新增 Cookies
Cookie cookie=new Cookie("key",value);
//建立 Cookie 物件,獲取出現的 Cookie 的值
Cookie lastCookie=null;
//建立 Cookie 陣列用來獲取遊覽器中的所有 Cookie
Cookie[] cookies=request.getCookies();
//遍歷所有 cookies
for(int i=0;cookies!=null && i<cookies.length;i++){
if("以前新增鍵".equals(cookies[i].getName())){
lastCookie=cookies[i].getValue();
break;
}
}
if(lastCookie==null){
response.getWriter.print("歡迎新使用者");
}else{
response.getWriter.print("歡迎老使用者");
}
```
## Q10: <a id="10">Session</a>
```Java
// 獲取 Session
HttpSession session=request。getSession();
//存放物件
session.setAttribute("key",value);