我想知道是否有一种方法可以像我在 express.js 中那样在 java servlet 中执行类似的代码
在表达中我可以说例如:
app.get('/:name',function(bla bla)){}
:/name
是一个参数,其中get的url可以是
localhost/kevin
localhost/joe
或其他任何...这很棒,因为我可以使用那个名称 (request.params.name)
等等。它也很棒,因为我可以创建多少条路线没有限制(据我所知),它只是一个占位符。
有没有一种方法可以使用 Java servlet 做到这一点?我希望能够有一个 html 页面,当我单击一个按钮时它会转到 localhost/button1
如果我单击另一个按钮它会转到 localhost/button2
.. 并且等等..但是我也让用户动态创建按钮所以我不想事先创建jsp页面,我只想让servlet创建一个..?
谢谢
最佳答案
差不多。借助前缀映射 /foo/*
和 HttpServletRequest#getPathInfo()
.
@WebServlet("/name/*")
public class NameServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getPathInfo().substring(1);
// ...
}
}
调用它作为
您可以选择将 servlet 映射到 /*
上,但是它会像全局前端 Controller 一样工作,这不一定是个好主意,因为您必须使用 CSS/等静态资源考虑到 JS/图像等。
如果您确实打算创建 REST 服务,请查看 JAX-RS 而不是“普通”servlet。它将进一步减少样板代码。另见 a.o. Servlet vs RESTful .
关于javascript - 使用 Java Servlet 的 URL 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31268959/