【问题标题】:Even if mapped, I can't reach the servlet即使映射,我也无法访问 servlet
【发布时间】:2019-10-19 02:56:47
【问题描述】:

我正在使用 Tomcat 开发一个网站。
在将用户发送到另一个页面之前,我使用 servlet 对用户进行身份验证。
一开始,一切正常,但现在我已经将一些 html 页面移动到不同的文件夹中,我无法再访问 servlet。我没有移动的页面仍然有效。
其中一种情况是:从登录表单中,我试图调用一个 servlet。

<form action="login" method="post">
        Email<br>
        <input class="input" type="text" name="email"><br><br>
        Password<br>
        <input class="input" type="text" name="password"><br><br>
        Stay logged in?
        <select name="cookie">
            <option>yes</option>
            <option>no</option>
        </select><br><br>
        <input class="invia" type="submit" value="Read!">
    </form>

这里是xml代码

<servlet>
    <servlet-name>Login</servlet-name>
    <servlet-class>Login</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>Login</servlet-name>
    <url-pattern>/login</url-pattern>
</servlet-mapping>

很遗憾,我无法显示图片,但我会向您介绍我的组织:

- src 目录中的 servlet Login
- form 位于 web

目录中的 D-Login 目录中

如果我编译表单,它会将我发送到 http://localhost:8080/Servlet_war_exploded/Login/login 以代替 http://localhost:8080/Servlet_war_exploded/login

什么不工作?

【问题讨论】:

    标签: html xml tomcat servlets


    【解决方案1】:

    servlet 类必须在一个包中;默认包不起作用。 并且表单中“action”属性的值必须是"/context/login"

    【讨论】:

    • 谢谢!即使我没有更改登录目录,将操作设置为 /Servlet_war_exploded/login ,它也有效!为什么说要换目录?
    • Errrr,我假设 servlet 不能驻留在默认包中(就像早期版本的 Servlet 规范中的情况一样)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-08
    • 2020-10-11
    • 1970-01-01
    • 1970-01-01
    • 2021-08-20
    • 1970-01-01
    相关资源
    最近更新 更多