中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

網(wǎng)站開發(fā)公司的選擇百色seo外包

網(wǎng)站開發(fā)公司的選擇,百色seo外包,免費咨詢律師軟件,wordpress編輯頁面的顏色我們常在Spring Boot項目中使用Thymeleaf模板引擎,今天突發(fā)奇想,嘗試原生Servlet訪問! 說做就做 搭建完整的WEB項目 其中的大部分依賴都是后續(xù)報錯 追加進來的 導(dǎo)入依賴 thymeleaf-3.0.11.RELEASE.jar 第一次訪問 訪問地址: http://localhost:8080…

我們常在Spring Boot項目中使用Thymeleaf模板引擎,今天突發(fā)奇想,嘗試原生Servlet訪問!

說做就做

搭建完整的WEB項目

其中的大部分依賴都是后續(xù)報錯 追加進來的

在這里插入圖片描述

導(dǎo)入依賴 thymeleaf-3.0.11.RELEASE.jar
在這里插入圖片描述

第一次訪問

訪問地址: http://localhost:8080/ThymeleafTest/test

java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
java.lang.ClassNotFoundException: org.slf4j.LoggerFactory

classNotFoundException異常通常是由于虛擬機(例如Java虛擬機)無法找到所需的類而引起的。這種情況可能發(fā)生在以下幾種情況下:

  1. 缺少類文件:如果要加載的類文件不存在或不可訪問,就會拋出ClassNotFoundException異常。請確保類文件存在于正確的位置,并且具有正確的權(quán)限。

  2. 類路徑問題:虛擬機通過類路徑來查找類文件。如果類路徑配置不正確,虛擬機就無法找到所需的類。請檢查類路徑設(shè)置,并確保包含所需類的路徑。

  3. 類名錯誤:還可能是由于類名錯誤導(dǎo)致的。請確保使用完整的類名(包括包名)來引用類,并且拼寫沒有錯誤。

  4. 類加載器問題:在某些情況下,自定義的類加載器可能無法找到所需的類。請確保使用正確的類加載器加載所需的類。

總結(jié)起來,ClassNotFoundException異常主要是由于缺少類文件、類路徑配置問題、類名錯誤或類加載器問題引起的。


解決方案

目前預(yù)計缺少了相關(guān)依賴 ,總之少了誰就去maven中下載誰

第二次訪問

加入slf4j-api-2.0.7.jar slf4j-log4j12-1.7.25

java.lang.NoClassDefFoundError: 
Could not initialize class org.thymeleaf.templateresolver.ServletContextTemplateResolver

第三次訪問

java.lang.ClassNotFoundException: ognl.PropertyAccessor

此時可以訪問指定Servlet

在這里插入圖片描述

ognl.PropertyAccessor 異常是由于 OGNL(Object-Graph Navigation Language)表達式無法訪問或操作指定對象的屬性而引發(fā)的。OGNL 是一種用于在 Java 中訪問對象屬性的表達式語言。

通常,這種異常的原因可能是以下幾種情況之一:

  1. 屬性不存在:如果嘗試訪問的屬性在對象中不存在,那么 OGNL 將引發(fā)此異常。請確保屬性名稱正確且存在于對象中。

  2. 訪問權(quán)限限制:如果屬性具有私有或受保護的訪問修飾符,并且沒有提供相應(yīng)的訪問方法(getter/setter),那么 OGNL 將無法訪問該屬性。在這種情況下,您可以嘗試添加 getter 和 setter 方法,或者使用其他方法來訪問該屬性。

  3. 對象為空:如果嘗試操作的對象為 null,那么 OGNL 將引發(fā)此異常。在使用 OGNL 之前,請確保對象不為空。

  4. OGNL 表達式錯誤:如果提供的 OGNL 表達式存在語法錯誤或不正確的格式,那么 OGNL 將無法解析它并引發(fā)異常。請仔細檢查您的 OGNL 表達式是否正確。

第四次訪問

加入ognl-3.1.12.jar

java.lang.NoClassDefFoundError: Could not initialize class ognl.OgnlRuntime

