我想知道是否有办法在java servlet中执行类似的代码,就像我在express.js中一样
在表达中我可以说例如:
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创建一个..?
由于
答案 0 :(得分:2)
几乎。借助前缀映射/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,但它会像全局前端控制器一样,这不一定是个好主意,因为您必须采用CSS / JS /图像等静态资源。考虑到这一点。
如果你真的打算创建一个REST服务,而是看看JAX-RS而不是“普通的vanilla”servlet。它将进一步减少样板代码。另见a.o. Servlet vs RESTful