【发布时间】:2017-06-06 00:04:42
【问题描述】:
我有主页,当我点击参考时 Servlet 不起作用,我收到错误 404。我认为web.xml 映射有问题,但不明白在哪里。请帮我纠正这个问题。谢谢。
我的web.xml
<!--Homepage.-->
<servlet>
<servlet-name>HomePageServlet</servlet-name>
<servlet-class>ru.pravvich.servlets.HomePageServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HomePageServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!--Add user in database.-->
<servlet>
<servlet-name>AddUserServlet</servlet-name>
<servlet-class>ru.pravvich.servlets.AddUserServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AddUserServlet</servlet-name>
<url-pattern>/addition</url-pattern>
</servlet-mapping>
我的jsp主页:
<body>
<ul>
<li><a href="addition.jsp">addition</a></li>
</ul>
</body>
还有带有doGet 方法的servlet:
public class HomePageServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF8");
req.getRequestDispatcher("/WEB-INF/views/index.jsp").forward(req,resp);
}
}
通过http://localhost:8080/items/,我得到了我的主页。
但是,当我点击来自index.jsp 的引用时,返回:HTTP Status [404] – [Not Found]
我的addition.jsp同样位于/WEB-INF/views/addition.jsp
我的 Servlet 与 addition.jsp 一起工作:
public class AddUserServlet extends HttpServlet {
private DBJoint db;
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
db = (DBJoint) getServletContext().getAttribute("db");
db.getDBExecutor().addUser(
new User(req.getParameter("name"),
req.getParameter("login"),
req.getParameter("email")));
req.setAttribute("serverAnswer", "Add ok!");
req.getRequestDispatcher("/WEB-INF/views/answer.jsp").forward(req, resp);
}
}
还有addition.jsp:
<body>
<form method="post" action="addition">
<input type="text" required placeholder="name" name="name"><br>
<input type="text" required placeholder="login" name="login"><br>
<input type="text" required placeholder="email" name="email"><br>
<input type="submit" value="add">
</form>
</body>
【问题讨论】: