本文共 3664 字,大约阅读时间需要 12 分钟。
1.1 案例三:记录网站的登录成功的人数.1.1.1 需求:
登录成功后,5秒后跳转到某个页面,在页面中显示您是第x位登录成功的用户.1.1.2 分析:1.1.2.1 技术分析:【ServletContext对象】***** ServletContext对象存取数据,存的数据都是有一定的作用的范围的.这种对象称为是域对象./*** 登录代码的Servlet*/public class UserCountServlet extends HttpServlet { private static final long serialVersionUID = 1L; @Override public void init() throws ServletException { // 初始化一个变量count的值为0. int count = 0; // 将这个值存入到ServletContext中. this.getServletContext().setAttribute("count", count); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { response.setContentType("text/html;charset=UTF-8"); // 1.接收表单提交的参数. String username = request.getParameter("username"); String password = request.getParameter("password"); // 2.封装到实体对象中. User user = new User(); user.setUsername(username); user.setPassword(password); // 3.调用业务层处理数据. UserService userService = new UserService(); User existUser = userService.login(user); // 4.根据处理结果显示信息(页面跳转). if(existUser == null){ // 登录失败 response.getWriter().println("登录失败:用户名或密码错误!
"); }else{ // 登录成功
// 记录次数: int count = (int) this.getServletContext().getAttribute("count"); count++; this.getServletContext().setAttribute("count", count); response.getWriter().println("登录成功:您好:"+existUser.getNickname()+"
"); response.getWriter().println("页面将在5秒后跳转!
"); response.setHeader("Refresh", "5;url=/day09/CountServlet"); } } catch (Exception e) { e.printStackTrace(); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }
}
public class CountServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 获得Count的值。 response.setContentType("text/html;charset=UTF-8"); int count = (int) this.getServletContext().getAttribute("count"); response.getWriter().println("您是第"+count+"位登录成功的用户!
"); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }}1.1.4 总结:1.1.4.1 ServletConfig:了解.获得Servlet的配置信息.* String getServletName(); ---获得Servlet在web.xml中配置的name的值.* String getInitParameter(String name); ---获得Servlet的初始化参数的.* Enumeration getInitParameterNames(); ---获得所有Servlet的初始化参数的名称.1.1.4.2 ServletContext:重要ServletContext的作用:* 1.用来获得全局初始化参数.* 2.用来获得文件的MIME的类型.* 3.作为域对象存取数据.ServletContext是一个域对象. * 作用范围:整个web工程. * 创建:服务器启动的时候,tomcat服务器为每个web项目创建一个单独ServletContext对象. * 销毁:服务器关闭的时候,或者项目从服务器中移除的时候.* 4.用来读取web项目下的文件.
转载于:https://blog.51cto.com/13517854/2119008