HTTP状态404 - 未找到java servlet [英] HTTP status 404 - not found java servlet

查看:1634
本文介绍了HTTP状态404 - 未找到java servlet的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 servlet是

< pre> import javax.servlet。*;
import javax.servlet.http。*;
import java.io. *;

public class ServletWriteHtml extends HttpServlet
{
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws IOException
{
PrintWriter out = response.getWriter();
java.util.Date today = new java.util.Date();
out.println(html+
< body>+
< h1 align = center>写Html< h1>
+< br> ;+今天+< body>+< / html>);
}
}





<?xml version =1.0encoding = UTF-8 >?; 
< web-app id =file-uploadversion =2.4
xmlns =http://java.sun.com/xml/ns/j2ee
xmlns: xsi =http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation =http://java.sun.com/xml/ns/j2ee
http:/ /java.sun.com/xml/ns/j2ee/web-app_2_4.xsd\">
< servlet>
< servlet-name>和< / servlet-name>
< servlet-class> ServletWriteHtml< / servlet-class>
< / servlet>
< servlet-mapping>
< servlet-name> ServletWriteHtml< / servlet-name>
< url-pattern> / Alfa< / url-pattern>
< / servlet-mapping>
< welcome-file-list>
< welcome-file> index.html< / welcome-file>
< / welcome-file-list>
< / web-app>





编译servlet并放在WEB-INF文件夹中



servlet的网址是



[ ^ ]



HTTP状态404 - 未找到

类型状态报告

messageNot Found

description所请求的资源不可用。 />
GlassFish Server开源版4.1.1



我尝试过:



从ide运行应用程序,编译servlet并通过Web浏览器尝试url

解决方案

在你的web xml中< servlet的名称> 。值在< servlet> 标记和< servlet-mapping> 标记中有所不同。所以服务器无法映射到正确的servlet。您必须为servlet和servlet映射标记使用相同的servlet-name值



[ ^阅读oracle文档获取更多信息]

< servlet的> 
< servlet-name>和< / servlet-name>
< servlet-class> ServletWriteHtml< / servlet-class>
< / servlet>
< servlet-mapping>
< servlet-name>和< / servlet-name>
< url-pattern> / Alfa< / url-pattern>
< / servlet-mapping>





提示:回复回复部分的评论,而不是答案。


ide是netbeans,已经部署了glassfish服务器并且从web控制台启动了应用程序,.class文件已经创建并且在web-inf目录下仍然是错误找不到404

< servlet的> 
< servlet-name>和< / servlet-name>
< servlet-class> Javas.ServletWriteHtml< / servlet-class>
< / servlet>
< servlet-mapping>
< servlet-name>和< / servlet-name>
< url-pattern> / Alfa< / url-pattern>
< / servlet-mapping>





更改了servlet名称并在Javas包中添加了ServletWriteHtml仍然没有找到404


the servlet is 

<pre>import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class ServletWriteHtml extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws IOException
{
    PrintWriter out = response.getWriter();
    java.util.Date today = new java.util.Date();
    out.println("html" +
                "<body>" +
                "<h1 align = center>Write Html<h1>"
                + "<br>" + today + "<body>" + "</html>");                        
        }
}



<?xml version="1.0" encoding="UTF-8"?>
<web-app id="file-upload" version="2.4" 
xmlns="http://java.sun.com/xml/ns/j2ee" 
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
         http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <servlet>
        <servlet-name>And</servlet-name>
        <servlet-class>ServletWriteHtml</servlet-class>
    </servlet>  
    <servlet-mapping>
        <servlet-name>ServletWriteHtml</servlet-name>
        <url-pattern>/Alfa</url-pattern>
    </servlet-mapping>
        <welcome-file-list>
            <welcome-file>index.html</welcome-file>
        </welcome-file-list>
</web-app>



compiled the servlet and put at WEB-INF folder

the url of the servlet is

[^]

HTTP Status 404 - Not Found
type Status report
messageNot Found
descriptionThe requested resource is not available.
GlassFish Server Open Source Edition 4.1.1

What I have tried:

ran the application from ide , compiled the servlet and tried the url through web browser

解决方案

In your web xml <servlet-name>. value is different in <servlet> tag and <servlet-mapping> tag. So server cannot map to correct servlet. You have to use same servlet-name value for both servlet and servlet-mapping tags

[^Read oracle docs for more info]

<servlet>
    <servlet-name>And</servlet-name>
    <servlet-class>ServletWriteHtml</servlet-class>
</servlet>  
<servlet-mapping>
    <servlet-name>And</servlet-name>
    <url-pattern>/Alfa</url-pattern>
</servlet-mapping>



tip: reply to the comments in reply section and not as an answer.


the ide is netbeans, glassfish server has been deployed and the application is launched from web console, .class file has been created and is at web-inf directory still the error is 404 not found


<servlet>
		<servlet-name>And</servlet-name>
		<servlet-class>Javas.ServletWriteHtml</servlet-class>
	</servlet>	
	<servlet-mapping>
		<servlet-name>And</servlet-name>
		<url-pattern>/Alfa</url-pattern>
	</servlet-mapping>



changed the servlet name and added ServletWriteHtml at Javas package still 404 not found


这篇关于HTTP状态404 - 未找到java servlet的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