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 }
时间: 2024-08-05 18:53:13

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

[转]Delphi调用cmd的两种方法

delphi调用cmd的两种方法vars:string;begins:='cmd.exe /c '+edit1.Text+' >c:\1.txt';winexec(pchar(s),sw_hide);sleep(2000);memo1.Lines.LoadFromFile('c:\1.txt'); 2shellexecute(handle,nil,'cmd.exe',pchar(form2.edit1.text),nil,sw_hide);WinExec主要运行EXE文件.如:WinExec(’

python中执行shell的两种方法总结

这篇文章主要介绍了python中执行shell的两种方法,有两种方法可以在Python中执行SHELL程序,方法一是使用Python的commands包,方法二则是使用subprocess包,这两个包均是Python现有的内置模块.需要的朋友可以参考借鉴,下面来一起看看吧. 一.使用python内置commands模块执行shell commands对Python的os.popen()进行了封装,使用SHELL命令字符串作为其参数,返回命令的结果数据以及命令执行的状态: 该命令目前已经废弃,被s

Linux中生成密钥的两种方法

Linux中生成密钥的两种方法 SSH服务支持一种安全认证机制,即密钥认证.所谓的密钥认证,实际上是使用一对加密字符串,一个称为公钥(publickey), 任何人都可以看到其内容,用于加密:另一个称为密钥(privatekey),只有拥有者才能看到,用于解密.通过公钥加密过的密文使用密钥可以轻松解密,但根据公钥来猜测密钥却十分困难. ssh的密钥认证就是使用了这一特性.服务器和客户端都各自拥有自己的公钥和密钥.如何使用密钥认证登录linux服务器呢? 在使用密钥认证远程登入linux之前,我们

MySQL中删除数据的两种方法

转自:http://blog.csdn.net/apache6/article/details/2778878 在MySQL中有两种方法可以删除数据,一种是DELETE语句,另一种是TRUNCATE TABLE语句. DELETE语句可以通过WHERE对要删除的记录进行选择.而使用TRUNCATE TABLE将删除表中的所有记录.因此,DELETE语句更灵活. 如果要清空表中的所有记录,可以使用下面的两种方法: DELETE FROM table1 TRUNCATE TABLE table1 其

在Word中去除超链接的两种方法

本文来自e良师益友网 不少朋友都有这样一个疑问:在Word中输入网站地址,回车之后,先前输入的地址就自动转变为了蓝色的超链接,如果我们不想这样,该如何设置呢?下面,简单的介绍两种方法给大家参考. 方法一:运用自动更正选项 1.启动Word2003,在空白处直接输入网站地址之后,自动变为蓝色的超链接形式,我们仔细发现,首字母下有一道横线,光标移动至此,显示自动更正选项. 2.单击自动更正选项,有三个可供选择的,选择控制自动更正选项. 3.在键入时自动套用格式选项卡中,取消勾选Internet及网络

a 中调用js的几种方法

我们常用的在a标签中有点击事件:1. a href="javascript:js_method();" 这是我们平台上常用的方法,但是这种方法在传递this等参数的时候很容易出问题,而且javascript:协议作为a的href属性的时候不仅会导致不必要的触发window.onbeforeunload事件,在IE里面更会使gif动画图片停止播放.W3C标准不推荐在href里面执行javascript语句 2. a href="javascript:void(0);"

Ajax中解析Json的两种方法详解

eval();  //此方法不推荐 JSON.parse();  //推荐方法 一.两种方法的区别 我们先初始化一个json格式的对象: var jsonDate = '{ "name":"周星驰","age":23 }' var jsonObj = eval( '(' + jsonDate + ')' );  // eval();方法 var jsonObj = JSON.parse( jsonDate );  // JSON.parse();

Endnote在latex中的应用的两种方法

从endnote中向latex文档批量插入参考文献的两种方法 一.若是latex模板中参考文献编写的命令是: \begin{thebibliography} \bibitem{lab1}LIU M L, ZHANG Y H,ZHOU X H et al. Phys. Rev. C, 2004, {\bf 70}: 14---34 ... \end{thebibliography} 我们可以按照bibitem行的格式在endnote中编写相应的outstyle,然后即可批量从endnote中输出参

从列表中提取数据的两种方法

从列表中提取数据除了循环外还有两种方法:过滤,列表解析式: #!/usr/bin/env python #coding:utf-8 #@Author:Andy # 生成一个随机列表:并选出其中的两大于零的数 from random import randint data = [randint(-10, 10) for i in range(1, 10)] print(data) # method 1 print("filter method:", list(filter(lambda