2014-02-08 39 views
0

我有一個servlet這基本上是一個hello world種...更改URL來訪問我的servlet

類是:

package net.jgp.baseapp.validation.tomcat; 
[...] 
@WebServlet(name = "tv", description = "...", urlPatterns = {"/TomcatValidator", "/" }) 
    public class TomcatValidator extends HttpServlet { 
    [...] 
    } 
} 

它的偉大工程,當我啓動它通過:

http://localhost:8081/net.jgp.baseapp.validation.tomcat/tv 
http://localhost:8081/net.jgp.baseapp.validation.tomcat/qwe?test=89 

不過,我可以改變net.jgp.baseapp.validation.tomcat至:

  1. 沒什麼,基本上它應該像http://localhost:8081一樣運行?
  2. 更簡單的URL http://localhost:8081/toto

到目前爲止,我的web.xml真的是空的(從Eclipse的一代默認):

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
id="WebApp_ID" version="3.0"> 

<welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    <welcome-file>index.htm</welcome-file> 
    <welcome-file>index.jsp</welcome-file> 
    <welcome-file>default.html</welcome-file> 
    <welcome-file>default.htm</welcome-file> 
    <welcome-file>default.jsp</welcome-file> 
</welcome-file-list> 

我已經看了很多東西,我必須承認我我越來越瘋狂:)...

謝謝!

PS:我知道:

@WebServlet(name = "tv", description = "...", urlPatterns = {"/TomcatValidator", "/" }) 

在某種程度上等於:

@WebServlet(name = "tv", description = "...", urlPatterns = {"/" }) 

回答

1

兩件事情在這裏。

如果你希望你的servlet服務的根URL,你必須做兩件事情

1 - 你必須設置你的web應用程序上下文根,這樣

enter image description here

2 - 那麼你必須設置你的servlet上下文根太

import java.io.IOException; 
import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

@WebServlet("/") 
public class MyServlet extends HttpServlet { 
    private static final long serialVersionUID = 1L; 

    public MyServlet() { 
     super(); 
    } 

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     response.getWriter().write("OK"); 
     response.getWriter().flush(); 
    } 

} 

那是因爲你的servlet服務URL是這樣

http://yourserver:port/yourapp/yourservlet 

其中yourapp由#1

和yourservlet定義是通過#2

這樣

enter image description here

+0

大定義!你如何獲得你上傳的第一個UI。我使用eclipse(也是?)。或者你可以分享你的web.xml? TX! – jgp

+1

轉到「服務器」選項卡,選擇您的服務器,雙擊,然後轉到「模塊」選項卡。 web.xml是eclipse默認生成的,就像你的 – Leo

+0

完美!謝謝......但是,這些信息保存在哪裏?我沒有在web.xml中看到它?它只能在應用服務器級別上使用(這是有道理的)。 – jgp