谈到额外路径 ,首先要明白映射路径,映射路径是servlet处理的路径,在web.xml中配置。比如配置一个/emp的映射路径,意味着客户端可以通过http:+项目路径+/emp访问服务器的项目,而所谓的额外路径就是在/emp后加上/*(或者其它),/*代表全部,任意。
那么额外路径有啥意义呢?也就是通过取得客户端的信息,来判断具体调用哪个方法,比如说客户端的登入和注销 ,可以放在同一个servlet中执行(服务器里),这时在客户端的页面显示两条路径 一个登入,有一个注销,传递哪个,在服务器里就调用哪个,因此实现了客户端的登入和注销。
示例如下:
//登入方法
private void login(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String name=req.getParameter("usename"); String pwd=req.getParameter("pwd"); if("smith".equals(name)&&"1234".equals(pwd)) { System.out.println("登入成功"); req.getRequestDispatcher("/index.html ").forward(req, resp); } }//注销方法
public void logout(HttpServletRequest req, HttpServletResponse resp) throws IOException { System.out.println("注销成功"); resp.sendRedirect("/mvcpro/index.html/"); }
......
String pathinfo=req.getPathInfo();//获得额外路径 然后判断是登入还是注销方法,调用上面的方法
if("/login".equals(pathinfo)) { this.login(req, resp); }else if("/logout".equals(pathinfo)) { this.logout(req,resp); }