struts中调用servlet的两种方法——IcC方式和非IoC方式的代码demo
package com.java1234.action;//所在的包 import java.sql.Connection;//数据库连接的类
import java.util.ArrayList;//ArrayList和List是在private List<DataDic> dataDicList=new ArrayList<DataDic>();中用到
import java.util.List;//ArrayList和List是在private List<DataDic> dataDicList=new ArrayList<DataDic>();中用到 import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession; import net.sf.json.JSONObject; import org.apache.struts2.ServletActionContext;//访问Servlet API的时候使用的非IOC方式 ,方法一:org.apache.Structs2.ServletActionContext获取session,request,response
import org.apache.struts2.interceptor.ServletRequestAware; ////访问Servlet API的时候 使用的IOC方式(Inversion of Control,自身不创建对象,仅仅描述创建它们的方式.)这里是 让Action实现ServletRequestAware接口而已,没有实现ServletResponseAware接口还有 SessionWare接口 import com.java1234.dao.DataDicDao;
import com.java1234.model.DataDic;
import com.java1234.model.PageBean;
import com.java1234.util.DbUtil;
import com.java1234.util.NavUtil;
import com.java1234.util.PageUtil;
import com.java1234.util.PropertiesUtil;
import com.java1234.util.ResponseUtil;
import com.java1234.util.StringUtil;
import com.opensymphony.xwork2.ActionSupport;//action需要继承这个类 /*这里是让类实现ServletRequestAware接口就是非IOC方式,没有实现ServletResponseAware接 口还有SessionWare接口*/
// 这里是让类继承了ActionSupport这个类,实现IOC方式
public class DataDicAction extends ActionSupport implements ServletRequestAware{ /**
*
*/
private static final long serialVersionUID = 1L; private HttpServletRequest request;//定义request
private DbUtil dbUtil=new DbUtil();
private DataDicDao dataDicDao=new DataDicDao();
private List<DataDic> dataDicList=new ArrayList<DataDic>();//定义一个DataDic 类型的ArrayLst,但是ArrayList定义的时候需要用List a=new ArrayList();定义 private String mainPage;
private String navCode; private String s_ddTypeName; private String page;
private int total;
private String pageCode; private String ddId; public String getDdId() {
return ddId;
} public void setDdId(String ddId) {
this.ddId = ddId;
} public String getPage() {
return page;
} public void setPage(String page) {
this.page = page;
} public int getTotal() {
return total;
} public void setTotal(int total) {
this.total = total;
} public String getPageCode() {
return pageCode;
} public void setPageCode(String pageCode) {
this.pageCode = pageCode;
} public List<DataDic> getDataDicList() {
return dataDicList;
} public void setDataDicList(List<DataDic> dataDicList) {
this.dataDicList = dataDicList;
} public String getMainPage() {
return mainPage;
} public void setMainPage(String mainPage) {
this.mainPage = mainPage;
} public String getNavCode() {
return navCode;
} public void setNavCode(String navCode) {
this.navCode = navCode;
} public String getS_ddTypeName() {
return s_ddTypeName;
} public void setS_ddTypeName(String s_ddTypeName) {
this.s_ddTypeName = s_ddTypeName;
} public String list(){//定义一个方法
if(StringUtil.isEmpty(page)){
page="1";
}
Connection con=null;
try{
HttpSession session=request.getSession();//非IoC方式的第一种 方法:使用org.apache.struts2.SerVletActionContext获取session对象
DataDic s_dataDic=new DataDic();
if(s_ddTypeName!=null){
s_dataDic.setDdTypeName(s_ddTypeName);//非IoC方式的第 一种方法:使用org.apache.struts2.SerVletActionContext获取session对象
session.setAttribute("s_ddTypeName", s_ddTypeName);// 非IoC方式的第一种方法:使用org.apache.struts2.SerVletActionContext获取session对象
}else{
Object o=session.getAttribute("s_ddTypeName");//非IoC 方式的第一种方法:使用org.apache.struts2.SerVletActionContext获取session对象
if(o!=null){
s_ddTypeName=(String)session.getAttribute ("s_ddTypeName");//非Ioc方式的第一种方法:使用org.apache.struts2.SerVletActionContext 获取session对象
s_dataDic.setDdTypeName(s_ddTypeName);
}
}
PageBean pageBean=new PageBean(Integer.parseInt (page),Integer.parseInt(PropertiesUtil.getValue("pageSize")));
con=dbUtil.getCon();
dataDicList=dataDicDao.dataDicList(con,s_dataDic,pageBean);
total=dataDicDao.dataDicCount(con, s_dataDic);
pageCode=PageUtil.genPagation(request.getContextPath ()+"/dataDic!list", total, Integer.parseInt(page), Integer.parseInt (PropertiesUtil.getValue("pageSize")));
navCode=NavUtil.getNavgation("系统管理", "数据字典维护");
mainPage="dataDic/dataDicList.jsp";
}catch(Exception e){
e.printStackTrace();
}finally{
try {
dbUtil.closeCon(con);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return SUCCESS;
} @Override
public void setServletRequest(HttpServletRequest request) {//IoC方式访问 Servlet API,要用到request对象。为request方法添加setter方法
// TODO Auto-generated method stub
this.request=request;
} public String delete(){
Connection con=null;
try{
con=dbUtil.getCon();
JSONObject resultJson=new JSONObject();
dataDicDao.dataDicDelete(con, ddId);
resultJson.put("success", true);
ResponseUtil.write(resultJson, ServletActionContext.getResponse());//非Ioc方式的第一种方法:使用 org.apache.struts2.SerVletActionContext
}catch(Exception e){
e.printStackTrace();
}finally{
try {
dbUtil.closeCon(con);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
}
}
struts中调用servlet的两种方法——IcC方式和非IoC方式的代码demo的更多相关文章
- [转]Delphi调用cmd的两种方法
delphi调用cmd的两种方法vars:string;begins:='cmd.exe /c '+edit1.Text+' >c:\1.txt';winexec(pchar(s),sw_hid ...
- C++调用DLL有两种方法——静态调用和动态调用
C++调用DLL有两种方法——静态调用和动态调用 标签: dllc++winapinullc 2011-09-09 09:49 11609人阅读 评论(0) 收藏 举报 分类: cpp(30) [ ...
- [转]Qt中定时器使用的两种方法
Qt中定时器的使用有两种方法,一种是使用QObject类提供的定时器,还有一种就是使用QTimer类. 其精确度一般依赖于操作系统和硬件,但一般支持20ms.下面将分别介绍两种方法来使用定时器. 方法 ...
- python中执行shell的两种方法总结
这篇文章主要介绍了python中执行shell的两种方法,有两种方法可以在Python中执行SHELL程序,方法一是使用Python的commands包,方法二则是使用subprocess包,这两个包 ...
- vue中使用echarts的两种方法
在vue中使用echarts有两种方法一.第一种方法1.通过npm获取echarts npm install echarts --save 2.在vue项目中引入echarts 在 main.js 中 ...
- php获取数组中重复数据的两种方法
分享下php获取数组中重复数据的两种方法. 1,利用php提供的函数,array_unique和array_diff_assoc来实现 <?php function FetchRepeatMem ...
- Ajax中解析Json的两种方法详解
eval(); //此方法不推荐 JSON.parse(); //推荐方法 一.两种方法的区别 我们先初始化一个json格式的对象: var jsonDate = '{ "name&qu ...
- Ajax中解析Json的两种方法
eval(); //此方法不推荐 JSON.parse(); //推荐方法 一.两种方法的区别 我们先初始化一个json格式的对象: var jsonDate = '{ "name" ...
- Hive开发中使用变量的两种方法
在使用hive开发数据分析代码时,经常会遇到需要改变运行参数的情况,比如select语句中对日期字段值的设定,可能不同时间想要看不同日期的数据,这就需要能动态改变日期的值.如果开发量较大.参数多的话, ...
随机推荐
- c语言输入与输出库函数#include<stdio.h>
last modified: 2010-05-28 输入与输出<stdio.h> 头文件<stdio.h>定义了用于输入和输出的函数.类型和宏.最重要的类型是用于声明文件指针的 ...
- SharePoint Site Pages & Application Pages
转:http://www.wcode.net/plus/view.php?aid=1582071 SharePoint一个很重要的概念就是Site Pages和Application Pages.接触 ...
- SharePoint 2010 部署 WSP 包
转:http://www.cnblogs.com/myheaven/archive/2011/05/19/2051180.html .net在工程的下面生成了WSP包,在Debug下面.需要放到生产环 ...
- Axis2 WebService(基于REST风格)
http://www.lifeba.org/arch/java_axis2_webservice_rest.html Axis2除了提供传统的webservice方法外,还提供了对Rest的支持.Ax ...
- poj2686 Traveling by Stagecoach
http://poj.org/problem?id=2686 Trav ...
- The Shortest Path in Nya Graph
Problem Description This is a very easy problem, your task is just calculate el camino mas corto en ...
- 如何使用Visual Studio 2013 创建Azure云应用
创建 Azure 云服务 Azure 云服务包括执行应用程序所需操作的角色.当你将云服务发布到 Azure 时,每个角色将在云中的虚拟机上运行.有关如何开发 Azure 云服务的详细信息. 创建 Az ...
- HDU1075 - What Are You Talking About(Trie树)
题目大意 给定一些火星文单词以及对应的英语单词,然后给你一些火星文,要求你翻译成对应的英文 题解 第一次写Trie树! 把所有火星文单词插入到Trie树中,并且每个火星文单词结尾的节点记录相应英文单词 ...
- 【ACM/ICPC2013】树形动态规划专题
前言:按照计划,昨天应该是完成树形DP7题和二分图.最大流基础专题,但是由于我智商实在拙计,一直在理解树形DP的思想,所以第二个专题只能顺延到今天了.但是昨天把树形DP弄了个5成懂我是很高兴的!下面我 ...
- flot中文说明文档 简版
Flot参考文档: 一.对绘图函数plot的调用:var plot=$.plot(placeholder,data,options) ----------- placeholder --------- ...