整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          「java就業班」2019從網頁搭建入門JavaWe

          「java就業班」2019從網頁搭建入門JavaWeb

          java就業班」2019從網頁搭建入門JavaWeb

          來百度APP暢享高清圖片

          //下栽のke:chaoxingit.com/1534/

          從網頁搭建入門到JavaWeb:2019版詳解

          一、引言

          隨著互聯網技術的飛速發展,JavaWeb已經成為了一種非常流行的開發技術。通過JavaWeb,我們可以快速地構建出功能強大、安全可靠的Web應用程序。本文將詳細介紹如何從網頁搭建入門到JavaWeb,幫助你掌握這門技術。

          二、JavaWeb簡介

          JavaWeb指的是使用Java技術開發的Web應用程序。它是基于Java平臺的一種開發模式,用于構建和部署在Web服務器上運行的應用程序。JavaWeb通常涉及以下關鍵組件和技術:

          1. Servlet: Servlet是Java編寫的服務器端程序,主要用于處理HTTP請求和生成HTTP響應。它們運行在支持Servlet規范的Web服務器上,如Apache Tomcat、Jetty等。
          2. JSP(JavaServer Pages): JSP是一種服務器端的Java技術,用于創建動態Web頁面。JSP頁面可以包含HTML、Java代碼片段和JSP標簽庫,它們會在服務器端被解析和執行,最終生成HTML響應發送給客戶端。
          3. Servlet容器: Servlet容器是一個Web服務器組件,用于管理和執行Servlet。它負責將HTTP請求路由到相應的Servlet,并將Servlet生成的響應發送回客戶端。
          4. JDBC(Java Database Connectivity): JDBC是Java提供的用于與數據庫交互的API。它允許Java應用程序通過標準的數據庫操作語句與各種關系型數據庫進行通信。
          5. Web容器: Web容器是一種用于托管和運行Web應用程序的環境。它提供了Servlet容器、JSP引擎以及其他必要的組件,使得開發者可以部署和管理JavaWeb應用程序。
          6. MVC架構(Model-View-Controller): MVC是一種常用的設計模式,用于將應用程序分為三個核心部分:模型(Model)、視圖(View)和控制器(Controller)。在JavaWeb開發中,開發者通常使用MVC架構來組織和管理應用程序的代碼。
          7. Web框架: JavaWeb開發中常用的框架包括Spring MVC、Struts、JSF(JavaServer Faces)等。這些框架提供了各種功能和工具,簡化了開發過程,并提高了代碼的可維護性和可擴展性。

          JavaWeb應用程序通常遵循HTTP協議,與客戶端通過HTTP請求和響應進行通信。它們可以處理各種類型的請求,包括GET、POST等,并能夠生成動態內容以及與數據庫等外部資源進行交互。 JavaWeb的發展已經成為構建企業級應用程序的主流方式之一,它提供了強大的功能和豐富的生態系統,使得開發者能夠構建高性能、可靠和安全的Web應用程序。

          三、學習資源

          要想入門JavaWeb,你可以選擇以下學習資源:

          1. 官方文檔:Java官方文檔提供了豐富的JavaWeb學習資源,包括API文檔、框架文檔和教程等。
          2. 培訓課程:網絡上有很多免費的JavaWeb培訓課程,這些課程可以幫助你快速入門。
          3. 書籍:閱讀一些經典的JavaWeb書籍,如《Head First Servlets and JavaServer Pages》等,可以幫助你深入理解JavaWeb技術。

          四、搭建開發環境

          搭建JavaWeb開發環境涉及到幾個主要組件,包括Java Development Kit (JDK)、集成開發環境(IDE)、Servlet容器等。以下是從頭開始搭建JavaWeb開發環境的步驟:

          1. 安裝Java Development Kit (JDK):
          • 首先,你需要安裝Java Development Kit,它包含了Java編譯器(javac)和Java運行時環境(JRE)。
          • 前往Oracle JDK官網或OpenJDK官網下載并安裝最新版本的JDK。
          • 設置JAVA_HOME環境變量,指向你的JDK安裝目錄。
        1. 安裝集成開發環境(IDE):
          • 選擇一個JavaWeb開發的IDE。Eclipse、IntelliJ IDEA和NetBeans是常見的選擇。
          • 下載并安裝你選擇的IDE。例如,你可以在IntelliJ IDEA官網下載IntelliJ IDEA。
        2. 安裝Servlet容器:
          • 選擇一個Servlet容器,例如Apache Tomcat。
          • 前往Apache Tomcat官網下載最新版本的Tomcat。
          • 解壓下載的文件到你想要安裝的目錄。
        3. 創建JavaWeb項目:
          • 打開你的IDE,創建一個新的JavaWeb項目。
          • 在項目中配置Servlet容器,以便在開發過程中能夠輕松部署和調試。
        4. 編寫第一個Servlet:
          • 在項目中創建一個Servlet類,這是JavaWeb應用程序的基本處理單元。
          • 實現doGet和/或doPost方法,用于處理HTTP請求和生成HTTP響應。
        5. 配置Servlet容器:
          • 配置Servlet容器,告訴它在哪里找到你的Web應用程序。
          • 在Tomcat中,你需要配置server.xml文件,添加一個新的<Context>元素,指向你的項目目錄。
        6. 部署和運行:
          • 將你的JavaWeb項目部署到Servlet容器中。
          • 啟動Servlet容器,查看你的JavaWeb應用程序是否成功運行。
        7. 學習HTML和基本前端知識:
          • JavaWeb開發通常涉及與前端進行交互,因此學習HTML和基本的前端知識對于構建用戶界面是很有幫助的。

          在完成上述步驟后,你就建立了一個基本的JavaWeb開發環境,并且能夠開始編寫和部署簡單的Web應用程序。從這里開始,你可以深入學習JavaWeb的各個方面,包括Servlet、JSP、數據庫連接等,以構建更復雜和功能豐富的Web應用程序。

          五、網頁搭建基礎

          網頁搭建是學習JavaWeb的基礎,主要包括HTML、CSS和JavaScript等基礎知識。通過學習這些基礎知識,你可以快速搭建出基本的網頁。

          六、JavaWeb核心技術

          JavaWeb 是使用 Java 技術進行 Web 開發的一種方式,它涵蓋了多個核心技術和框架。以下是 JavaWeb 的一些核心技術:

          1. Servlet:
          • Servlet 是運行在服務器端的 Java 應用程序,主要用于處理客戶端的請求并生成響應。
          • Servlet 繼承自 javax.servlet.Servlet 接口,通過覆蓋 doGet 和 doPost 等方法來處理不同類型的 HTTP 請求。
        8. JSP (JavaServer Pages):
          • JSP 允許在 HTML 頁面中嵌入 Java 代碼,它最終會被翻譯成 Servlet。
          • JSP 提供了簡化開發的方式,允許開發人員在頁面中使用標簽庫來調用 JavaBean 等組件。
        9. Servlet容器:
          • Servlet 容器是一個 Web 服務器或應用服務器組件,負責管理 Servlet 的生命周期、請求和響應。
          • 常見的 Servlet 容器包括 Apache Tomcat、Jetty 和 WildFly。
        10. JavaBeans:
          • JavaBeans 是一種可重用的 Java 組件,通常用于在 Web 應用程序中封裝數據和業務邏輯。
          • 在 JavaWeb 中,JavaBeans 可以被用于從數據庫中獲取數據、在頁面中展示數據等任務。
        11. JDBC (Java Database Connectivity):
          • JDBC 是 Java 用于與數據庫進行交互的 API。
          • 在 JavaWeb 開發中,使用 JDBC 可以連接數據庫、執行 SQL 查詢和更新等操作。
        12. JPA (Java Persistence API):
          • JPA 是 Java 用于對象關系映射(ORM)的 API,簡化了 Java 對象與數據庫表之間的映射。
          • Hibernate、EclipseLink 等框架實現了 JPA 規范,使得持久化操作更加方便。
        13. Spring框架:
          • Spring 是一個綜合性的 Java 開發框架,提供了依賴注入、面向切面編程、事務管理等功能。
          • Spring 的模塊中有 Spring MVC 用于構建 Web 應用,Spring Boot 則簡化了 Spring 應用程序的搭建。
        14. Struts框架:
          • Struts 是一個基于 MVC 模式的 Web 應用框架,用于簡化開發復雜的 Web 應用程序。
          • Struts 的核心是一個控制器,負責接收用戶請求,并將其分發給相應的處理器(Action)。
        15. Web Services:
          • JavaWeb 中常用的 Web 服務技術包括 SOAP(Simple Object Access Protocol)和 REST(Representational State Transfer)。
          • JAX-RS(Java API for RESTful Web Services)是 Java EE 中用于構建 RESTful Web 服務的 API。
        16. Security:
          • JavaWeb 應用程序的安全性是至關重要的。Java 提供了一些安全機制,例如 Java Authentication and Authorization Service (JAAS) 和 Java Security Architecture。

          以上是 JavaWeb 的一些核心技術,這些技術一起構成了一個完整的 JavaWeb 開發生態系統。開發人員可以根據項目需求選擇適當的技術和框架來構建穩健、高效的 Web 應用程序。

          七、實踐項目

          實踐項目是學習JavaWeb的重要環節,你可以選擇以下項目進行實踐:

          1. 創建一個簡單的Web應用程序,包括用戶注冊、登錄和信息展示等功能;
          2. 實現一個博客網站,包括文章列表、評論和發布等功能;
          3. 與第三方API進行交互,實現一個基于API的移動應用程序。

          通過實踐項目,你可以更好地掌握JavaWeb技術,并提高自己的編程能力和團隊協作能力。

          八、總結與展望

          通過本文的介紹,相信你已經對從網頁搭建入門到JavaWeb有了更深入的了解。要想成為一名優秀的JavaWeb開發者,你需要不斷學習、實踐和總結。同時,隨著技術的不斷發展,你需要不斷關注新技術和趨勢,并努力提升自己的技能水平。希望本文能夠幫助你成功邁向后端工程師的高階之路!

          .把JSP頁面放在WEB-INF目錄下,存放在此目錄或者它的子目錄里的任何東西都受到了保護。

          2.使用servlet過濾器過濾對jsp頁面的請求。

          import	javax.servlet.*;	
          import javax.servlet.http.HttpServletRequest; 
          import javax.servlet.http.HttpServletResponse;
          import javax.servlet.http.HttpSession; 
          import java.io.IOException; 
          import java.io.Writer;
          public class AdminsessionFilter implements Filter {
          @Override
          public void init(FilterConfig filterConfig)throws ServletException {
          }
          @Override
          public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain)
          throws IOException,ServletException
          
          {
          
          	HttpServletRequest httpServletRequest=(HttpServletRequest)request;
          	HttpServletResponse httpServletResponse=(HttpServletResponse)response;
          	
          	String url=httpServletRequest.getRequestURI(); 
          	if(url!=null && url.endsWith(".jsp")){
          		String contextPath=httpServletRequest.getContextPath();
          		httpServletResponse.sendRedirect(contextPath+"/index.html");
          		return;
          	}
          	chain.doFilter(httpServletRequest,httpServletResponse);
          }
          
          @Override
          public void destroy(){
          }
          
          
          }

          3.在部署文件web.xml中使用安全限制.配置如下:

          SP指令是指:用于設置JSP頁面相關屬性的一個語法命令,例如:設置頁面編碼字符集、導入其他包等等。JSP中提供了三個指令,分別是:page指令、include指令、taglib指令。其中page指令用于設置JSP頁面屬性,include指令用于引入其他的JSP文件,taglib指令用于引入標簽庫。這一小節內容介紹include指令的使用。

          1.1、include指令作用

          include指令作用:將指定的文件引入到當前JSP頁面里面。include指令會將引入的文件內容嵌入到當前JSP頁面中的對應位置。

          <%@ include file="文件的相對路徑" %>

          案例代碼:

          • 創建一個header.jsp文件。
          <%@ page contentType="text/html;charset=UTF-8" language="java" %>
          <html>
          <head>
              <title>這是HTML頭部</title>
          </head>
          • 創建一個include.jsp文件。
          <%@ page contentType="text/html;charset=UTF-8" language="java" %>
          <%-- 引入頭部文件 --%>
          <%@ include file="header.jsp" %>
          <body>
          
          <div style="background-color: cadetblue">
              這是正文內容區域
          </div>
          
          <%-- 引入底部文件 --%>
          <%@ include file="footer.html" %>
          </body>
          </html>
          • 創建一個footer.jsp文件。
          <%@ page contentType="text/html;charset=UTF-8" language="java" %>
          <div style="background-color: antiquewhite;">
            這是footer底部內容區域
          </div>

          啟動Tomcat容器,瀏覽器訪問http://localhost:8080/servlet/include.jsp,結果如下:

          1.2、include指令的本質

          include指令的本質是什么呢???我們來查看下編譯之后的Java源代碼,找到上面include.jsp文件編譯之后的源文件,如下所示:

          /*
           * Generated by the Jasper component of Apache Tomcat
           * Version: Apache Tomcat/8.5.98
           * Generated at: 2024-02-25 05:06:41 UTC
           * Note: The last modified time of this file was set to
           *       the last modified time of the source file after
           *       generation to assist with modification tracking.
           */
          package com.gitcode.servlet;
          
          import javax.servlet.*;
          import javax.servlet.http.*;
          import javax.servlet.jsp.*;
          
          public final class include_jsp extends org.apache.jasper.runtime.HttpJspBase
              implements org.apache.jasper.runtime.JspSourceDependent,
                           org.apache.jasper.runtime.JspSourceImports {
          
            private static final javax.servlet.jsp.JspFactory _jspxFactory=  javax.servlet.jsp.JspFactory.getDefaultFactory();
          
            private static java.util.Map<java.lang.String,java.lang.Long> _jspx_dependants;
          
            static {
              _jspx_dependants=new java.util.HashMap<java.lang.String,java.lang.Long>(2);
              _jspx_dependants.put("/footer.jsp", Long.valueOf(1708837593266L));
              _jspx_dependants.put("/header.jsp", Long.valueOf(1708837593271L));
            }
          
            private static final java.util.Set<java.lang.String> _jspx_imports_packages;
          
            private static final java.util.Set<java.lang.String> _jspx_imports_classes;
          
            static {
              _jspx_imports_packages=new java.util.HashSet<>();
              _jspx_imports_packages.add("javax.servlet");
              _jspx_imports_packages.add("javax.servlet.http");
              _jspx_imports_packages.add("javax.servlet.jsp");
              _jspx_imports_classes=null;
            }
          
            private volatile javax.el.ExpressionFactory _el_expressionfactory;
            private volatile org.apache.tomcat.InstanceManager _jsp_instancemanager;
          
            public java.util.Map<java.lang.String,java.lang.Long> getDependants() {
              return _jspx_dependants;
            }
          
            public java.util.Set<java.lang.String> getPackageImports() {
              return _jspx_imports_packages;
            }
          
            public java.util.Set<java.lang.String> getClassImports() {
              return _jspx_imports_classes;
            }
          
            public javax.el.ExpressionFactory _jsp_getExpressionFactory() {
              if (_el_expressionfactory==null) {
                synchronized (this) {
                  if (_el_expressionfactory==null) {
                    _el_expressionfactory=_jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();
                  }
                }
              }
              return _el_expressionfactory;
            }
          
            public org.apache.tomcat.InstanceManager _jsp_getInstanceManager() {
              if (_jsp_instancemanager==null) {
                synchronized (this) {
                  if (_jsp_instancemanager==null) {
                    _jsp_instancemanager=org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(getServletConfig());
                  }
                }
              }
              return _jsp_instancemanager;
            }
          
            public void _jspInit() {
            }
          
            public void _jspDestroy() {
            }
          
            public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
                throws java.io.IOException, javax.servlet.ServletException {
          
              final java.lang.String _jspx_method=request.getMethod();
              if (!"GET".equals(_jspx_method) && !"POST".equals(_jspx_method) && !"HEAD".equals(_jspx_method) && !javax.servlet.DispatcherType.ERROR.equals(request.getDispatcherType())) {
                response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, "JSP 只允許 GET、POST 或 HEAD。Jasper 還允許 OPTIONS");
                return;
              }
          
              final javax.servlet.jsp.PageContext pageContext;
              javax.servlet.http.HttpSession session=null;
              final javax.servlet.ServletContext application;
              final javax.servlet.ServletConfig config;
              javax.servlet.jsp.JspWriter out=null;
              final java.lang.Object page=this;
              javax.servlet.jsp.JspWriter _jspx_out=null;
              javax.servlet.jsp.PageContext _jspx_page_context=null;
          
          
              try {
                response.setContentType("text/html;charset=UTF-8");
                pageContext=_jspxFactory.getPageContext(this, request, response,
                			null, true, 8192, true);
                _jspx_page_context=pageContext;
                application=pageContext.getServletContext();
                config=pageContext.getServletConfig();
                session=pageContext.getSession();
                out=pageContext.getOut();
                _jspx_out=out;
          
                out.write('\r');
                out.write('\n');
                out.write('\r');
                out.write('\n');
                out.write("\r\n");
                out.write("<html>\r\n");
                out.write("<head>\r\n");
                out.write("    <title>這是HTML頭部</title>\r\n");
                out.write("</head>");
                out.write("\r\n");
                out.write("<body>\r\n");
                out.write("\r\n");
                out.write("<div style=\"background-color: cadetblue\">\r\n");
                out.write("    這是正文內容區域\r\n");
                out.write("</div>\r\n");
                out.write("\r\n");
                out.write('\r');
                out.write('\n');
                out.write("\r\n");
                out.write("<div style=\"background-color: antiquewhite;\">\r\n");
                out.write("  這是footer底部內容區域\r\n");
                out.write("</div>");
                out.write("\r\n");
                out.write("</body>\r\n");
                out.write("</html>");
              } catch (java.lang.Throwable t) {
                if (!(t instanceof javax.servlet.jsp.SkipPageException)){
                  out=_jspx_out;
                  if (out !=null && out.getBufferSize() !=0)
                    try {
                      if (response.isCommitted()) {
                        out.flush();
                      } else {
                        out.clearBuffer();
                      }
                    } catch (java.io.IOException e) {}
                  if (_jspx_page_context !=null) _jspx_page_context.handlePageException(t);
                  else throw new ServletException(t);
                }
              } finally {
                _jspxFactory.releasePageContext(_jspx_page_context);
              }
            }
          }

          通過上面源代碼,可以看到,使用include指令引入的兩個文件,最終都會將兩個文件中的內容直接嵌入到當前include.jsp文件里面,如下所示:

          所以include指令的本質就是將引入文件中的內容,直接拼接到當前JSP頁面的對應位置。這里也就會存在一個問題,引入的JSP文件中,不能存在和當前JSP頁面相同的變量名稱,因為變量名稱相同會導致編譯失敗。另外,使用include指令引入其他的JSP文件時候,只會生成訪問的那個JSP文件的源代碼,被引入的JSP文件不會生成對應的源代碼。

          以上,就是include指令的使用及其本質。

          今天就到這里,未完待續~~


          主站蜘蛛池模板: 中文字幕无码免费久久9一区9| 午夜性色一区二区三区不卡视频| 日韩美女视频一区| 国产高清在线精品一区| 国产亚洲福利一区二区免费看 | 日韩人妻无码一区二区三区久久99 | 国产精品一区二区av不卡| 无码av人妻一区二区三区四区| 日韩精品无码视频一区二区蜜桃 | 国产亚洲一区二区三区在线| 亚洲熟妇成人精品一区| 无码人妻精品一区二区| 日本不卡一区二区视频a| 亚洲日本一区二区三区在线不卡 | 日韩视频一区二区在线观看| 精品无人乱码一区二区三区| 亚洲熟妇av一区| 亚洲国产精品综合一区在线| 精品黑人一区二区三区| 3d动漫精品成人一区二区三| 久久久一区二区三区| 性无码一区二区三区在线观看| 国产色综合一区二区三区| 久久99精品国产一区二区三区| 无人码一区二区三区视频| 久久精品人妻一区二区三区| 上原亚衣一区二区在线观看| 日韩精品一区二区三区大桥未久| 日韩一区二区视频在线观看| 海角国精产品一区一区三区糖心| 国产日韩一区二区三区在线观看 | 国产精品va无码一区二区| 在线观看一区二区三区av| 国产乱人伦精品一区二区| 欧美av色香蕉一区二区蜜桃小说 | 国产精品乱码一区二区三| 国产一区二区三区在线看片 | 一区二区三区免费在线视频| 无码日韩精品一区二区三区免费| 3d动漫精品啪啪一区二区中文| 国产成人免费一区二区三区|