筆記之_java整理servlet

Get請求與與post請求:
    Get不會改變服務器數據,只作查詢
    Post會對服務器數據作出修改,可評論的網頁
火狐的firebug附加組件,能夠測試網絡
延遲實例化,提供一個set方法,讓子類實現賦值
父類引用指向子類實現
Jquery  easyUI中文文檔
Pojo簡單的實體類對象
Json  Object和jsonArray不能夠直接進行日期轉換,List<>能夠
Html5刪除<!DOCTYPE  HTML後的內容>
引入jquery後用$()代替了window.onload、$(‘#dg’)代替了document.getElementById(‘dg’)
META-INF下新建resousecss、imge、js、plugins文件夾
doGe()要取數據的時候用,doPost()不須要取數據時
Int超過最大值,i的32次方+1就溢出,變爲0
((對象名)null).靜態方法,至關於直接調用靜態方法
Union合併數據,但排除重複的數據
Union all合併數據,不作數據重複處理
Java中:靜態代碼塊,構造代碼塊,普通構造的優先級
父類靜態代碼塊子類靜態代碼塊父類構造代碼塊子類構造代碼塊父類普通構造子類普通構造
CGI:通用網關接口(Common Gateway Interface)是一個Web服務器主機提供信息服務的標準接口。經過CGI接口,Web服務器就可以獲取客戶端提交的信息,轉交給服務器端的CGI程序進行處理,最後返回結果給客戶端。
組成CGI通訊系統的是兩部分:一部分是html頁面,就是在用戶端瀏覽器上顯示的頁面。另外一部分則是運行在服務器上的CGI程序
CGI 在jsp中 叫Servlet
在服務器中,像html,css,javascript, 圖片,文本文件,xml 直接交給瀏覽器來處理的,除了以上文件之外的信息,都是要交給服務器處理
servlet容器又叫作 servlet引擎
                      InputStream            OutputStream
Servlet引擎:接收用戶傳過來的數據解析處理響應給用戶
                  I/O流( 二進制數據 ) 
servlet容器,它裏面的每個servlet小程序都有本身的生命週期
  Servlet都有生命週期:   public  class  A  extends  HttpServlet
   初始化   init()            初始化數據
            Init(ServletConfig )  讀取自己的servlet配置文件,初始化數據
           重點: init方法  只能初始化一次
                  init方法何時初始化? 
                     1)、tomcat啓動的時候(你要初始化一些數據,公用的數據)
                         <servlet>
                                  <servlet-name>惟一名稱隨便取</servlet-name> 
<servlet-class>編寫的servlet完整類名</servlet-class>
 < init-param>
         <param-name>參數名</param-name>
          <param-value>值</param-value>
   </ init-param>
   <init-param>
           <param-name>參數名</param-name>
           <param-value>值</param-value>
     </ init-param> 
<load-on-startup>
0-999999數字越小,優先級就越高
</load-on-startup>
</servlet> 
                     2)、當訪問servlet時候 (默認的)
                         你必需要配置url映射
                         
                         <servlet>
                        </servlet>
                         <servlet-mapping>
                         </servlet-mapping>
jsp九大內置對象,3大指令,7個動做
servlet 九大內置對象
 page             頁面
 pageContext      上下文(全局對象)  在servlet中與 jsp中的application等同效果
 request           請求
 response          響應
 out               輸出
session            會話(當前用戶,全部頁面均可以共用的數據)  一次完整的會話,打開瀏覽器,輸出網址,再新建頁,關閉瀏覽器
 application         全部用戶,全部頁面均可以共用的數據
 config             配置信息  (web.xml)
 exception          異常
  1)、page,request,session,application   取值和賦值
      xx.setAttribute("鍵名", 值);    賦值
      Object obj= xx.getAttribute("鍵名");     取值   被EL表達式給優化了 
       ${鍵名}   
