假定你的web application 名称为news,你在浏览器中输入请求路径:
http://localhost:8080/news/main/list.jsp
则执行下面向行代码后打印出如下结果:
1、 System.out.println(request.getContextPath()); //可返回站点的根路径。也就是项目的名字
打印结果:/news
2、System.out.println(request.getServletPath());
打印结果:/main/list.jsp
3、 System.out.println(request.getRequestURI());
打印结果:/news/main/list.jsp
4、 System.out.println(request.getRealPath("/"));
打印结果:F:\Tomcat 6.0\webapps\news\test
======
应该再给个例子如何统计页面访问量,呵呵
public class LogFilter extends HttpServlet implements Filter {
private FilterConfig filterConfig;
// Handle the passed-in FilterConfig
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
// Process the request/response pair
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) {
try {
HttpServletRequest httpRequest = (HttpServletRequest) request;
String uriStr = httpRequest.getServletPath();
if (uriStr != null && !uriStr.trim().equals("")) {
UserInfo user = (UserInfo) httpRequest.getSession()
.getAttribute(Constant.USERINFO_IN_SESSION);
String userId = "anonymous", userName = "anonymous";
if (user != null) {
userId = user.getUserid();
userName = user.getUserName();
}
DhccPortalLog dpl = new DhccPortalLog();
dpl.setUrl(uriStr);
dpl.setUserid(userId);
dpl.setUsename(userName);
java.sql.Date pubTime = new java.sql.Date( new java.util.Date().getTime() );
dpl.setAccessdate(pubTime);
dpl.setIp(httpRequest.getRemoteAddr());
DhccPortalLogDAO dplDao = new DhccPortalLogDAO();
Transaction tx = dplDao.getSession().beginTransaction();
try {
dplDao.save(dpl);
tx.commit();
} catch (Exception e) {
tx.rollback();
} finally {
dplDao.getSession().close();
}
}
} catch (Exception sx) {
filterConfig.getServletContext().log(sx.getMessage());
} finally {
try {
filterChain.doFilter(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}
}
// Clean up resources
public void destroy() {
}
}
public class LogFilter extends HttpServlet implements Filter {
private FilterConfig filterConfig;
// Handle the passed-in FilterConfig
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
// Process the request/response pair
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) {
try {
HttpServletRequest httpRequest = (HttpServletRequest) request;
String uriStr = httpRequest.getServletPath();
if (uriStr != null && !uriStr.trim().equals("")) {
UserInfo user = (UserInfo) httpRequest.getSession()
.getAttribute(Constant.USERINFO_IN_SESSION);
String userId = "anonymous", userName = "anonymous";
if (user != null) {
userId = user.getUserid();
userName = user.getUserName();
}
DhccPortalLog dpl = new DhccPortalLog();
dpl.setUrl(uriStr);
dpl.setUserid(userId);
dpl.setUsename(userName);
java.sql.Date pubTime = new java.sql.Date( new java.util.Date().getTime() );
dpl.setAccessdate(pubTime);
dpl.setIp(httpRequest.getRemoteAddr());
DhccPortalLogDAO dplDao = new DhccPortalLogDAO();
Transaction tx = dplDao.getSession().beginTransaction();
try {
dplDao.save(dpl);
tx.commit();
} catch (Exception e) {
tx.rollback();
} finally {
dplDao.getSession().close();
}
}
} catch (Exception sx) {
filterConfig.getServletContext().log(sx.getMessage());
} finally {
try {
filterChain.doFilter(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}
}
// Clean up resources
public void destroy() {
}
}