request之额外路径

谈到额外路径 ,首先要明白映射路径,映射路径是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);
}

posted @ 2019-04-24 09:59  zhengzhan19  阅读(86)  评论(0编辑  收藏  举报