-
Servlet的时候eclipse已经帮助建好了url-patten。
-
-
@WebServlet("/HelloWorld")
-
public class HelloWorld extends HttpServlet {
-
private static final long serialVersionUID = 1L;
-
-
/**
-
* @see HttpServlet#HttpServlet()
-
*/
-
public HelloWorld() {
-
super();
-
// TODO Auto-generated constructor stub
-
}
-
-
/**
-
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
-
*/
-
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
-
// TODO Auto-generated method stub
-
doPost(request,response);
-
}
-
-
/**
-
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
-
*/
-
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
-
// TODO Auto-generated method stub
-
String u_name=request.getParameter("u_name");
-
String ad="Welcome,"+u_name;
-
request.setAttribute("ad", ad);
-
request.getRequestDispatcher("/welcome.jsp").forward(request, response);
-
}
-
-
}
-
打开你的Servlet类,你会发现在类上面有一个@WebServlet("/HelloWorld")。
如果你在web.xml里面这样写:
<servlet>
<servlet-name>helloworld</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>helloworld</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
就是报错。
-
解决方法一:
去掉类上面的@WebServlet("/HelloWorld")。在web.xml写<servlet-mapping>。
-
解决方法二:
在web.xml里不写 <servlet-mapping>,而要保留@WebServlet("/HelloWorld")。如下web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>HelloWorld</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>helloworld</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
</web-app>
进一步查看代码发现原来servlet类里面已经有一个:@WebServlet("/demo"),这好像是一个新特性,可以免去自己在web.xml中修改映射关系的过程,有可能是有重复定义的嫌疑,导致编译出错。