【maven】創建基於maven骨架webapp的傳統web工程的問題小結

最近應用maven來改寫之前的傳統web工程,遇到一些小問題,好在這些問題都被解決了。但是遇到的時候真的很讓人抓狂,因爲之前的web項目從來沒遇到過這種問題,很奇怪。果然想偷懶想省事總是要付出代價的。=]

爲了以後用maven能省事,現在將這些問題記錄在這裏,把該踩的坑全部填平了,以後就一路狂奔吧。


/webapp下新建了一個indicators.jsp,引入了一些JS、CSS文件

    <!--JQuery-->
    <script type="text/javascript" charset="UTF-8" src="scripts/jquery-3.3.1.js"></script>
    <!--DataTable-->
    <script type="text/javascript" charset="UTF-8" src="scripts/jquery.dataTables.min.js"></script>
    <script type="text/javascript" charset="UTF-8" src="scripts/dataTables.fixedColumns.min.js"></script>
    <!--JQuery WEUI-->
    <script type="text/javascript" charset="UTF-8" src="scripts/jquery-weui.min.js"></script>
    <script type="text/javascript" charset="UTF-8" src="scripts/fastclick.js"></script>

    <!--DataTable CSS-->
    <link rel="stylesheet" type="text/css" href="css/jquery.dataTables.min.css">
    <link rel="stylesheet" type="text/css" href="css/fixedColumns.dataTables.min.css">
    <!--WeUI CSS-->
    <link rel="stylesheet" type="text/css" href="css/weui.css">
    <link rel="stylesheet" type="text/css" href="css/jquery-weui.min.css">
    <!--鏈接外部樣式表-->
    <link rel="stylesheet" type="text/css" href="css/style.css">

直接運行,瀏覽器端報錯

JS文件和CSS文件等靜態文件都被攔截了,沒有正常加載,原因是在web.xml中把<url-pattern>寫成了“/”,默認全部攔截

<servlet>
    <servlet-name>IndicatorServlet</servlet-name>
    <servlet-class>com.indicator.servlet.IndicatorServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>IndicatorServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

解決方案

web.xml中添加JS、CSS等靜態資源的過濾代碼,注意本地用的是Tomcat服務器,所以<servlet-name>default

<!--不攔截靜態資源-->
<!-- tomcat 默認名稱default -->
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.png</url-pattern>
</servlet-mapping>

本地測試通過,發佈到服務器weblogic,發現發佈失敗

原因是本地用的Tomcat服務器,默認的<servlet-name>default,但現在服務端是weblogic默認的<servlet-name>就不一樣了。

解決方法:把 default 改成 FileServlet 就可以了。

<!-- weblogic 默認名稱FileServlet -->
<servlet-mapping>
    <servlet-name>FileServlet</servlet-name>
    <url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>FileServlet</servlet-name>
    <url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>FileServlet</servlet-name>
    <url-pattern>*.png</url-pattern>
</servlet-mapping>

參考資料

將tomcat部署的項目遷移到weblogic部署遇到的問題   https://blog.csdn.net/dyr_1203/article/details/82350425

tomcat遷移到weblogic的幾個問題  https://my.oschina.net/shuming/blog/784886

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章