它的查詢順序就: page-->request-->session-->application -->什麼都不顯示
            ${pageScope}-->${requestScope} -->${sessionScope}-->${applicationScope}
scope:做用域      
        <c:forEach    item="${xx}"  var="a"> </c:forEach>
 2)、pageContext經常使用方法
     pageContext.request.contextPath  取得項目名稱
 3)、request經常使用方法
     String 值=requet.getParameter("鍵");
     String[] 值=request.getParameterValues("鍵");  //checkbox複選框、name標籤、 text
     String ip=reqeust.getRemoteAddr()  //取得客戶端的ip地址
     String url=request.getRequestURI();//取得當前請求的地址,不帶參數   /web/test/1.jsp  
     Enumeration<String> keys=req.getParameterNames();  //獲得全部的參數的名稱   /web/test/1.jsp?id=1&name=test&te=3
       取得的結果是:id,name,te
       while(keys.hasMoreElements()){
         String k=keys.nextElement();
         //作你想的
         String value=req.getParameter(k);            
         }
      轉發   把數據存放到request的setAtrribute裏面,url地址不會發生變化
      request.getRequestDispatcher(頁面).forward(request,response);
      HttpSession session=request.getSession();  //取得會話
      SevletContext application=request.getServletContext();  //取得上下文應用
      request.setCharaterEncoding("UTF-8");   //設定請求編碼 
4)、response  響應
     response.setCharaterEncoding("UTF-8");  //響應的編碼
response.setContextType("text/html;charset=UTF-8");  //響應給瀏覽器的頭文件,告訴瀏覽器這個是網頁,編碼格式是UTF-8
response.setContextType("text/xml;charset=UTF-8");   //響應給瀏覽器的頭文件,告訴瀏覽器這個是xml文件,編碼格式是UTF-8 
response.setContextType("application/x-download");   //響應給瀏覽器的頭文件,告訴瀏覽器這個文件,須要你使用自帶的文件下載器來處理
response.addHeader("Content-Disposition","attachment;filename=baidu.exe");      PrintWriter  out=response.getWriter();
    out.print(數據);
    out.flush();  //刷新
    out.close();  //關閉
    重定向  不能推薦request中的數據 可是能夠對url地址作一些修改   1.jsp?id=2
    response.sendRedirect("頁面");
5)、session 會話
    session.getId() 會話id 惟一的
    session.clear()       //清除全部的會話數據
    session.removeAttribute(鍵) ;  根據鍵清除數據
6)、application  全局應用 上下文
    servlet中寫法: request.getServletContext().removeAttribute(鍵);
7)、servlet 生命週期
    init()  初始化  只作一次      
    service() 服務 它會自動的根據請求的類型(GET/POST) 調用doGet()/doPost()方法,
destory()  銷燬  只作一次(web容器 關閉時候 )
8)、jsp頁面之間傳遞參數有幾種方式?
        表單傳參
        url傳參
        session傳參  <% session.setAttribute("xx",1);  %>  另外頁面 ${ sessionScope.xx }
        request傳參
        數據庫
9)、不用<servlet>  2.5 配置了,  servlet 3.0,用註解配置
   @WebServlet(value={"/search.do" , "/show.do" })
   public class MyServlet  extends HttpServlet{
   }
   之前
     web.xml
     <servlet>
            <servlet-name>xx</servlet-name>
           <servlet-class>xxxxx.xxxx.xxx</servlet-class>
      </servlet>

     <servlet-mapping>
           <servlet-name>xx</servlet-name>
           <url-pattern>/search.do</url-pattern>
           <url-pattern>/show.do</url-pattern>
      </servlet-mapping>
找到maven Repository倉庫:
百度搜索-->maven repository-->http://mvnrepository.com/官網-->點擊主頁右上角Indexed Repositories (244)-->找到maven點擊Central-->http://central.Maven.org/maven2/
-->進入maven倉庫





































