大家早上好,
我对J2EE框架有疑问。
由于ASP.net 3.5 mvc添加了一个新功能“路由”,我们在j2ee中有类似的功能吗?
这里有一些关于asp.net3.5中此功能的文字
路由是.NET 3.5 SP1中的一项新功能,ASP.NET MVC使用此功能为控制器类提供响应请求的功能。 ASP.NET MVC使用类似于REST的URL(Representational State Transfer),它比常规的ASP.NET Web应用程序URL更清晰。以下是此类网址的示例:
/products/show/881
/customers/list
/login/register
正如您所看到的,类似REST的URL往往干净,简单,并且不直接在服务器上公开.aspx文件。虽然您可以在ASP.NET MVC应用程序中直接寻址.aspx页面,但这不是主要的想法。
通过开发人员定义的路由,ASP.NET MVC应用程序可以将请求定向到控制器。路由为整个ASP.NET应用程序定义一次,因此Global.asax文件是定义这些路由的逻辑位置。实际上,如果您查看ASP.NET MVC应用程序中的默认Global.asax.cs文件,您将看到一个名为RegisterRoutes的方法。从Application_Start方法调用此方法,并按以下方式实现:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home",
action = "Index",
id = "" }
);
}
默认情况下,名为“Default”的路由由三部分定义:controller,action,最后是由斜杠分隔的ID。当请求到达MVC应用程序时,将根据此定义解析URL。例如,给定“/ products / show / 881”的请求,这将被解析,以便“controller”参数具有“products”的值,“action”参数将是“show”,最后是“id”将是“881”。
答案 0 :(得分:2)
如果你使用Spring,你可以使用它的@RequestMapping注释来实现类似的东西,所以你可以有类似的东西
@Controller
@RequestMapping("/products")
public class ProductController {
@RequestMapping("/show/{id})
public String show(@PathVariable Integer id) {
.......
}
}
如果你想确保不能直接调用jsps,你可以将它们放在WEB-INF中