当前位置: 首页 > 知识库问答 >
问题:

404调用servlet时,但在浏览器中使用servlet的url时直接工作

景德海
2023-03-14

问题:当我在浏览器中直接调用url(url映射)时,它工作得很好,但当我使用post方法从jsp文件中调用servlet时,它不工作,但给出了一个错误:

类型状态报告

留言 /HelloWorld/myservlet

说明源服务器找不到目标资源的当前表示形式,或不愿意透露存在该表示形式。

jsp页面:

 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="ISO-8859-1">
    <title>Hello World</title>
    </head>
    <body>
        <form method="post"  action="myservlet">
            <input type="submit" value ="send">
        </form>
    </body>
    </html>

网状物xml:

<?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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
 id="WebApp_ID" version="3.0">
    <display-name>helloworld2</display-name>
    <servlet>
        <servlet-name>myservlet</servlet-name>
        <servlet-class>apress.helloworld.HelloWorld</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>myservlet</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

Servlet代码:

    package apress.helloworld;

    import java.io.IOException;
    import java.io.PrintWriter;

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;


    public class HelloWorld extends HttpServlet{

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    {
        //System.out.println("Get Method Called");

          try { response.setContentType("text/html");
        `enter code here`  PrintWriter printwriter = response.getWriter(); 
          printwriter.println("<h2>");
          printwriter.println("Hello World");
          printwriter.println("</h2>"); 
          } 
          catch
          (IOException ex) 
          { ex.printStackTrace(); }


    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // TODO Auto-generated method stub

          try { resp.setContentType("text/html");
          PrintWriter printwriter = resp.getWriter(); 
          printwriter.println("<h2>");
          printwriter.println("Hello World");
          printwriter.println("</h2>"); 
          } 
          catch
          (IOException ex) 
          { ex.printStackTrace(); }


        }



   }

共有1个答案

马涵蓄
2023-03-14
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="ISO-8859-1">
    <title>Hello World</title>
    </head>
    <body>
        <form method="post"  action="hello">
            <input type="submit" value ="send">
        </form>
    </body>
    </html>

在HTML表单action=“url映射”中使用上述代码,您必须提及servlet的url模式,而不是servlet名称,以引用您的web。xml

 类似资料:
  • 因此,我目前正在尝试测试一个项目,它的方面我已经改变了,即我添加了一个动态web组件到它。为此,我决定创建一个基本的html表单,并将servlet与之关联。 错误消息: 编辑,现在工作的一个servlet也停止工作,抛出相同的错误。如果有帮助,我尝试从eclipse运行它,方法是右键单击html页面,然后选择在服务器上运行它。

  • 我已经开发了Angular 8应用程序,我正在使用routerLink导航组件,这些组件工作正常,没有任何问题,但是当我直接在浏览器中输入相同的URL时,它不会显示任何内容,在控制台中,我看到的错误如下所示 例如,我打开主页http://localhost:4200/home我在这里添加了routerLink,以便http://localhost:4200/about我将能够成功地查看,但如果我输

  • 在我的应用程序中,当存储在缓存中时,我使用JSON自动建议功能来建议用户id的名称。 因此,当我试图点击URL时,响应是返回完全限定的电子邮件地址PFB- 请求-https://wwwsampleweb.com/tc/servlet/AjaxServiceServlet?qtc=james* 它正在返回响应-{标识符:'name',项目:[{name:'james.goodlife@abc.com

  • 问题内容: 是否可以在不使用JavaScript的情况下单击超链接来调用Java Servlet? 问题答案: 使超链接具有您在文件中为其定义的servlet映射的URL 。 所述元件限定了servlet和URL模式之间的映射。下面的示例将servlet映射到以开头的任何URL : 在此示例中,诸如的超链接将调用servlet。

  • 受保护的void doPost(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{ } 在Eclipse中,内部web浏览器如下所示(下图) Eclipse内部web浏览器的打印屏幕

  • 问题内容: 有谁知道如何编写一个servlet过滤器,该过滤器将在给定文件/内容类型的响应上设置缓存头?我有一个提供大量图像的应用程序,我想通过让浏览器缓存那些不经常更改的图像来减少托管它的带宽。理想情况下,我希望能够指定一种内容类型,并在内容类型匹配时让它设置适当的标题。 有人知道该怎么做吗?或者,甚至更好的是,他们愿意共享示例代码吗?谢谢! 问题答案: 在您的过滤器中有以下行: 响应包装如下所