struts2统计访问页面人数

本文介绍了一个基于Struts2框架的登录示例项目,详细展示了如何通过Struts2处理用户登录逻辑,包括登录验证和注销功能,并配置了Struts2的配置文件。

maven项目去http://maven.aliyun.com/nexus/#welcome搜索struts2-core,引入jdk支持的版本jar包


java代码

package cn.et.struts2.lesson01;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;
import org.apache.struts2.StrutsTestCase;
import org.junit.Test;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionProxy;
import com.opensymphony.xwork2.ActionSupport;
import com.sun.net.httpserver.HttpServer;


import junit.framework.TestCase;

/**
 * 		struts2的action类类似servlet
 * 		继承ActionSupport实现execute方法
 * 
 * 		servlet HttpServlet doGet  doPost
 * 		web.xml 路径映射到该servlet
 * 
 * 	
 * 		servlet是单实例的
 * 				线程不安全(synchronize 变量定义在局部方法中)节省内存
 * 		struts的action是多实例的 每次请求都会创建新的实例
 * 			占用内存多  线程安全
 * 		hellWorldAction h=new HelloWorldAction()
 * 
 * @author Administrator
 *
 */

public class LoginAction extends ActionSupport{
	private String userName;
	private String passwrod;
	
	public String login() throws IOException  {
		HttpServletRequest request=ServletActionContext.getRequest();
		HttpServletResponse response=ServletActionContext.getResponse();
		response.setContentType("text/html;charset=UTF-8");
		PrintWriter out=response.getWriter();
		Map<String, Object> ac=ActionContext.getContext().getApplication();
		Object list=ac.get("userList");
		if(list==null){
			list=new ArrayList<>();
			ac.put("userList", list);
		}
		List myList=(List)list;
		if(!myList.contains("userName")){
			myList.add(userName);
		}
		
		out.println("欢迎:"+userName);
		out.println("当前人数:"+myList.size());
		String path=request.getContextPath();
		out.println("<a href='"+path+"/lesson01/userout.action?userName="+userName+"'>退出</a>");
		return null;
	}
	public  String loginout() throws IOException, ServletException{
		HttpServletRequest request=ServletActionContext.getRequest();
		HttpServletResponse response=ServletActionContext.getResponse();
		response.setContentType("text/html;charset=UTF-8");
		PrintWriter out=response.getWriter();
		Map<String, Object> ac=ActionContext.getContext().getApplication();
		List list=(List)ac.get("userList");
		list.remove(userName);
		request.getRequestDispatcher("login.jsp").forward(request, response);
		return null;
	}
	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getPasswrod() {
		return passwrod;
	}

	public void setPasswrod(String passwrod) {
		this.passwrod = passwrod;
	}
	
	
}

struts2.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<!-- 如果需要使用struts2高级功能   必须继承struts-default -->
<package name="mypackage" extends="struts-default">
<!-- 
	浏览器 网址 :localhost:8080/sl/hello
	mothod=方法名
 -->
<action name="user" class="cn.et.struts2.lesson01.LoginAction" method="login"></action>

</package>

</struts>	


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值