亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > WEB開發 > 正文

javaWeb學習一

2024-04-27 15:05:21
字體:
來源:轉載
供稿:網友
1. 使用 javaEE 版的 Eclipse 開發動態的 WEB 工程(JavaWEB 項目)1). 把開發選項切換到 JavaEE2). 可以在 Window -> Show View 中找到 Package Explorer, 并把其拖拽到開發區的左邊3). 在 Servers 面板中新建 Tomcat 服務器. 一定要關聯到 Tomcat 安裝的根目錄4). 新建一個 Dynamic Web PRoject. 其中 Target Runtime 需選擇 Tomcat6.0 5). 開發 Java WEB 應用6). 可以通過 run on server  來運行 WEB 項目. 2. Servlet 的 HelloWorld1). 創建一個 Servlet 接口的實現類. public class HelloServlet implements Servlet2). 在 web.xml 文件中配置和映射這個 Servlet<!-- 配置和映射 Servlet --><servlet><!-- Servlet 注冊的名字 --><servlet-name>helloServlet</servlet-name><!-- Servlet 的全類名 --><servlet-class>com.atguigu.javaweb.HelloServlet</servlet-class></servlet><servlet-mapping><!-- 需要和某一個 servlet 節點的 serlvet-name 子節點的文本節點一致 --><servlet-name>helloServlet</servlet-name><!-- 映射具體的訪問路徑: / 代表當前 WEB 應用的根目錄. --><url-pattern>/hello</url-pattern></servlet-mapping>3. Servlet 容器: 運行 Servlet、jsp、Filter 等的軟件環境. 1). 可以來創建 Servlet, 并調用 Servlet 的相關生命周期方法. 2). JSP, Filter, Listener, Tag ...4. Servlet 生命周期的方法: 以下方法都是由 Serlvet 容器負責調用. 1). 構造器: 只被調用一次. 只有第一次請求 Servlet 時, 創建 Servlet 的實例. 調用構造器. 這說明 Serlvet 的單實例的!2). init 方法: 只被調用一次. 在創建好實例后立即被調用. 用于初始化當前 Servlet. 3). service: 被多次調用. 每次請求都會調用 service 方法. 實際用于響應請求的. 4). destroy: 只被調用一次. 在當前 Servlet 所在的 WEB 應用被卸載前調用. 用于釋放當前 Servlet 所占用的資源. 5. load-on-startup 參數:1).  配置在 servlet 節點中:<servlet><!-- Servlet 注冊的名字 --><servlet-name>secondServlet</servlet-name><!-- Servlet 的全類名 --><servlet-class>com.atguigu.javaweb.SecondServlet</servlet-class><!-- 可以指定 Servlet 被創建的時機 --><load-on-startup>2</load-on-startup></servlet>2). load-on-startup: 可以指定 Serlvet 被創建的時機. 若為負數, 則在第一次請求時被創建.若為 0 或正數, 則在當前 WEB 應用被Serlvet 容器加載時創建實例, 且數組越小越早被創建. 6. 關于 serlvet-mapping:1). 同一個Servlet可以被映射到多個URL上,即多個 <servlet-mapping> 元素的<servlet-name>子元素的設置值可以是同一個Servlet的注冊名。 2). 在Servlet映射到的URL中也可以使用 * 通配符,但是只能有兩種固定的格式:一種格式是“*.擴展名”,另一種格式是以正斜杠(/)開頭并以“/*”結尾。<servlet-mapping><servlet-name>secondServlet</servlet-name><url-pattern>/*</url-pattern></servlet-mapping>OR<servlet-mapping><servlet-name>secondServlet</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping>注意: 以下的既帶 / 又帶擴展名的不合法. <servlet-mapping><servlet-name>secondServlet</servlet-name><url-pattern>/*.action</url-pattern></servlet-mapping>7. ServletConfig: 封裝了 Serlvet 的配置信息, 并且可以獲取 ServletContext 對象1). 配置 Serlvet 的初始化參數<servlet><servlet-name>helloServlet</servlet-name><servlet-class>com.atguigu.javaweb.HelloServlet</servlet-class><!-- 配置 Serlvet 的初始化參數。 且節點必須在 load-on-startup 節點的前面 --><init-param><!-- 參數名 --><param-name>user</param-name><!-- 參數值 --><param-value>root</param-value></init-param><init-param><param-name>passWord</param-name><param-value>1230</param-value></init-param><load-on-startup>-1</load-on-startup></servlet>2). 獲取初始化參數: > getInitParameter(String name): 獲取指定參數名的初始化參數    > getInitParameterNames(): 獲取參數名組成的 Enumeration 對象.         String user = servletConfig.getInitParameter("user");System.out.println("user: " + user);Enumeration<String> names = servletConfig.getInitParameterNames();while(names.hasMoreElements()){String name = names.nextElement();String value = servletConfig.getInitParameter(name);System.out.println("^^" + name + ": " + value);}3). 獲取 Serlvet 的配置名稱(了解)8. ServletContext1). 可以由  SerlvetConfig 獲取:ServletContext servletContext = servletConfig.getServletContext();2). 該對象代表當前 WEB 應用: 可以認為 SerlvetContext 是當前 WEB 應用的一個大管家. 可以從中獲取到當前 WEB 應用的各個方面的信息.①. 獲取當前 WEB 應用的初始化參數設置初始化參數: 可以為所有的 Servlet 所獲取, 而 Servlet 的初始化參數只用那個 Serlvet 可以獲取. <!-- 配置當前 WEB 應用的初始化參數 --><context-param><param-name>driver</param-name><param-value>com.MySQL.jdbc.Driver</param-value></context-param>方法:getInitParametergetInitParameterNames 代碼:ServletContext servletContext = servletConfig.getServletContext();String driver = servletContext.getInitParameter("driver");System.out.println("driver:" + driver);Enumeration<String> names2 = servletContext.getInitParameterNames();while(names2.hasMoreElements()){String name = names2.nextElement();System.out.println("-->" + name); }②. 獲取當前 WEB 應用的某一個文件在服務器上的絕對路徑, 而不是部署前的路徑getRealPath(String path);代碼:String realPath = servletContext.getRealPath("/note.txt");System.out.println(realPath);③. 獲取當前 WEB 應用的名稱: getContextPath()代碼:String contextPath = servletContext.getContextPath();System.out.println(contextPath); ④. 獲取當前 WEB 應用的某一個文件對應的輸入流. getResourceAsStream(String path): path 的 / 為當前 WEB 應用的根目錄. 代碼:InputStream is2 = servletContext.getResourceAsStream("/WEB-INF/classes/jdbc.properties");⑤. 和 attribute 相關的幾個方法: 9. GET 請求和 POST 請求:1). 使用GET方式傳遞參數:①. 在瀏覽器地址欄中輸入某個URL地址或單擊網頁上的一個超鏈接時,瀏覽器發出的HTTP請求消息的請求方式為GET。 ②. 如果網頁中的<form>表單元素的 method 屬性被設置為了“GET”,瀏覽器提交這個FORM表單時生成的HTTP請求消息的請求方式也為GET。 ③. 使用GET請求方式給WEB服務器傳遞參數的格式:  http://www.atguigu.com/counter.jsp?name=lc&password=123④. 使用GET方式傳送的數據量一般限制在 1KB 以下。 2). 使用 POST 方式傳遞參數:①. POST 請求方式主要用于向 WEB 服務器端程序提交 FORM 表單中的數據: form 表單的 method 置為 POST②. POST 方式將各個表單字段元素及其數據作為 HTTP 消息的實體內容發送給 WEB 服務器,傳送的數據量要比使用GET方式傳送的數據量大得多。  POST /counter.jsp HTTP/1.1referer: http://localhost:8080/Register.htmlcontent-type: application/x-www-form-urlencodedhost: localhost:8080content-length: 43name=zhangsan&password=123              --請求體中傳遞參數. 10. 如何在 Serlvet 中獲取請求信息:1). Servlet 的 service() 方法用于應答請求: 因為每次請求都會調用 service() 方法public void service(ServletRequest request, ServletResponse response)throws ServletException, IOExceptionServletRequest: 封裝了請求信息. 可以從中獲取到任何的請求信息.ServletResponse: 封裝了響應信息, 如果想給用戶什么響應, 具體可以使用該接口的方法實現. 這兩個接口的實現類都是服務器給予實現的, 并在服務器調用 service 方法時傳入. 2). ServletRequest: 封裝了請求信息. 可以從中獲取到任何的請求信息.①. 獲取請求參數: > String getParameter(String name): 根據請求參數的名字, 返回參數值. 若請求參數有多個值(例如 checkbox), 該方法只能獲取到第一個提交的值. > String[] getParameterValues(String name): 根據請求參數的名字, 返回請求參數對應的字符串數組. > Enumeration getParameterNames(): 返回參數名對應的 Enumeration 對象, 類似于 ServletConfig(或 ServletContext) 的 getInitParameterNames() 方法. > Map getParameterMap(): 返回請求參數的鍵值對: key: 參數名,  value: 參數值, String 數組類型. ②. 獲取請求的 URI:HttpServletRequest httpServletRequest = (HttpServletRequest) request;String requestURI = httpServletRequest.getRequestURI();System.out.println(requestURI); //  /day_29/loginServlet③. 獲取請求方式: String method = httpServletRequest.getMethod();System.out.println(method); //GET④. 若是一個 GET 請求, 獲取請求參數對應的那個字符串, 即 ? 后的那個字符串. String queryString = httpServletRequest.getQueryString();System.out.println(queryString); //user=atguigu&password=123456&interesting=game&interesting=party&interesting=shopping⑤. 獲取請求的 Serlvet 的映射路徑      String servletPath = httpServletRequest.getServletPath();   System.out.println(servletPath);  //  /loginServlet   ⑥. 和 attribute 相關的幾個方法:   3). HttpServletRequest: 是 SerlvetRequest 的子接口. 針對于 HTTP 請求所定義. 里邊包含了大量獲取 HTTP 請求相關的方法.  4). ServletResponse: 封裝了響應信息, 如果想給用戶什么響應, 具體可以使用該接口的方法實現. ①. *getWriter(): 返回 PrintWriter 對象. 調用該對象的 print() 方法, 將把 print() 中的參數直接打印到客戶的瀏覽器上. ②. 設置響應的內容類型: response.setContentType("application/msword");③. void sendRedirect(String location): 請求的重定向. (此方法為 HttpServletResponse 中定義.)
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久视频在线直播| 日韩av电影中文字幕| 疯狂蹂躏欧美一区二区精品| 色婷婷综合成人av| 欧美国产日韩中文字幕在线| 欧美日韩999| 中文字幕欧美亚洲| 97视频在线观看播放| 久久天堂电影网| 91精品一区二区| 久久深夜福利免费观看| 中文字幕亚洲欧美在线| 中文字幕欧美精品在线| 亚洲色图国产精品| 精品国产依人香蕉在线精品| 深夜福利日韩在线看| 欧美激情va永久在线播放| 日韩动漫免费观看电视剧高清| 97色在线视频观看| 亚洲精品福利资源站| 九九久久久久久久久激情| 欧美大胆a视频| 久久影院资源站| 成人国产精品久久久久久亚洲| 国产欧美在线观看| 国内精品400部情侣激情| 国产亚洲日本欧美韩国| 亚洲男人的天堂网站| 国产成人在线一区| 欧美日韩中文字幕在线视频| 久久久久国产精品www| 久久色在线播放| 亚洲福利影片在线| 欧美日韩国产影院| 91成品人片a无限观看| 秋霞成人午夜鲁丝一区二区三区| 91视频国产高清| 国内成人精品一区| 热久久美女精品天天吊色| 国产成人在线视频| 国产丝袜视频一区| 亚洲精品久久久久久久久久久| 国产欧美日韩中文字幕在线| 亚洲香蕉成视频在线观看| 欧美成人午夜视频| 91精品久久久久久久久久久久久久| 亚洲欧美中文字幕在线一区| 亚洲一区亚洲二区| 精品无人区乱码1区2区3区在线| 最新69国产成人精品视频免费| xx视频.9999.com| 欧美日韩在线免费观看| 欧美日韩国产限制| 欧美在线一区二区三区四| 欧美精品videossex88| 92裸体在线视频网站| 日韩久久精品电影| 在线视频中文亚洲| 在线亚洲午夜片av大片| 91免费综合在线| 日韩一区视频在线| 国产亚洲精品久久久久动| 国产精品成人一区二区三区吃奶| 欧美日韩国产综合新一区| 国产精品1区2区在线观看| 亚洲性日韩精品一区二区| 国产一区二区视频在线观看| 亚洲色图国产精品| 亚洲精品视频播放| 国产精品久久激情| 成人欧美一区二区三区黑人孕妇| 久久久亚洲精选| 欧美国产日韩免费| 亚洲色图欧美制服丝袜另类第一页| 欧美国产高跟鞋裸体秀xxxhd| 欧美特黄级在线| 成人国产精品色哟哟| 欧美日韩美女在线观看| 97热精品视频官网| 亚洲天堂网站在线观看视频| 欧美精品久久一区二区| 亚洲aa在线观看| 亚洲精品720p| 国产精品免费一区豆花| 色综合视频网站| 国产成人av在线| 日韩在线视频播放| 日韩av电影中文字幕| 97国产精品视频人人做人人爱| 992tv成人免费影院| 性视频1819p久久| 亚洲精品v欧美精品v日韩精品| 亚洲人成在线免费观看| 在线播放日韩精品| 欧美韩国理论所午夜片917电影| 中文字幕欧美日韩va免费视频| 国模视频一区二区| 欧美影院久久久| 亚洲精品av在线| 夜夜躁日日躁狠狠久久88av| 欧洲美女7788成人免费视频| 日本欧美精品在线| 97在线免费观看视频| 国产在线视频不卡| 欧美精品在线第一页| 中文字幕在线成人| 国产男人精品视频| 国产精品久久久久久超碰| 欧美在线一区二区三区四| 日韩在线观看免费高清| 久久久久女教师免费一区| 欧美激情在线一区| 日韩av成人在线| 91精品免费久久久久久久久| 欧美激情精品久久久久久| 国产日韩欧美黄色| 日韩成人高清在线| 亚洲综合精品一区二区| 欧美日韩亚洲成人| 国产亚洲精品va在线观看| 伊人成人开心激情综合网| 亚洲国产精品美女| 日韩中文在线视频| 国产精品揄拍一区二区| 国产亚洲欧美一区| 欧美在线视频免费观看| 日韩av网站大全| 亚洲国产精彩中文乱码av在线播放| 91地址最新发布| 中文字幕在线看视频国产欧美在线看完整| 九九热精品视频在线播放| 久久久在线视频| 亚洲国产精彩中文乱码av| 午夜精品美女自拍福到在线| 亚洲国产日韩一区| 日韩在线免费av| 国产一区私人高清影院| 成人黄色av免费在线观看| 九九视频这里只有精品| 日韩av一区二区在线| 色噜噜亚洲精品中文字幕| 欧洲成人免费视频| 亚洲精品一区久久久久久| 91热精品视频| 欧美日韩性生活视频| 欧美在线精品免播放器视频| 亚洲欧美另类人妖| 亚洲性夜色噜噜噜7777| 国产福利成人在线| 国产欧美日韩高清| 成人天堂噜噜噜| 亚洲最大的成人网| 久久久人成影片一区二区三区观看| 日韩一区视频在线| 91精品国产91久久久久久| 国产区亚洲区欧美区| 亚洲精品在线视频| 色噜噜狠狠狠综合曰曰曰| 欧美激情在线有限公司| 国产精品久久综合av爱欲tv| 欧美专区在线观看| 欧美日韩中文字幕| 69**夜色精品国产69乱| 欧美日韩国产成人|