@WebServlet(
urlPatterns = {"/user/*"},
initParams = {
@WebInitParam(name = "USER_VIEW",value = "user.jsp")
}
)
public class User extends HttpServlet {
private String USER_VIEW;
public void init(){
USER_VIEW = getServletConfig().getInitParameter("USER_VIEW");
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
UserService userService = (UserService) getServletContext().getAttribute("userService");
String usrname = req.getPathInfo().substring(1);
if(userService.isUerExisted(usrname)){
Blah blah = new Blah();
blah.setUsername(usrname);
List<Blah> blahs = userService.getBlahs(blah);
req.setAttribute("blahs",blahs);
}
req.setAttribute("username",usrname);
req.getRequestDispatcher(USER_VIEW).forward(req,resp);
}
USER_VIEW 是 user.jsp 页面.
在浏览器请求:http://localhost:8080/wbojsp/user/liming
请求大神支援!
从图中看得出来,当path不是/开头时,会自动添加当前请求的路径。所以你的请求会一直被servlet拦截处理而不到页面。
截图只是httpservlet的一个实现类。
https://blog.csdn.net/zhouzhiande/article/details/52167626
doGet 加一句,你就知道原因了
System.out.println(req.getRequestURI());