Spring3を使用することをお勧めします。GAEに準拠したクールなフレームワークです。これをGAEでURLマッピングに使用するには、次のことを行う必要があります。
1 Spring jarをダウンロードし、WEB-INF/libにコピーします
2web.xmlディスパッチャーサーブレットで定義します
<servlet>
<servlet-name>spring-servlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
3 web.xmlで、Dispatcherサーブレットのマッピングを指定します。例では、2つのURLマッピングを定義します。/adminおよび/serviceで始まるすべてのリクエストはSpringで処理されます。
<servlet-mapping>
<servlet-name>myspring</servlet-name>
<url-pattern>/admin/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>myspring</servlet-name>
<url-pattern>/service/*</url-pattern>
</servlet-mapping>
4コントローラーを作成します
// This controller process /admin addreses:
@Controller
public class AdminController {
@RequestMapping(value="/admin", method = RequestMethod.GET)
public String getAdminPage(HttpServletRequest request) {
return "/pages/admin/admin.jsp";
}
}
// This controller process /service addreses. Method getServicePage implements some
// RESTfull idea. You put in address id /service/123 and it return a page for this
// service
@Controller
public class ServiceController {
@Autowired
private ServiceDao serviceDao;
@RequestMapping(value="/service", method = RequestMethod.GET)
public String getServicesListPage(HttpServletRequest request) {
return "/pages/servise/service-list.jsp";
}
@RequestMapping(value="/service/{serviceId}", method = RequestMethod.GET)
public String getServicePage(HttpServletRequest request,
@PathVariable(value = "serviceId") int serviceId) {
Service service = serviceDao.get(serviceId);
request.setAttribute("service", service);
return "/pages/servise/service.jsp";
}
}
5 Springコンテキストファイルを作成し、スキャンパスを指定してコントローラーのコンテキストを取得します
Dispatcherサーブレット名に従って名前を付け、コントローラーに合わせてスキャンパッケージを設定します。例なしで処理できると思います。