Struts2学习之路_2_session的使用

来源:互联网 发布:linux shell while 编辑:程序博客网 时间:2024/06/03 21:47

ps:这是session的两种使用方法,直接沿用了学习路1的例子,所以不变的地方我不贴了。学习路1传送门

1、代码

1.1action代码

package com.god.action;import java.util.HashMap;import java.util.Map;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;import com.god.mod.*;public class LoginAction_2014_4_28 extends ActionSupport {org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter d;private String uname;private String upasswd;public String getUname() {return uname;}public void setUname(String uname) {this.uname = uname;}public String getUpasswd() {return upasswd;}public void setUpasswd(String upasswd) {this.upasswd = upasswd;}public String execute(){// 类似于servlet的doGet和doPost方法if(uname.equals("fang")&&upasswd.equals("123")){User_2014_4_29 users=new User_2014_4_29(uname,upasswd);/**一般情况键都是不变的,值却不断变化。 * 第一种方法,sessions其实是假的,它是Map类的。Map<String,Object>session =null;//这里value的位置之所以是object是为了可以放类,而不是单单的房一个值。session=ActionContext.getContext().getSession();session.put("CURRENT_USER",uname);session.put("CURRENT_USERS", users); *///第二种是使用真的session。HttpSession session=null;HttpServletRequest request=ServletActionContext.getRequest();session=request.getSession();session.setAttribute("CURRENT_USER", uname);session.setAttribute("CURRENT_USERS", users);return SUCCESS;}else{return INPUT;}}}


1.2、User_2014_4_29类

package com.god.mod;public class User_2014_4_29 {private String uname;private String upasswd;public String getUname() {return uname;}public void setUname(String uname) {this.uname = uname;}public String getUpasswd() {return upasswd;}public void setUpasswd(String upasswd) {this.upasswd = upasswd;}public User_2014_4_29(String uname,String upasswd) {super();this.upasswd = upasswd;this.uname = uname;}}



2、页面代码

2.1、2014_4_28_welcome_lx_01.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">        <title>My JSP '2014_4_28_welcome_lx_01.jsp' starting page</title>    <meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">-->  </head>    <body><center>  <div>    </div>  <h3>一个简单的Struts 2应用</h3>  <br/><hr/>  ${uname}欢迎您!<br/>  读取session1:${sessionScope.CURRENT_USER }<br/>  读取session2:${sessionScope.CURRENT_USERS.uname }<br/>  </center>      </body></html>


3、成果截图






4、福利

ps:这是为了方便简单了解Map类另外贴的代码
package com.god.mod;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Set;public class MapDemo {public static void main(String args[]){List list=new ArrayList();Map<String,String>map =new HashMap<String,String>();map.put("sa", "超级管理员A");//第一个值为key,第二个为valuemap.put("sb", "超级管理员B");map.put("sc", "超级管理员C");map.put("sa", "超级管理员G");//会覆盖Set<String> set = map.keySet();int a = map.size();for(String key:set){String s = map.get(key);System.out.println(a+s);}}}





0 0
原创粉丝点击