第三十一节(java-实现QQ空间访问量统计系统)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了第三十一节(java-实现QQ空间访问量统计系统),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5411字,纯文字阅读大概需要8分钟。
内容图文
![第三十一节(java-实现QQ空间访问量统计系统)](/upload/InfoBanner/zyjiaocheng/1241/a3f78319d28c4c3f9ffe00d81439a62d.jpg)
LoginServlet登录页面: package com.tanzhou.servlet; import java.io.IOException; import java.io.PrintWriter; import java.io.UnsupportedEncodingException; import java.util.Enumeration; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import com.tanzhou.util.User; import com.tanzhou.util.UserList; public class LoginServlet extends HttpServlet { public LoginServlet() { super(); } public void destroy() { super.destroy(); // Just puts "destroy" string in log } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType( " text/html;charset=utf-8 " ); String name = getNewString(request.getParameter("username")); String pass = request.getParameter("userpass"); if(name==null || "".equals(name)){ response.sendRedirect("/OnlineUserDemo/login.html"); return ; }else{ // 讲登录的用户名和密码保存到session中 HttpSession session = request.getSession(true); // 保存对象到session User user = (User)session.getAttribute("user"); if(user==null || !name.equals(user.getName())){ user = new User(name); session.setAttribute("user", user); } } PrintWriter out = response.getWriter(); out.println("欢迎用户:"+name+"登录"+"<br/>"); out.println("<hr>"+"在线人数列表:"+"<br/>"); UserList ul = UserList.getInstance(); /** * Enumeration(列举) */ Enumeration<String> enums = ul.getUserList(); int i = 0; while(enums.hasMoreElements()){ out.println(enums.nextElement()); // 遍历出来的用户信息out.println(" "); if((++i%8)==0){ out.println("<br>"); } } out.println("<hr>"); out.println("<br>"+"在线人数:"+ul.getUserCount()); out.println("<br>"+"<a href=‘/OnlineUserDemo/servlet/OutServlet‘>退出登录</a>"); out.flush(); out.close(); } publicvoid init() throws ServletException { } /** * 编码集处理 * @param str * @return * @throws UnsupportedEncodingException */publicstatic String getNewString(String str) throws UnsupportedEncodingException { returnnew String(str.getBytes("ISO-8859-1"),"UTF-8"); } } OutServlet退出页面: package com.tanzhou.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import com.tanzhou.util.User; publicclass OutServlet extends HttpServlet { /** * Constructor of the object. */public OutServlet() { super(); } /** * Destruction of the servlet. <br> */publicvoid destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } publicvoid doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); } publicvoid doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); HttpSession session = request.getSession(true); User user = (User)session.getAttribute("user"); session.invalidate(); // session销毁 response.sendRedirect("/OnlineUserDemo/login.html"); } /** * Initialization of the servlet. <br> * * @throws ServletException if an error occurs */publicvoid init() throws ServletException { // Put your code here } } User页面: package com.tanzhou.util; import javax.servlet.http.HttpSessionBindingEvent; import javax.servlet.http.HttpSessionBindingListener; /** * * @author Tony Liu * * *如果一个对象实现了HttpSessionBindingListener接口,当这个对象被绑定到session中或者从session中被删除时, *Servlet容器会通知该对象。 */publicclass User implements HttpSessionBindingListener{ // 得到UserList的实例private UserList ul = UserList.getInstance(); private String name; public User(String name){ this.name = name; } public String getName() { return name; } publicvoid setName(String name) { this.name = name; } /** * session创建对象--自动调用valueBound 用户登录 */ @Override publicvoid valueBound(HttpSessionBindingEvent arg0) { ul.addUser(name); // 添加用户 } /** * session销毁--自动调用valueUnbound 用户退出 */ @Override publicvoid valueUnbound(HttpSessionBindingEvent arg0) { ul.removeUser(name); //删除用户 } } UserList页面: package com.tanzhou.util; import java.util.Enumeration; import java.util.Vector; /** * 用户集合类 * @author Tony Liu * * * * 单例模式---是指一个类只有一个实例,并且能够自行的实例化 * 特点:构造方法是私有 * * 单例模式:懒汉式单例 饿汉式单例 登记式单例 * 特点: * 1、单例类只能有一个实例 * 2、单例类必须自己创建自己的唯一实例 * 3、单例类必须给所有其他对象提供这一实例 */publicclass UserList { privatestatic final UserList userList = new UserList(); /** * List 接口一共有三个 ArrayList Vector LinkedList */private Vector<String> v; //用户集合private UserList(){ v = new Vector<String>(); } publicstatic UserList getInstance(){ return userList; } /** * 用户登录-添加用户信息 * @param name */publicvoid addUser(String name){ if(name!=null){ v.addElement(name); } } /** * 用户退出的方法 * @param anme */publicvoid removeUser(String name){ if(name!=null){ v.remove(name); } } /** * 用户数量的统计 * @return */publicint getUserCount(){ return v.size(); } /** * Enumeration (列举) * @return */public Enumeration<String> getUserList(){ return v.elements(); } }
原文:http://www.cnblogs.com/Deng1185246160/p/4279730.html
内容总结
以上是互联网集市为您收集整理的第三十一节(java-实现QQ空间访问量统计系统)全部内容,希望文章能够帮你解决第三十一节(java-实现QQ空间访问量统计系统)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。