編碼過濾器:
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class EncodingFilter implements Filter {
    private String encoding = "UTF-8";
    public void init(FilterConfig config) throws ServletException {
        if (config.getInitParameter("encoding") != null) {
            encoding = config.getInitParameter("encoding").trim();
        }
    }
    public void doFilter(ServletRequest req, ServletResponse resp,
            FilterChain chain) throws IOException, ServletException {
        // 設定全部請求的編碼
        req.setCharacterEncoding(this.encoding);
        resp.setCharacterEncoding(this.encoding);
        resp.setContentType("text/html;charset=" + this.encoding);
        //放行
        chain.doFilter(req, resp);
    }
    // tomcat中止就被銷燬
    public void destroy() {
    }
}
編碼過濾器web.xml配置:
<filter>
    <filter-name>EncodingFilter</filter-name>
    <filter-class>com.wisezone.web.filter.EncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
</filter>
jsp頁面日期格式:
    導入%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %
    格式日期<fmt:formatDate value="${s.mes_date }" pattern="yyyy-MM-dd"/>





環境變量配置:鼠標右鍵點擊計算機-->屬性-->更改設置-->高級-->環境變量系統變量
    Jdk配置:
        變量1   名字:JAVA_HOME  值:找到安裝的jdk的路徑
變量2   名字:path     值: .; %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
變量3   名字:CLASSPATH值: %JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
    Tomcat配置:
        變量1   名字: CATALINA_BASE   值:找到安裝的tomcat的路徑
變量2   名字:path    值: .; %CATALINA_HOME%\lib;%CATALINA_HOME%\bin
變量3   名字: CATALINA_HOME值: 找到安裝的tomcat的路徑
    Mawen配置:
        變量1   名字: MAVEN_HOME  值:找到安裝的maven的路徑
變量2   名字:path    值: .; %MAVEN_HOME%\bin
使用maven
    Eclipse中
安裝helpEclipse marketplace.. find中搜索maven選中圖標爲m2e的軟件install爲uninstall表示已經裝過了
配置
配置準備:
在一個比較大的硬盤中新建一個文件夾mavenpository/pository
    安裝路徑下找到config/settings.xml並配置
<mirrors>中添加
    <!--阿里雲提供倉庫 -->
    <mirror>  
      <id>alimaven</id>  
      <name>aliyun maven</name>  
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>  
      <mirrorOf>central</mirrorOf>          
    </mirror> 
    <!--國外官網 -->
    <mirror>  
      <id>mavencentral</id>  
      <name>central maven</name>  
      <url>http://central.maven.org/maven2/</url>  
      <mirrorOf>central</mirrorOf>          
</mirror>  
        <localRepository>後添加
<localRepository>E:\mvnrepository\repository</localRepository>
Eclipsewindowsprefeencesmaveninstallationsadd輸入安裝maven路徑點擊Directory應用
Eclipsewindowsprefeences User setting勾選添加的maven文件中選中config/settings.xml
    建立maven
Newothermavenmaven project勾選create a simple project下一步填寫groupe Id、artiface Id、version、pakaging選war、name等有父級項目的填寫對應信息
    項目建立好後點開pom.xml文件添加內容
        <!-- 引用mysql,等項目要用到jar包 -->
    <dependencies>
        <!-- https://mvnrepository.com/artifact/com.oracle/classes12 -->
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>classes12</artifactId>
            <version>10.2.0.2.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl -->
        <dependency>
            <groupId>javax.servlet.jsp.jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
        </dependency>
    </dependencies>
        <!-- 構造 編譯項目,使用 jdk 1.8的環境 -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.2</version>
                <configuration>
                    <target>1.8</target>
                    <source>1.8</source>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>
而後將Oracle數據庫的jar包複製到D:\mvnrepository\repository\com\oracle
\classes12\10.2.0.2.0中並把文件名改爲classes12-10.2.0.2.0.jar
相關文章
相關標籤/搜索