getContextPath、getServletPath、getRequestURI的区别
2016-07-21 20:55
489 查看
工程图见附件:
假定你的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() {
}
}
假定你的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() {
}
}
相关文章推荐
- UVA - 133 The Dole Queue
- 376. Wiggle Subsequence
- fineUI ueditor(可能别的editor也有)配置注意事项
- button控制视图的隐藏与显示
- 遇到:无法解析类型 java.lang.CharSequence怎么办?
- HDU 4273-G - Rescue-三维凸包求重心
- 为UINavigationBar添加背景图片的几种简单思路
- 单例模式创建Volley框架的RequestQueue
- 三维建模中shape of silhouette 的简要理解
- E - 4 Values whose Sum is 0
- UISplitViewController 纯代码
- iOS UILabel实现部分字段更改样式使用
- json-lib-2.4.jar Bug,json字符串中value为"[value]"结构时,解析为数组,不会解析成字符串
- UESTC 2016 Summer Training #10 Div.2(未完待续)
- vue.js组件化开发实践
- UITableView 横向滚动(一)
- 1085. Perfect Sequence (25)-PAT甲级真题
- POJ 3368 Frequent values 线段树 || RMQ
- UVA - 133 The Dole Queue
- 1101. Quick Sort (25)-PAT甲级真题