struts中调用servlet的两种方法——IcC方式和非IoC方式的代码demo

  1 package com.java1234.action;//所在的包
  2 
  3 import java.sql.Connection;//数据库连接的类
  4 import java.util.ArrayList;//ArrayList和List是在private List<DataDic> dataDicList=new 
  5 
  6 ArrayList<DataDic>();中用到
  7 import java.util.List;//ArrayList和List是在private List<DataDic> dataDicList=new 
  8 
  9 ArrayList<DataDic>();中用到
 10 
 11 import javax.servlet.http.HttpServletRequest;
 12 import javax.servlet.http.HttpSession;
 13 
 14 import net.sf.json.JSONObject;
 15 
 16 import org.apache.struts2.ServletActionContext;//访问Servlet API的时候使用的非IOC方式
 17 
 18 ,方法一:org.apache.Structs2.ServletActionContext获取session,request,response
 19 import org.apache.struts2.interceptor.ServletRequestAware; ////访问Servlet API的时候
 20 
 21 使用的IOC方式(Inversion of Control,自身不创建对象,仅仅描述创建它们的方式.)这里是
 22 
 23 让Action实现ServletRequestAware接口而已,没有实现ServletResponseAware接口还有
 24 
 25 SessionWare接口
 26 
 27 import com.java1234.dao.DataDicDao;
 28 import com.java1234.model.DataDic;
 29 import com.java1234.model.PageBean;
 30 import com.java1234.util.DbUtil;
 31 import com.java1234.util.NavUtil;
 32 import com.java1234.util.PageUtil;
 33 import com.java1234.util.PropertiesUtil;
 34 import com.java1234.util.ResponseUtil;
 35 import com.java1234.util.StringUtil;
 36 import com.opensymphony.xwork2.ActionSupport;//action需要继承这个类
 37 
 38 /*这里是让类实现ServletRequestAware接口就是非IOC方式,没有实现ServletResponseAware接
 39 
 40 口还有SessionWare接口*/
 41 // 这里是让类继承了ActionSupport这个类,实现IOC方式
 42 public class DataDicAction extends ActionSupport implements ServletRequestAware{  
 43 
 44     /**
 45      * 
 46      */
 47     private static final long serialVersionUID = 1L;
 48     
 49     private HttpServletRequest request;//定义request
 50     private DbUtil dbUtil=new DbUtil();
 51     private DataDicDao dataDicDao=new DataDicDao();
 52     private List<DataDic> dataDicList=new ArrayList<DataDic>();//定义一个DataDic
 53 
 54 类型的ArrayLst,但是ArrayList定义的时候需要用List a=new ArrayList();定义
 55     
 56     private String mainPage; 
 57     private String navCode;    
 58     
 59     private String s_ddTypeName;
 60     
 61     private String page;
 62     private int total;
 63     private String pageCode;
 64     
 65     private String ddId;
 66     
 67     
 68     
 69     
 70     public String getDdId() {
 71         return ddId;
 72     }
 73 
 74     public void setDdId(String ddId) {
 75         this.ddId = ddId;
 76     }
 77 
 78     public String getPage() {
 79         return page;
 80     }
 81 
 82     public void setPage(String page) {
 83         this.page = page;
 84     }
 85 
 86     public int getTotal() {
 87         return total;
 88     }
 89 
 90     public void setTotal(int total) {
 91         this.total = total;
 92     }
 93 
 94     public String getPageCode() {
 95         return pageCode;
 96     }
 97 
 98     public void setPageCode(String pageCode) {
 99         this.pageCode = pageCode;
100     }
101 
102     public List<DataDic> getDataDicList() {
103         return dataDicList;
104     }
105 
106     public void setDataDicList(List<DataDic> dataDicList) {
107         this.dataDicList = dataDicList;
108     }
109 
110     public String getMainPage() {
111         return mainPage;
112     }
113 
114     public void setMainPage(String mainPage) {
115         this.mainPage = mainPage;
116     }
117 
118     public String getNavCode() {
119         return navCode;
120     }
121 
122     public void setNavCode(String navCode) {
123         this.navCode = navCode;
124     }
125 
126     public String getS_ddTypeName() {
127         return s_ddTypeName;
128     }
129 
130     public void setS_ddTypeName(String s_ddTypeName) {
131         this.s_ddTypeName = s_ddTypeName;
132     }
133 
134     public String list(){//定义一个方法
135         if(StringUtil.isEmpty(page)){
136             page="1";
137         }
138         Connection con=null;
139         try{
140             HttpSession session=request.getSession();//非IoC方式的第一种
141 
142 方法:使用org.apache.struts2.SerVletActionContext获取session对象
143             DataDic s_dataDic=new DataDic();
144             if(s_ddTypeName!=null){
145                 s_dataDic.setDdTypeName(s_ddTypeName);//非IoC方式的第
146 
147 一种方法:使用org.apache.struts2.SerVletActionContext获取session对象
148                 session.setAttribute("s_ddTypeName", s_ddTypeName);//
149 
150 非IoC方式的第一种方法:使用org.apache.struts2.SerVletActionContext获取session对象
151             }else{
152                 Object o=session.getAttribute("s_ddTypeName");//非IoC
153 
154 方式的第一种方法:使用org.apache.struts2.SerVletActionContext获取session对象
155                 if(o!=null){
156                     s_ddTypeName=(String)session.getAttribute
157 
158 ("s_ddTypeName");//非Ioc方式的第一种方法:使用org.apache.struts2.SerVletActionContext
159 
160 获取session对象
161                     s_dataDic.setDdTypeName(s_ddTypeName);
162                 }
163             }
164             PageBean pageBean=new PageBean(Integer.parseInt
165 
166 (page),Integer.parseInt(PropertiesUtil.getValue("pageSize")));
167             con=dbUtil.getCon();
168             dataDicList=dataDicDao.dataDicList(con,s_dataDic,pageBean);
169             total=dataDicDao.dataDicCount(con, s_dataDic);
170             pageCode=PageUtil.genPagation(request.getContextPath
171 
172 ()+"/dataDic!list", total, Integer.parseInt(page), Integer.parseInt
173 
174 (PropertiesUtil.getValue("pageSize")));
175             navCode=NavUtil.getNavgation("系统管理", "数据字典维护");
176             mainPage="dataDic/dataDicList.jsp";
177         }catch(Exception e){
178             e.printStackTrace();
179         }finally{
180             try {
181                 dbUtil.closeCon(con);
182             } catch (Exception e) {
183                 // TODO Auto-generated catch block
184                 e.printStackTrace();
185             }
186         }
187         return SUCCESS;
188     }
189 
190     @Override
191     public void setServletRequest(HttpServletRequest request) {//IoC方式访问
192 
193 Servlet API,要用到request对象。为request方法添加setter方法
194         // TODO Auto-generated method stub
195         this.request=request;
196     }
197     
198     public String delete(){
199         Connection con=null;
200         try{
201             con=dbUtil.getCon();
202             JSONObject resultJson=new JSONObject();
203             dataDicDao.dataDicDelete(con, ddId);
204             resultJson.put("success", true);
205             ResponseUtil.write(resultJson, 
206 
207 ServletActionContext.getResponse());//非Ioc方式的第一种方法:使用
208 
209 org.apache.struts2.SerVletActionContext
210         }catch(Exception e){
211             e.printStackTrace();
212         }finally{
213             try {
214                 dbUtil.closeCon(con);
215             } catch (Exception e) {
216                 // TODO Auto-generated catch block
217                 e.printStackTrace();
218             }
219         }
220         return null;
221     }
222 }
---- 动动手指关注我!或许下次你又能在我这里找到你需要的答案!ZZZZW与你一起学习,一起进步!
原文地址:https://www.cnblogs.com/zzzzw/p/4539968.html