java - HTTP 状态 404 - 请求的资源不可用

标签 java jsp servlets ejb

我正在开发一个小型 EJB 应用程序。我有一个 JSP 页面,其中包含一个表单,用户可以在其中填写其详细信息,然后单击按钮,该页面将被发送到 servlet 页面,其中数据将通过我的实体类添加。但是当我点击 JSP 页面上的按钮时,出现以下错误

HTTP 状态 404 -

输入状态报告

消息

描述请求的资源()不可用。

GlassFish 服务器开源版 3.1.2.2

我的servlet页面Contactservlet.java是

 public class Contactservlet extends HttpServlet {
@EJB
private AbstractFacade cfl;

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    try 
    {
        String name=request.getParameter("name");
        String mail=request.getParameter("mail");
        String phn=request.getParameter("phn");
        String cmnt=request.getParameter("cmnt");
        Contact c=new Contact();
        c.setCmnt(cmnt);
        c.setMail(mail);
        c.setName(name);
        c.setPhn(phn);
        cfl.create(c);

    }
    catch(Exception ex)
    {
        out.println(ex);
    }
}

我的 web.xml 文件是:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
    <servlet-name>Contactserv</servlet-name>
    <servlet-class>Contactservlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Contactserv</servlet-name>
    <url-pattern>/Contactserv</url-pattern>
</servlet-mapping>
<session-config>
    <session-timeout>
        30
    </session-timeout>
</session-config>
<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

我的 JSP 文件的代码是

<form action="Contactservlet">
        Name <input type="text" name="name"/>
        Mail <input type="text" name="mail"/>
        Phone <input type="text" name="phn"/>
        Comment <input type="text" name="cmnt"/>
        <input type="submit" name="bt" value="Submit"/>
</form>

最佳答案

您的问题与表单的 action 属性设置不正确有关。您需要动态设置它,并考虑到 Web 应用程序的上下文根:

action="${request.contextPath}/Contactserv"

(顺便说一句:您当前的 JSP 中有“/Contactservlet”。该操作必须指定您要引用的 servlet 的 servlet-mapping)

更好的方法是使用 JSTL:

action="<c:url value="/Contactserv"/>"

关于java - HTTP 状态 404 - 请求的资源不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23597008/

相关文章:

java - 覆盖 tomcat 连接器 URIEncoding

java.lang.NoClassDefFoundError : com/google/inject/servlet/GuiceServletContextListener 错误

java - JFrame 中的 Spritesheet 动画

java - 当我运行代码时,我得到了额外的输入空间

php - 在轻量级购物网站中数据库相对于 XML 的优势?

java - 第: How to retrieve "href" value from <a> link

java - 为什么 flyway 忽略了我的 SQL 迁移文件?

java - 如果在后台运行的 Spring Batch 作业将更新 sql 结果状态,如何更新 jsp 状态(从提交到处理然后成功)

java - Eclipse Jetty 功能集成 Jetty 9

java - Java Servlet 过滤器有何用处