我们来统计一下网页的访问次数
创建个项目
创建个Servlet
我们先来一个BaseServlet
可以作为基类
方便管理
public class BaseServlet extends HttpServlet {
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
super.doGet(request, response);
}
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
super.doPost(request, response);
}
}
然后我们来一个MainServlet
继承BaseSerlvet
public class MainServlet extends BaseServlet {
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取ServletContext
ServletContext context = getServletContext();
//从context中获取count属性,强转成Integer
Object countObj = context.getAttribute("count");
Integer count = (Integer) countObj;
//如果是第一次访问,就赋值一个1,如果不是第一次,就加上1
if (count == null) {
count = 1;
} else {
count++;
}
//设置Content-Type
response.setContentType("text/html;charset=utf-8");
//获取writer,然后print内容
response.getWriter().print("已经被访问了" + count + "次");
//设置一下attribute属性
context.setAttribute("count", count);
}
}
这里有一个问题
就是Integer count=(Integer) countObj;
这行代码,如果countObj为空,会不会报错呢
我单独拿出来测试了一下
public static void main(String[] args) {
Object object = null;
Integer integer = (Integer) object;
System.out.println(integer);
}
由此发现,是不会报错的
所以说(Integer)null这样是不会报错的
integer也是为null
然后我们再把servlet配置一下
<servlet>
<servlet-name>mainServlet</servlet-name>
<servlet-class>servlet.MainServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>mainServlet</servlet-name>
<url-pattern>/main</url-pattern>
我们配置的url是/main
所以我们启动项目
然后访问/main
我们发现
成功统计了访问次数
成功