zoukankan      html  css  js  c++  java
  • 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与你一起学习,一起进步!
  • 相关阅读:
    李超线段树 (Li-Chao Segment Tree)
    NowCoder Contest 894
    AtCoder Beginning Contest 126
    华工软院IBM LinuxONE Community Cloud云计算实验文档
    Codeforces Round #561 (div. 2)
    Comet OJ Contest #3
    Codeforces Edu Round 65 (Rated for Div. 2)
    莫队算法 (Mo's Algorithm)
    Codeforces Round #559 (Div. 2)
    GDCPC2019 广东省赛总结
  • 原文地址:https://www.cnblogs.com/zzzzw/p/4539968.html
Copyright © 2011-2022 走看看