【问题标题】:let jsp file go to servlet让jsp文件转到servlet
【发布时间】:2012-06-09 11:15:30
【问题描述】:

我的 .jsp 文件在执行某些操作后出现问题,它必须转到我的 login.java (servlet) 我认为这样做是可能的:

web-inf/serverlet 文件夹中的login.java servlet(我创建的) 并在我的 jsp 页面中执行此 ${pageContext.request.contextPath}/servlets/login 作为 url。

然后问题是我收到错误“请求的资源 () 不可用。”使用代码 404。

难道不能让jsp通过url去servlet吗?

亲切的问候,

【问题讨论】:

    标签: java spring jsp servlets


    【解决方案1】:

    您需要将 servlet 作为普通 Java 类创建在 Java 源代码文件夹中的包中,而不是在 web 文件夹中手动创建的文件夹中。您还需要将 servlet 映射到 URL 模式。

    在 Java 源代码文件夹中创建一个包 com.example(或其他,但它必须在一个包中),然后以通常的 Java 方式创建以下类:

    package com.example;
    
    // ...
    
    @WebServlet("/login")
    public class Login extends HttpServlet {
    
        // ...
    
    }
    

    如果您使用的是 Eclipse 或 Netbeans 之类的 IDE,那么它将自动编译到正确的文件夹中,并且在部署后,它将在相对于上下文路径的 URL /login 上可用。

    <form action="${pageContext.request.contextPath}/login" method="post">
    

    如果您仍然没有使用与 Servlet 3.0 兼容的容器(Tomcat 7、Glassfish 3 等),那么您需要删除 @WebServlet 注释并在 web.xml 中以老式方式注册 servlet,如下所示:

    <servlet>
        <servlet-name>login</servlet-name>
        <servlet-class>com.example.Login</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>login</servlet-name>
        <url-pattern>/login</url-pattern>
    </servlet-mapping>
    

    另见:

    【讨论】:

    • 谢谢,只有 webservlet 不起作用给我错误,在谷歌上搜索,我需要包含 import javax.servlet.annotation.WebServlet;但这在spring源工具套件中不存在。 webservlet 给了我注释类型 webservlet 的属性值未定义。感谢您的帮助。
    • 然后删除它并使用老式的web.xml 配置方法,如链接的wiki页面所示。我已经更新了答案。
    • 谢谢。只是还是有问题,我仔细检查了所有错别字:pastebin.com/iwZxBhgh
    • “be.uhasselt.burgerdemocratie”是全限定类名吗?它似乎是唯一的包名称。如果它确实是 FQN,尽管它违反了 Java 命名约定,那么这个错误意味着它没有被编译到正确的位置。您使用的是什么 IDE?
    • 我做的和教程中的完全一样,这里只给出包名是我的 web.xml 和我的 servlet 的 2 个屏幕截图。我正在使用弹簧工具套件。 dl.dropbox.com/u/608219/1.pngdl.dropbox.com/u/608219/2.png 谢谢你的帮助。
    【解决方案2】:

    您不能将 .java 文件放入已编译的应用程序中。查看本教程:http://netbeans.org/kb/docs/javaee/ecommerce/page-views-controller.html 使用 NetbeansIDE 开发的 jsp+servlet 示例。
    并回答问题:是的,完全有可能。

    【讨论】:

    • 没有在tomcat服务器上编译部署,但是我的jsp页面没有找到 /servlet/login 。我有一个控制器一切。那个教程我已经读过了。
    猜你喜欢
    • 1970-01-01
    • 2016-07-21
    • 2019-11-03
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-14
    相关资源
    最近更新 更多