我是 Servlet 技术的新手,这绝对是个基本问题,但我对那些对我来说太复杂的教程感到困惑。
我有一个新的 servlet HelloWorldServlet
。在web.xml
,我有这个
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<servlet>
<servlet-name>HelloWorldServlet</servlet-name>
<servlet-class>cz.hello.HelloWorldServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorldServlet</servlet-name>
<url-pattern>/HelloWorldServlet</url-pattern>
</servlet-mapping>
</web-app>
HelloWorldServlet.scala
(我更喜欢 scala 到 java)看起来像这样
package cz.hello
import javax.servlet.http.HttpServlet
import javax.servlet.http.HttpServletRequest
import javax.servlet.http.HttpServletResponse
class HelloWorldServlet extends HttpServlet {
override def doGet(req: HttpServletRequest, resp: HttpServletResponse) = {
resp.setContentType("text/plain")
resp.getWriter.println("Hello, world")
}
}
到目前为止一切顺利,servlet 是使用 Jetty 加载的,我很高兴,我可以在http://localhost:8080/HelloWorldServlet
.
现在,我希望 servlet 能够以不同的方式对 GET 请求做出反应,例如,http://localhost:8080/HelloWorldServlet/hello
对http://localhost:8080/HelloWorldServlet/goodbye
它们两者做出反应。例如像(伪代码)
override def doGet(req: HttpServletRequest, resp: HttpServletResponse) = {
resp.setContentType("text/plain")
if (req.isAddress("/hello") {
resp.getWriter.println("Hello, world")
} else {
resp.getWriter.println("Goodbye, world")
}
}
怎么能达到呢?