700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > java实现qq空间模块_第三十一节(java-实现QQ空间访问量统计系统)

java实现qq空间模块_第三十一节(java-实现QQ空间访问量统计系统)

时间:2023-04-21 03:06:57

相关推荐

java实现qq空间模块_第三十一节(java-实现QQ空间访问量统计系统)

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 classLoginServlet extends HttpServlet {publicLoginServlet() {

super();

}public voiddestroy() {

super.destroy();//Just puts "destroy" string in log

}public voiddoGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doPost(request,response);

}public voiddoPost(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= newUser(name);

session.setAttribute("user", user);

}

}

PrintWriterout =response.getWriter();out.println("欢迎用户:"+name+"登录"+"

");out.println("

"+"在线人数列表:"+"

");

UserList ul=UserList.getInstance();/**

* Enumeration(列举)*/Enumeration enums =ul.getUserList();int i = 0;while(enums.hasMoreElements()){out.println(enums.nextElement()); //遍历出来的用户信息

out.println("");if((++i%8)==0){out.println("

");

}

}out.println("

");out.println("

"+"在线人数:"+ul.getUserCount());out.println("

"+" 退出登录");out.flush();out.close();

}public voidinit() throws ServletException {

}/**

* 编码集处理

* @param str

* @return

* @throws UnsupportedEncodingException*/

public staticString getNewString(String str) throws UnsupportedEncodingException

{return new 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;public classOutServlet extends HttpServlet {/**

* Constructor of the object.*/

publicOutServlet() {

super();

}/**

* Destruction of the servlet.

*/

public voiddestroy() {

super.destroy();//Just puts "destroy" string in log//Put your code here

}public voiddoGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doPost(request,response);

}public voiddoPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html");

PrintWriterout =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.

*

* @throws ServletException if an error occurs*/

public voidinit() 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容器会通知该对象。*/

public classUser implements HttpSessionBindingListener{//得到UserList的实例

private UserList ul =UserList.getInstance();privateString name;publicUser(String name){this.name =name;

}publicString getName() {returnname;

}public voidsetName(String name) {this.name =name;

}/**

* session创建对象--自动调用valueBound 用户登录*/@Overridepublic voidvalueBound(HttpSessionBindingEvent arg0) {

ul.addUser(name);//添加用户

}/**

* session销毁--自动调用valueUnbound 用户退出*/@Overridepublic voidvalueUnbound(HttpSessionBindingEvent arg0) {

ul.removeUser(name);//删除用户

}

}

UserList页面:

package com.tanzhou.util;

import java.util.Enumeration;

import java.util.Vector;/**

* 用户集合类

* @author Ming

*

*

*

* 单例模式---是指一个类只有一个实例,并且能够自行的实例化

* 特点:构造方法是私有

*

* 单例模式:懒汉式单例 饿汉式单例 登记式单例

* 特点:

* 1、单例类只能有一个实例

* 2、单例类必须自己创建自己的唯一实例

* 3、单例类必须给所有其他对象提供这一实例*/

public classUserList {private static final UserList userList = newUserList();/**

* List 接口一共有三个 ArrayList Vector LinkedList*/

private Vector v; //用户集合

privateUserList(){

v= new Vector();

}public staticUserList getInstance(){returnuserList;

}/**

* 用户登录-添加用户信息

* @param name*/

public voidaddUser(String name){if(name!=null){

v.addElement(name);

}

}/**

* 用户退出的方法

* @param anme*/

public voidremoveUser(String name){if(name!=null){

v.remove(name);

}

}/**

* 用户数量的统计

* @return*/

public intgetUserCount(){returnv.size();

}/**

* Enumeration (列举)

* @return*/

public EnumerationgetUserList(){returnv.elements();

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。