Servlets web.xml上的Servlet映射

Servlets web.xml上的Servlet映射,servlets,web.xml,Servlets,Web.xml,当我开始出现404错误时,我正在对web.xml进行一些更改。我的servlet只是打印json数据。或者我的tomcat服务器在我尝试运行代码时没有响应。有什么问题吗?我尝试了不同的servlet映射,但似乎仍然不起作用。感谢您抽出时间来查看我的代码,非常感谢 <servlet> <servlet-name>inventory</servlet-name> <servlet-class>InventoryS

当我开始出现404错误时,我正在对web.xml进行一些更改。我的servlet只是打印json数据。或者我的tomcat服务器在我尝试运行代码时没有响应。有什么问题吗?我尝试了不同的servlet映射,但似乎仍然不起作用。感谢您抽出时间来查看我的代码,非常感谢

    <servlet>
        <servlet-name>inventory</servlet-name>
        <servlet-class>InventoryServlet</servlet-class> 
    </servlet>
    <servlet-mapping>
    <servlet-name>inventory</servlet-name>
    <url-pattern>InventoryServlet</url-pattern>
    </servlet-mapping>

</web-app>

库存
目录servlet
库存
目录servlet
我的servlet的开始,它只打印JSON数据

   @SuppressWarnings("serial")
    public class InventoryServlet extends HttpServlet {

        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            ArrayList < LavaLamp > lamps = new ArrayList < LavaLamp > ();

        Manufacturer lavaLampDotCom = new Manufacturer();
        lavaLampDotCom.setManName("lavalamp.com");

        LavaLamp blulava = new LavaLamp();
        blulava.setLavaName("Blulava");
        blulava.setType("Original");
        blulava.setPrice(17.99);
        blulava.setHeight(12);
        blulava.setWidth(3.5);
        blulava.setWaxColor("Blue");
        blulava.setLiquidColor("Red");
        blulava.setId(1);
        blulava.setCostBook(new SimpleCostBook(blulava.getPrice()));
        blulava.setManufacturer(lavaLampDotCom);
        blulava.setManId(1);
        blulava.setSku(1111);
        lamps.add(blulava);

        Manufacturer volcanicLavaDotNet = new Manufacturer();
        volcanicLavaDotNet.setManName("volcaniclava.net");

        LavaLamp bloodlava = new LavaLamp();
        bloodlava.setLavaName("Blood Lava");
        bloodlava.setType("Original");
        bloodlava.setWaxColor("Red");
        bloodlava.setLiquidColor("Green");
        bloodlava.setPrice(15.99);
        bloodlava.setHeight(12);
        bloodlava.setWidth(3.5);
        bloodlava.setId(2);
        bloodlava.setCostBook(new SimpleCostBook(bloodlava.getPrice()));
        bloodlava.setManufacturer(volcanicLavaDotNet);
        bloodlava.setManId(4);
        bloodlava.setSku(2222);
        lamps.add(bloodlava);


        Manufacturer lavaHouseDotCom = new Manufacturer();
        lavaHouseDotCom.setManName("lavahouse.com");

        LavaLamp purppower = new LavaLamp();
        purppower.setLavaName("Purp Power");
        purppower.setType("Large");
        purppower.setWaxColor("Purple");
        purppower.setLiquidColor("Yellow");
        purppower.setPrice(22.99);
        purppower.setHeight(16);
        purppower.setWidth(4.5);
        purppower.setId(3);
        purppower.setCostBook(new SimpleCostBook(purppower.getPrice()));
        purppower.setManufacturer(lavaHouseDotCom);
        purppower.setManId(3);
        purppower.setSku(3333);
        lamps.add(purppower);

        Manufacturer lavaCountryDotOrg = new Manufacturer();
        lavaCountryDotOrg.setManName("lavacountry.org");

        LavaLamp mellowyellow = new LavaLamp();
        mellowyellow.setLavaName("Mellow Yellow");
        mellowyellow.setType("Large");
        mellowyellow.setWaxColor("Yellow");
        mellowyellow.setLiquidColor("Black");
        mellowyellow.setPrice(29.99);
        mellowyellow.setHeight(16);
        mellowyellow.setWidth(4.5);
        mellowyellow.setId(4);
        mellowyellow.setCostBook(new SimpleCostBook(mellowyellow.getPrice()));
        mellowyellow.setManufacturer(lavaCountryDotOrg);
        mellowyellow.setManId(5);
        mellowyellow.setSku(4444);
        lamps.add(mellowyellow);

        Manufacturer jamiesBasementDotSwag = new Manufacturer();
        jamiesBasementDotSwag.setManName("jamiesbasement.swag");

        LavaLamp rainbowmadness = new LavaLamp();
        rainbowmadness.setLavaName("Rainbow Madness");
        rainbowmadness.setType("XXL");
        rainbowmadness.setWaxColor("Rainbow");
        rainbowmadness.setLiquidColor("Clear");
        rainbowmadness.setPrice(49.99);
        rainbowmadness.setHeight(50);
        rainbowmadness.setWidth(12.5);
        rainbowmadness.setId(5);
        rainbowmadness.setCostBook(new SimpleCostBook(rainbowmadness.getPrice()));
        rainbowmadness.setManufacturer(jamiesBasementDotSwag);
        rainbowmadness.setManId(2);
        rainbowmadness.setSku(5555);
        lamps.add(rainbowmadness);

        Manufacturer lavaLampCom = new Manufacturer();
        lavaLampCom.setManName("lavalamp.com");

        LavaLamp greenwilly = new LavaLamp();
        greenwilly.setLavaName("Green Willy");
        greenwilly.setType("Large");
        greenwilly.setWaxColor("Green");
        greenwilly.setLiquidColor("Clear");
        greenwilly.setPrice(27.99);
        greenwilly.setHeight(16);
        greenwilly.setWidth(3.5);
        greenwilly.setId(6);
        greenwilly.setCostBook(new SimpleCostBook(greenwilly.getPrice()));
        greenwilly.setManufacturer(lavaLampCom);
        greenwilly.setManId(1);
        greenwilly.setSku(6666);
        lamps.add(greenwilly);
        try {

        PrintWriter out = response.getWriter();
        out.write(new Gson().toJson(lamps));

        } catch (IOException e) {
            e.printStackTrace();
        }

    }

}
@SuppressWarnings(“串行”)
公共类InventoryServlet扩展了HttpServlet{
@凌驾
受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{
ArrayListlamps=新的ArrayList();
制造商lavaLampDotCom=新制造商();
lavaLampDotCom.setManName(“lavalamp.com”);
LavaLamp blulava=新的LavaLamp();
blulava.setLavaName(“blulava”);
blulava.setType(“原始”);
blulava.setPrice(17.99);
设置高度(12);
blulava.设置宽度(3.5);
蓝熔岩色(“蓝色”);
blulava.setLiquidColor(“红色”);
褐飞虱(1);
setCostBook(新的SimpleCostBook(blulava.getPrice());
blulava.setManufactor(lavaLampDotCom);
蓝熔岩。塞特曼尼(1);
blulava.setSku(1111);
灯。添加(蓝色熔岩);
制造商volcanicLavaDotNet=新制造商();
setManName(“volcaniclava.net”);
LavaLamp bloodlava=新的LavaLamp();
血熔岩。setLavaName(“血熔岩”);
血色熔岩。setType(“原始”);
血熔岩色(“红色”);
血熔岩色(绿色);
血熔岩价格(15.99);
血熔岩。设定高度(12);
血熔岩。设定宽度(3.5);
血熔岩;刚毛(2);
bloodlava.setCostBook(新的SimpleCostBook(bloodlava.getPrice());
bloodlava.SetManufactor(火山熔岩网);
血熔岩。塞特马尼德(4);
血熔岩。塞斯库(2222);
灯。添加(血熔岩);
制造商lavaHouseDotCom=新制造商();
lavahouse.com.setManName(“lavahouse.com”);
LavaLamp purppower=新LavaLamp();
purppower.setLavaName(“purppower”);
purppower.setType(“大型”);
紫红色(“紫色”);
紫色。设置液体颜色(“黄色”);
设定价格(22.99);
设定高度(16);
设定宽度(4.5);
setId(3);
setCostBook(新的SimpleCostBook(purppower.getPrice());
Purpower.setManufacturer(lavaHouseDotCom);
setManId(3);
purppower.setSku(3333);
灯。添加(电源);
Manufacturer lavaCountryDotOrg=新制造商();
lavaCountryDotOrg.setManName(“lavaCountryDotOrg”);
LavaLamp mellowyellow=新的LavaLamp();
mellowyellow.setLavaName(“Mellow Yellow”);
mellowyellow.setType(“大型”);
梅洛·韦克斯颜色(“黄色”);
mellowyellow.setLiquidColor(“黑色”);
梅勒韦尔洛设定价格(29.99);
设置高度(16);
梅勒韦尔洛。设定宽度(4.5);
梅勒韦洛氏刚毛(4);
setCostBook(新的SimpleCostBook(mellowyellow.getPrice());
mellowyellow.setManufacturer(lavaCountryDotOrg);
塞特曼尼(5);
梅勒韦洛塞斯库(4444);
灯。添加(mellowyellow);
制造商jamiesBasementDotSwag=新制造商();
jamiesBasementDotSwag.setManName(“jamiesBasick.swag”);
LavaLamp彩虹疯狂=新LavaLamp();
彩虹疯狂。setLavaName(“彩虹疯狂”);
彩虹疯狂。setType(“XXL”);
彩虹疯狂。setWaxColor(“彩虹”);
彩虹疯狂。色(“清晰”);
《彩虹疯狂》(49.99);
彩虹疯狂。设定高度(50);
彩虹疯狂。设定宽度(12.5);
彩虹疯狂。setId(5);
rainbowmadness.setCostBook(新的SimpleCostBook(rainbowmadness.getPrice());
彩虹疯狂。设置制造商(jamiesBasementDotSwag);
彩虹疯狂。塞特马尼德(2);
《彩虹疯狂》(5555);
灯。添加(彩虹疯狂);
制造商lavaLampCom=新制造商();
lavaLampCom.setManName(“lavalamp.com”);
LavaLamp greenwilly=新的LavaLamp();
greenwilly.setLavaName(“greenwilly”);
greenwilly.setType(“大型”);
greenwilly.setWaxColor(“绿色”);
greenwilly.setLiquidColor(“透明”);
格林威利设定价格(27.99);
设置高度(16);
格林威利。设定宽度(3.5);
greenwilly.setId(6);
greenwilly.setCostBook(新的SimpleCostBook(greenwilly.getPrice());
greenwilly.setManufacturer(lavaLampCom);
绿色威利.塞特曼尼(1);
格林威利·塞斯库(6666);
灯。添加(格林威利);
试一试{
PrintWriter out=response.getWriter();
write(new Gson().toJson(lamps));
}捕获(IOE异常){
e、 printStackTrace();
}
}
}

验证您是否正确设置了类,例如:

<servlet>
    <servlet-name>MyServletClass</servlet-name>
    <servlet-class>myPackage.mySubPackage.myClass</servlet-class>
</servlet>

MyServletClass
myPackage.mySubPackage.myClass

我发现这里有一个完整的JPS和Servlet示例,以及如何修改web.xml文件。所有代码都可用,因此我认为它可以帮助您:

尝试在url模式中添加斜杠:
/InventoryServlet
/InventoryServlet/*
,并确保在更改web后重新启动服务。我尝试过,它似乎不是url模式,而是类或servlet名称。我的404显示HTTP状态404-/LavaLamp/servlet/edu.asu.lava.web.InventoryServletUrl您正在尝试的是什么,
http://localhost:8080/LavaLamp/InventoryServlet
?我得到了一个404,web.xml看起来