【问题标题】:Servlet response send redirect errorServlet 响应发送重定向错误
【发布时间】:2016-03-29 15:57:48
【问题描述】:

我刚刚收到错误 404:请求的资源不可用。我无法弄清楚这里出了什么问题:

这是xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
    <servlet>
        <servlet-name>servlet</servlet-name>
        <servlet-class>controller.Servlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>servlet</servlet-name>
        <url-pattern>/login</url-pattern>
    </servlet-mapping>
</web-app>

小服务程序:

[@WebServlet(name = "controller.Servlet")
public class Servlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String id = request.getParameter("id");
        String password = request.getParameter("password");

        if (LoginService.authentication(id, password)) {
            response.sendRedirect("succes.jsp");
        } else {
            response.sendRedirect("index.jsp");
        }
        return;
    }][1]

index.jsp 文件:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Login Page</title>
</head>
<body>
<form action="/login" method="post">
    Username: <input type="text" name="id" >
    <br>
    Password: <input type="password" name="password">
    <br>
    <input type="submit" value="submit">
</form>
</body>
</html>

succes.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Login Succesfully</title>
</head>
<body>
    <h1>Login succesfully</h1>
</body>
</html>

这是文件夹结构: http://i.stack.imgur.com/ZGMH4.png

【问题讨论】:

    标签: java xml jsp servlets


    【解决方案1】:

    更新 web.xml:

     <servlet>
                <servlet-name>controller.Servlet</servlet-name>
                <servlet-class>com..Servlet(replace with your servlet class namespace)</servlet-class>
        </servlet>
    

    或者,您可以像这样在 @WebServlet 中定义 urlPatterns 并从 web.xml 中删除 servlet 定义和 url 模式:

    @WebServlet(name="controller.Servlet", urlPatterns={"/login"})
    public class Servlet extends HttpServlet{
    .......
    }
    

    web.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
             version="3.1">
    
    </web-app>
    

    【讨论】:

    • 另一个问题是他试图重定向到WEB-INF/succes.jsp
    猜你喜欢
    • 2011-09-21
    • 1970-01-01
    • 2020-03-06
    • 1970-01-01
    • 1970-01-01
    • 2018-04-02
    • 1970-01-01
    • 1970-01-01
    • 2018-03-12
    相关资源
    最近更新 更多