Servlet 路徑配置,初始化參數(shù).

1.Servlet路徑配置問題

首先是在servlet里配置

  • 注解配置:
    @WebServlet("/TestInit")
    public class TestInit extends HttpServlet
    //在類的前面加一個注解,這里的注解加一個 "/" 表示當前的根目錄下,就是 地址/項目名/TestInit

  • xml配置:
    在xml里配置也是一個道理
    <url-pattern>/TestInit</url-pattern>
    這里的路徑也是在 地址/項目名/TestInit

2.網(wǎng)頁里的路徑

如果還是按/xxxx的話,比如:

        <form action = "/xxx" method = "get">
            <input type = "submit" value = "跳轉"/>
        </form>

會跳轉到一個localhost:8888/se
當然是404了。

直接設置相對路徑:

    <form action = "se" method = "get">
            <input type = "submit" value = "跳轉"/>
        </form>

就可以正確跳轉了。
但是如果我們要訪問的路徑是上一個目錄下的,這時候如何設置相對路徑呢,比如:

當前頁面路徑是localhost:8888/test/test/test
但是我們要訪問的路徑是localhost:8888/test/test1/test
這時候相對路徑寫:  ../test1/test
即可,../表示當前路徑向前退一個路徑,在linux里也是這樣的,cd ..退到上一個路徑

需要注意的是即使是在servlet里轉發(fā)跳轉,直接/xxx 還是會跳到服務器根目錄去所以在servlet里跳轉一樣要遵循在html里的方法。

2.servlte的初始化參數(shù):

注意,必須是在xml里配置的那個url訪問才可以get到這個初始化方法,并且順序是先username1-->username2并且當前servlet配置的信息只能被當前的servlet所共享,要全局初始化的話,要用context的初始化參數(shù),見下

    //1.首先是配置對應的xml文件里的數(shù)據(jù):
        <servlet>
            <servlet-name>test</servlet-name>
            <servlet-class>
                xxx.xxx
            </servlet-class>
            
            <init-param>
                <param-name>username</param-name>
                <param-value>senninha</param-value>
            </init-param>
            //并且可以設置多組初始化數(shù)據(jù)
            <init-param>
                <param-name>username1</param-name>
                <param-value>senninha1</param-value>
            </init-param>
        </servlet>
        
        
    //2.然后在是servlet里重寫inti()方法:
            @Override
            public void init(ServletConfig config) throws ServletException {
                // TODO Auto-generated method stub
                Enumeration<String> initParaNames = config.getInitParameterNames();
                while(initParaNames.hasMoreElements()){
                String name = initParaNames.nextElement();
                System.out.println(name + ":"+config.getInitParameter(name));
            }
                super.init(config);
            }

獲取全局初始化參數(shù),這個方法可以在全局獲取,并且注解或者xml里配置的url都可以獲取到
既可以在重寫的init方法里獲取context對象:

        ServletContext context = config.getServletContext();
    
    //也可以在doGet方法里通過:
        ServletContext context = request.getServletContext()
        
    //然后獲取初始化值就大同小異了:
        Enumeration<String> param = context.getInitParameterNames;
        while(param.hasMoreElements){
            String name = param.nextElement():
            System.out.println(name+ ":"+ context.getInitParameter(name)
        }
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Spring Boot 參考指南 介紹 轉載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,273評論 6 342
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,564評論 19 139
  • 本章聊一聊ServletContext 3.0規(guī)范中定義的注解以及在web應用中使用的框架和庫的可插拔性的提升。 ...
    Lucky_Micky閱讀 6,183評論 0 3
  • 選材料 用開水煮五分鐘,出鍋,用卡老抽腌制待用。 用熱油把肉煸出香味,同時加冰糖!撈出待用! 把肉放入煲中,放入八...
    大智若語閱讀 426評論 0 0
  • 拔山力盡霸圖隳,倚劍空歌不逝騅。 明月滿營天似水,那堪回首別虞姬。 烏江上,江水湍湍,烏江亭長艤船...
    徒駭北閱讀 606評論 3 1

友情鏈接更多精彩內容