2014-05-07 29 views
0

我是servlet概念的新手。我的要求就像將正在給定的URL轉換爲正文中的查詢參數。如何使用Servlet將下面給定的URL轉換爲查詢參數

給定的URL:

http://anydomain:8080/ServletBasics/HelloForm/India/Andhrapradesh 

所需的輸出網址:

http://anydomain:8080/ServletBasics/HelloForm?Country=India&State=Andhrapradesh 

URL抓取已通過使用這個servlet代碼來完成。任何人都可以幫助我將URL轉換爲基於查詢的URL。由於

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws  ServletException, IOException { 

    response.setContentType("text/html"); 
    PrintWriter out = response.getWriter(); 
    out.println("<html><body>"); 
    String vid = request.getRequestURI(); 
    out.println("</body></html>"); 
    out.close(); 

} 


protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    doGet(request, response); 
} 

修改後的代碼:sdfd.java

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

    response.setContentType("text/html"); 

    String url = request.getRequestURI(); 
    PrintWriter out = response.getWriter(); 
    out.println("<html>"); 
    out.println("<body>"); 

if(url.equals("/servletTest/v1/code")) {  

    String[] words = url.split("/"); 
    String newURI = url.replace(url, "/ws/simple/Apicode?"+"first_name="+words[2]+"&"+"last_name="+words[3]); 

    RequestDispatcher rd = request.getRequestDispatcher(newURI); 
    rd.forward(request, response); 

    out.println(newURI); 


    } 

    else 
    { 
     out.println("bad"); 
    } 



    out.println("</html>"); 
    out.println("</body>"); 

    out.close(); 
} 

的web.xml

<servlet> 
<servlet-name>sdfd</servlet-name> 
<servlet-class>sdfd</servlet-class> 
</servlet> 
<servlet-mapping> 
<servlet-name>sdfd</servlet-name> 
<url-pattern>/v1/code</url-pattern> 
</servlet-mapping> 

我想轉換

http://localhost:8080/servletTest/v1/code 

http://localhost:8080/servletTest/ws/simple/Apicode?first_name=v1&last_name=code  

但我越來越低於錯誤。

HTTP Status 404 - /servletTest/ws/simple/Apicode 
type Status report 
message /servletTest/ws/simple/Apicode 
description The requested resource is not available. 
Apache Tomcat/7.0.42 

請問我究竟在哪裏出錯? 感謝

+0

你有映射for/ws/simple/Apicode – Shashi

回答

1

使用URLRewrite

您可以在以下網址的文檔:http://urlrewritefilter.googlecode.com/svn/trunk/src/doc/manual/4.0/index.html

例如:

<rule> 
    <from>^/HelloForm/([a-z]+)/([a-z]+)$</from> 
    <to>/HelloForm?Country=$1&State=$2</to> 
</rule> 

要配置UrlRewrite,閱讀說明書http://urlrewritefilter.googlecode.com/svn/trunk/src/doc/manual/4.0/index.html

+0

嗨Shashi,我經歷了提及d文件。好一個。我正以不同的方式實施。請找到下面的servlet和web.xml代碼。在這裏我得到HTTP狀態404-請求的資源不可用。 請幫我一下。 – venky

+0

代碼在哪裏...... – Shashi

+0

修改後的代碼寫在頂部 – venky

相關問題