java Web应用程序中的动态URL(如在rails中)

Nay*_*ish 3 java routing servlets ruby-on-rails

我是一个Ruby on Rails开发人员,用Java编写Web应用程序.我试图实现类似于Rails中实现的东西.在Rails中,可以使用localhost:8000\Users\1当Users是Model而1是特定用户的id时调用链接.我想在Java中得到同样的东西.

我正在进行MVC类型设计,其中我的JSP页面是视图,而我的Servlet是控制器.我创建了一个servlet Users,它users.jsp现在呈现页面我可以使用URL访问该页面localhost:8000\projectName\Users,我想路由localhost:8000\projectName\Users\1到页面,user.jsp而相应的Servlet将处理向页面发送正确的用户(id = 1).

知道我怎么能做到这一点?

我在大学项目中这样做,不允许使用任何框架.我也宁愿我可以编码而不是安装.

Bal*_*usC 7

现在我可以使用URL localhost:8000\projectName\Users访问该页面,我想将localhost:8000\projectName\Users\1路由到页面user.jsp,而相应的Servlet将处理发送到页面的正确user(id = 1).

简单.将servlet映射到URL模式/Users/*而不是/Users.然后,你可以抓住的路径信息(部分 /Users的URL,这是这样/1如下在您的示例):

String pathInfo = request.getPathInfo();
// ...
Run Code Online (Sandbox Code Playgroud)

你可以users.jsp按照通常的方式前进.

Long id = Long.valueOf(pathInfo.substring(1));
User user = userService.find(id);
request.setAttribute("user", user);
request.getRequestDispatcher("/WEB-INF/users.jsp").forward(request, response);
Run Code Online (Sandbox Code Playgroud)