1. 程式人生 > >JavaWeb隨心筆記(1)

JavaWeb隨心筆記(1)

不斷經歷失敗,僅僅只為了成功!

閱讀目錄

  1. JavaSE 標準版本
  2. JavaEE 企業版本
  3. JavaME 移動版本

  1. 伴隨伺服器的啟動,啟動Servlet
  2. 標籤值中大於0或等於0的表示伴隨伺服器的啟動,自動啟動Servlet
  3. 標籤值小於0或者沒有標籤的表示,選擇時再啟用
  4. 其中數值表示優先順序,在很多需要啟動的 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=路徑");
  1. 獲取檔名稱
  2. 獲取檔案路徑
  3. 建立檔案物件,並判斷是否存在
  4. 設定遊覽器的的型別為應用下載(application/x-msDownload)
  5. 設定遊覽器的下載方式
  //獲取下載名稱
  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);