文章目錄
- 一、WEB三大規范
- 二、j2ee相關接口(上)
- 1.javax.servlet.Servlet
- 2.javax.servlet.http.HttpServlet
- 3.javax.servlet.ServletRequest
- 4.javax.servlet.http.HttpServletRequest
- 5.javax.servlet.ServletResponse
- 6.javax.servlet.http.HttpServletResponse
- 7. javax.servlet.ServletContext
- 8. javax.servlet.ServletConfig
- 總結
一、WEB三大規范
- servlet
- filter
- listener
二、j2ee相關接口(上)
1.javax.servlet.Servlet
- servlet用于獲取請求數據、處理請求、完成響應
- 使用servlet可以實現servlet接口并配置web.xml,但是不推薦
- init(ServletConfig config);//servlet對象創建的時候執行ServletConfig:代表的是該servlet對象的配置信息
- service(ServletRequest request,ServletResponse response);//每次請求都會執行
- destroy();//servlet銷毀的時候執行
2.javax.servlet.http.HttpServlet
- 使用servlet可以繼承HttpServlet并復寫HttpServlet類的doGet、doPost方法并配置web.xml
- init();//servlet對象創建的時候執行
- doGet(HttpServletRequest request,HttpServletResponse response);//每次get請求都會執行
- doPost(HttpServletRequest request,HttpServletResponse response);//每次post請求都會執行
- destroy();//servlet銷毀的時候執行
3.javax.servlet.ServletRequest
4.javax.servlet.http.HttpServletRequest
- 獲得請求行
- String getContextPath()獲得”/“+web應用名稱,例如/WEB15_request
- String getMethod()
- String getRequestURI()獲得相對web應用地址/WEB15_request/line
- String getRequestURL()獲得絕對路徑http://localhost:8080/WEB15_request/line
- String getRemoteAddr()獲得訪問的客戶端IP地址
- String getQueryString()get提交url地址后的參數字符串username=lisi&password=123
- String getProtocol();獲取請求行中的協議名和版本
- String getServletPath();
- String getRemotePort();
- String getRemoteHost();
- String getLocalAddr();
- String getLocalName();
- String getLocalHost();
- int getLocalPort();
- String getServerName();
- int getServerPort();
- String getScheme();//獲取請求協議名
- StringBuffer getRequestURL();
- 獲得請求頭
- String getHeader(String name)
- Enumeration getHeaders(String name)
- Enumeration getHeaderNames()
- Long getDateHeader(String name)
- int getIntHeader(String name)
- String getContentType()
- int getContentLength()
- String getCharacterEncoding()
- 獲得請求體
- String getParameter(String name) 多個只獲得一個,沒有則返回null
- Map<String,String[]> getParameterMap()獲得指定參數名對應的所有鍵值
- String[] getParameterValues(String name)獲得指定參數名對應的所有值(少用)
- Enumeration getParameterNames()
- 亂碼:瀏覽器的中文用UTF-8編碼,而HTTP協議使用iSO8859-1編碼。不同的瀏覽器接收和發送數據取決于瀏覽器類型,通過Http請求體中的User-Agent屬性可以辨別
- post亂碼 request.setCharacterEncoding(“UTF-8”);
- get亂碼 String parameter=new String(parameter.getbytes(“iso8859-1”),“utf-8”);
- 轉發 request.getRequestDispatcher(”/?”).forward(req,resp);
- 域對象
- Object setAttribute (String name, Object o)set注意名字相同時則覆蓋
- String getAttribute(String name)
- void removeAttribute(String name)
5.javax.servlet.ServletResponse
6.javax.servlet.http.HttpServletResponse
- 設置響應行
- void setStatus(int sc)
- void sendError(int sc,[String messge])
- 設置響應頭(值不重復)
- void addHeader(String name, String value)
- void setHeader(String name, String value);
- 設置定時刷新的頭:setHeader(“refresh”, “5;url=http://www.baidu.com”);
- void addIntHeader(String name, int value)
- void setIntHeader(String name, int value)
- void addDateHeader(String name, long date)
- void setDateHeader(String name, long date)
- void setContentLength(int len)
- void setContentType(String type)
- void setLocale(Locale loc)
- void setCharacterEncoding(String charset)
- 設置響應體
- getWriter().write(“”)字符串,可以插入標簽
- getOutputStream().write(byte[] bytes) 因為getWriter()之前已調用getOutputStream(),故兩者不能同時使用
- setHeader(“content-Type”,“text/html;charset=utf-8”);中文亂碼
- sendRedirect(“/WEB14/servlet2”);重定向
- setStatus(302);setHeader(“Location”, “/WEB14/servlet2”);
7. javax.servlet.ServletContext
- 獲得ServletContext
- ServletConfig.getServletContext();
- this.getServletContext();(推薦)
- 獲得web.xml全局的初始化參數 getInitParameter(String name);
- 域對象(整個web應用)
- void setAtrribute(String name,Object obj);
- Object getAttribute(String name);
- void removeAttribute(String name);
- WebContext目錄內任何資源絕對路徑
- String getRealPath(String path);//:/WEB-INF/
- InputStream getResourceAsStream(String path); 以/開頭path相對WebContext目錄InputStream
8. javax.servlet.ServletConfig
- 獲得該servlet在web.xml上的name String getServletName();
- 獲得該servlet的初始化的參數
- String getInitParameter(String name);
- Enumeration getInitParameterNames();
- 獲得Servletcontext對象 ServletContext getServletContext();
總結
本文介紹了的j2ee規范(上),如有問題歡迎私信和評論