使用Eclipse+Servlet+Jsp时控制台报错

我们在使用Eclipse+Servlet+Jsp做简单的例子通过超链接调用 Servlet报:

Caused by: java.lang.IllegalArgumentException: The servlets named [AcceptLink] and [com.dc.AcceptLink] are both mapped to the url-pattern [/AcceptLink] which is not permitted
at org.apache.catalina.deploy.WebXml.addServletMapping(WebXml.java:293)
at org.apache.catalina.startup.ContextConfig.processAnnotationWebServlet(ContextConfig.java:2458)
at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2133)
at org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2094)
at org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2086)
at org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2086)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1303)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:888)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:388)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5522)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
... 10 more

//--------文件名:link.jsp--------------------

<%@ page language="java" import="java.util.*" contentType="text/html;charset=gb2312"%>
<html>
<head>
<title>Servlet 接收链接传递参数示例</title>
</head>
<body>
<font size="2">
单击下面的链接:<br>
<a href="AcceptLink?name=Bill">调用 Servlet,并传递参数</a>
</font>
</body>
</html>
AcceptLink 这个 Servlet 的具体代码如下。

//--------文件名:AcceptLink.java--------------------

package com.dc;


import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class AcceptLink
 */
@WebServlet("/AcceptLink" )

public class AcceptLink extends HttpServlet {
private static final long serialVersionUID = 1L;
       
   
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
response.setCharacterEncoding("gb2312");
PrintWriter out = response.getWriter();
String name = request.getParameter("name");
out.println("<font size='2'>");
out.println("链接传递过来的参数为:<br>");
out.println("参数名称:name<br>");
out.println("参数值:" + name + "<br>");
out.print("</font>");
}


protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}


}


Servlet 的配置信息如下:

<servlet>
 <servlet-name>AcceptLink</servlet-name>
 <servlet-class>com.dc.AcceptLink</servlet-class>
 </servlet>
 <servlet-mapping>
 <servlet-name>AcceptLink</servlet-name>
 <url-pattern>/AcceptLink</url-pattern>
</servlet-mapping>


解决方法及原因:

@WebServlet告知容器,HelloServlet这个Servlet的名称是Hello,这是由name属性指定的,而如果客户端请求的URL是/hello.view,则由具Hello名称的Servlet来处理,这是由urlPatterns属性来指定的。在Java EE相关应用程序中使用标注时,可以记得的是,没有设置的属性通常会有默认值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xingdiango

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值