自从一周以来,我一直在努力为我的问题找到解决方案但却无法成功。 这种类型的问题可能超过100个,但它们根本没有帮助我。 请问是否有人可以解释究竟是什么是URL映射以及如何完成?
我正在使用tomcat 7和eclipse java EE。我的jsp文件运行正常但是当我单击提交时出现错误。我试过差不多了。请告诉我我正在犯的错误。
这是我的jsp代码:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form method="post" action="/calculator/calc">
<input type="text" name="n1"><br>
<input type="text" name="n2"><br>
<input type="submit">
</form>
</body>
</html>
Servlet代码:
public class calc extends GenericServlet
{
public void service(ServletRequest req,ServletResponse res) throws IOException
{
res.setContentType("text/jsp");
PrintWriter pw=res.getWriter();
String s1=req.getParameter("n1");
String s2=req.getParameter("n2");
int a=Integer.parseInt(s1);
int b=Integer.parseInt(s2);
pw.println(a+b);
}
}
和web.xml
<?xml version="1.0" encoding="UTF-8"?>
<display-name>calculator</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
答案 0 :(得分:2)
在 web.xml 中,您需要为servlet指定一个名称,指明将为其提供服务的类:
<servlet>
<servlet-name>mycalc</servlet-name>
<servlet-class>yourpackage.calc</servlet-class>
</servlet>
然后将url映射到servlet ...
<servlet-mapping>
<servlet-name>mycalc</servlet-name>
<url-pattern>/calculator/calc</url-pattern>
</servlet-mapping>
你在servlet-mapping中放入的url是你必须放在帖子的动作中的那个
答案 1 :(得分:0)
在您的表单的操作中,您将网址指定为/calculator/calc
,因此在您的web.xml
Ithe容器dint中找到网址的任何映射,即使您没有使用基于注释的映射尝试这样的事情
<servlet>
<servlet-name>s1</servlet-name>
<servlet-class>packageName.servletName</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>s1</servlet-name>
<url-pattern>/calculator/calc</url-pattern>
</servlet-mapping>
或
@WebServlet(name="calServlet", urlPatterns = { "/calculator/calc" })
高于你的班级定义。但请记住,如果你使用它,则不需要在web.xml
中指定映射,但是你应该有Servlet-3和tomcat 7