Could not initialize class ognl.OgnlRuntime 異常通常發(fā)生在使用 OGNL(Object-Graph Navigation Language)表達式語言時。它表示無法初始化 OGNL 運行時類。

Could not initialize class ognl.OgnlRuntime 異常的產(chǎn)生原因可能有以下幾種:

  1. 缺少 OGNL 庫:確保項目中包含了正確的 OGNL 庫。如果使用 Maven 等構(gòu)建工具,可以檢查項目的依賴配置。
  2. 版本不匹配:如果項目依賴的 OGNL 版本與其他依賴項沖突,可能會導(dǎo)致初始化異常。需要確保版本兼容性,并解決依賴沖突。
  3. 類路徑問題:如果運行時無法找到 OGNL 的類或配置文件,可能會導(dǎo)致初始化異常。檢查類路徑配置,并確認相關(guān)文件是否存在于正確的位置。
  4. 其他原因:除了上述原因外,還可能是由于環(huán)境配置、類加載順序等因素導(dǎo)致的初始化異常??梢試L試重啟應(yīng)用程序或重新部署相關(guān)組件,以解決潛在的配置問題。

第五次訪問

切換OGNL 版本 ognl-3.0.6.jar

java.lang.ClassNotFoundException: javassist.ClassPool

ClassNotFoundException: javassist.ClassPool 的原因是在運行時找不到 javassist.ClassPool 類。

這可能是由以下幾種情況引起的:

  1. 缺少相關(guān)的依賴庫:javassist 是一個字節(jié)碼操作庫,如果你的項目中沒有正確引入 javassist 的相關(guān)依賴庫,就會導(dǎo)致找不到該類。你可以通過在項目中添加正確的依賴來解決這個問題,比如使用 Maven 或 Gradle 來管理依賴。

  2. 依賴版本不兼容:如果你的項目中使用的 javassist 版本與其他依賴庫存在沖突,也可能導(dǎo)致找不到該類。你可以嘗試升級或降級 javassist 的版本,或者解決其他依賴庫的版本沖突。

  3. 類路徑配置錯誤:如果你的項目中沒有正確配置類路徑,雖然你已經(jīng)添加了正確的依賴,但 JVM 仍然無法找到該類。你可以檢查你的類路徑配置是否正確,并確保 javassist 類所在的 JAR 文件或目錄已經(jīng)包含在類路徑中。

  4. 編譯錯誤:如果你是在運行程序時出現(xiàn)該異常,而不是在編譯時,那么有可能是因為你的代碼在編譯時找不到 javassist 類。這可能是因為你在編譯時沒有包含 javassist 的相關(guān)依賴或者編譯選項配置錯誤。你可以檢查你的編譯配置,并確保 javassist 的依賴被正確引入。

第六次訪問

加入javassist-3.29.2-GA.jar

java.lang.ClassNotFoundException: org.attoparser.IMarkupParser
  • org.attoparser.IMarkupParser是一個解析器接口,它定義了在解析HTML、XML或其他標記語言時所需的方法。具體來說,它提供了解析標記文本的能力,并將其轉(zhuǎn)換為相應(yīng)的數(shù)據(jù)結(jié)構(gòu)或事件。
  • IMarkupParser的主要作用是將標記文本轉(zhuǎn)換為可供程序處理的結(jié)構(gòu)化數(shù)據(jù),以便進一步的處理或展示。

通過實現(xiàn)IMarkupParser接口,開發(fā)人員可以自定義標記解析器以滿足特定的需求。這個接口定義了一系列方法,如startElement、endElement、characters等,用于處理標記的開始、結(jié)束以及標記中的字符內(nèi)容。

第七次訪問

加入attoparser-2.0.7.RELEASE.jar

java.lang.ClassNotFoundException: org.unbescape.html.HtmlEscape

在這里插入圖片描述
終于看到一絲希望

org.unbescape.html.HtmlEscape 是一個 Java 庫,它提供了用于轉(zhuǎn)義 HTML 字符實體的方法。在編寫 Web 應(yīng)用程序時,我們經(jīng)常需要將特殊字符(如<, >, &, ", ’等)轉(zhuǎn)義為對應(yīng)的 HTML 實體,以確保這些字符在網(wǎng)頁上正確顯示,而不會被解釋為 HTML 代碼。HtmlEscape 類提供了一組靜態(tài)方法,用于將文本中的特殊字符轉(zhuǎn)義為對應(yīng)的 HTML 實體,以便在 HTML 頁面中正確顯示。這個庫是為了方便開發(fā)人員處理 HTML 相關(guān)操作而設(shè)計的。

第八次訪問

加入attoparser-2.0.7.RELEASE.jar

在這里插入圖片描述

撥開云霧見天日,守得云開見月明


項目源碼請參考下方

  • web.xml配置
	<!-- 在上下文參數(shù)中配置視圖前綴和視圖后綴 --><!-- ①添加thymeleaf的jar包  ②在web.xml文件中添加配置 --><context-param><param-name>view-prefix</param-name><param-value>/WEB-INF/view/</param-value> <!--前綴--></context-param><context-param><param-name>view-suffix</param-name> <!--后綴--><param-value>.html</param-value></context-param>
  • index.html界面放在webapp目錄下
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><a href="test">初步測試Thymeleaf</a>
</body>
</html>
  • hello.html 界面放在/WEB-INF/view/目錄下
<!-- 我們需要使用thymeleaf,需要在html文件中導(dǎo)入我們的命名空間約束,方便提示。 官方文檔的#3中看一下把命名空間拿過來 -->
<html xmlns:th="http://www.thymeleaf.org"><head><title>目標界面</title></head><body><!-- 在界面展示數(shù)據(jù) --><h1 th:text="${festival}">這里要顯示一個動態(tài)的festival</h1><!--th:text 表示轉(zhuǎn)義 --><div th:text="${msg}"> hello thymeleaf</div><!--th:utext 表示不轉(zhuǎn)義 --><div th:utext="${msg}"> hello thymeleaf</div><hr><!--遍歷集--><!--th:each每次遍歷都會生成當(dāng)前這個標簽:官網(wǎng)--><h2 th:each="users:${user}" th:text="${users}"></h2><!--行列寫法 不建議--><!--<h2 th:each="users:${user}">[[ ${users} ]] </h2>--></body>
</html>
  • ViewBaseServlet.java 視圖解析器
package com.yc.thymeleaf.controller;import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.WebContext;
import org.thymeleaf.templatemode.TemplateMode;
import org.thymeleaf.templateresolver.ServletContextTemplateResolver;import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;/*** 在HTML頁面上,加載Java內(nèi)存中的數(shù)據(jù)的過程我們稱為渲染(render);thymeleaf是用來幫助視圖渲染的技術(shù)。* company 源辰信息* @author 夢凝哲雪* @date 2023年8月21日* @version 1.0* Email 1198865589@qq.com*/
public class ViewBaseServlet extends HttpServlet {private static final long serialVersionUID = 1L;private TemplateEngine templateEngine;@Overridepublic void init() throws ServletException {// 1.獲取ServletContext對象ServletContext servletContext = this.getServletContext();// 2.創(chuàng)建Thymeleaf解析器對象ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver(servletContext);// 3.給解析器對象設(shè)置參數(shù)// ①HTML是默認模式,明確設(shè)置是為了代碼更容易理解templateResolver.setTemplateMode(TemplateMode.HTML);// ②設(shè)置前綴String viewPrefix = servletContext.getInitParameter("view-prefix");templateResolver.setPrefix(viewPrefix);// ③設(shè)置后綴String viewSuffix = servletContext.getInitParameter("view-suffix");templateResolver.setSuffix(viewSuffix);// ④設(shè)置緩存過期時間(毫秒)templateResolver.setCacheTTLMs(60000L);// ⑤設(shè)置是否緩存templateResolver.setCacheable(true);// ⑥設(shè)置服務(wù)器端編碼方式templateResolver.setCharacterEncoding("utf-8");// 4.創(chuàng)建模板引擎對象templateEngine = new TemplateEngine();// 5.給模板引擎對象設(shè)置模板解析器templateEngine.setTemplateResolver(templateResolver);}protected void processTemplate(String templateName, HttpServletRequest req, HttpServletResponse resp) throws IOException {// 1.設(shè)置響應(yīng)體內(nèi)容類型和字符集resp.setContentType("text/html;charset=UTF-8");resp.setCharacterEncoding("utf-8");// 2.創(chuàng)建WebContext對象 創(chuàng)建Thymeleaf的上下文對象,此對象用來存儲數(shù)據(jù)WebContext webContext = new WebContext(req, resp, getServletContext());// 3.處理模板數(shù)據(jù)templateEngine.process(templateName, webContext, resp.getWriter());}
}
  • HelloWorldController.java 請求交互的控制層
package com.yc.thymeleaf.controller;import java.io.IOException;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.thymeleaf.context.WebContext;@WebServlet("/test")
public class HelloWorldController extends ViewBaseServlet{private static final long serialVersionUID = 1L;protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println(666);// 請求中設(shè)計相關(guān)參數(shù)request.setAttribute("festival","七夕快樂");request.setAttribute("msg", "<h1>first  thymeleaf page!!</h1>");request.setAttribute("users",  List.of("張三", "李四", "王五", "趙六"));// 請求轉(zhuǎn)發(fā)跳轉(zhuǎn)到/WEB-INF/view/target.htmlprocessTemplate("hello", request, response);}
}
  • 最終效果

在這里插入圖片描述

http://www.risenshineclean.com/news/5150.html

相關(guān)文章:

  • 廈門網(wǎng)站建設(shè)公seo關(guān)鍵詞優(yōu)化推廣哪家好
  • 三水建設(shè)網(wǎng)站國外推廣都是怎么推廣
  • 大慶百度做網(wǎng)站多少錢外貿(mào)國際網(wǎng)站推廣
  • 用帝國做的網(wǎng)站只收錄首頁百度一下百度搜索
  • 電商系統(tǒng)開發(fā)解決方案鎮(zhèn)江百度seo
  • 門戶網(wǎng)站建設(shè)情況總結(jié)淘寶指數(shù)查詢?nèi)肟?/a>
  • 手機表格制作軟件排名優(yōu)化培訓(xùn)
  • 青島市住房和城鄉(xiāng)建設(shè)局官方網(wǎng)站營銷傳播服務(wù)
  • 優(yōu)化服務(wù)平臺windows優(yōu)化大師win10
  • 網(wǎng)站制作教程企業(yè)網(wǎng)站的域名是該企業(yè)的
  • wordpress優(yōu)化版seo靜態(tài)頁源碼
  • 做網(wǎng)站怎么插入圖片推廣宣傳
  • 廣州市政府門戶網(wǎng)站淘寶運營培訓(xùn)班學(xué)費大概多少
  • 香港空間的網(wǎng)站會關(guān)嗎網(wǎng)站接廣告平臺
  • 上饒做網(wǎng)站的公司杭州seo專員
  • 用html做女裝網(wǎng)站快速seo排名優(yōu)化
  • 網(wǎng)站開發(fā) 項目的招標文件東莞搜索網(wǎng)絡(luò)優(yōu)化
  • 商城用什么系統(tǒng)做網(wǎng)站競價推廣代運營服務(wù)
  • vs做網(wǎng)站通過e瀏覽器馮耀宗seo課程
  • 網(wǎng)站建設(shè) 做一個網(wǎng)站需要多少錢免費自媒體網(wǎng)站
  • ecshop做企業(yè)網(wǎng)站安徽新站優(yōu)化
  • 武漢高端網(wǎng)站定制設(shè)計打開百度網(wǎng)站
  • 模板建站推薦東方靠譜seo整站優(yōu)化一年價格多少
  • 甘肅蘭州做網(wǎng)站怎樣查詢百度收錄和排名情況
  • 17173論壇百度seo課程
  • 大型企業(yè)網(wǎng)站欣賞俄羅斯搜索引擎瀏覽器
  • 企業(yè)微信小程序如何開發(fā)青島seo推廣公司
  • wordpress微信說說seo外推
  • 代做網(wǎng)站推廣的公司時事新聞熱點摘抄
  • 360建筑網(wǎng)怎么注銷賬號seo自然排名關(guān)鍵詞來源的優(yōu)缺點