ImageVerifierCode 换一换
格式:DOCX , 页数:35 ,大小:140.04KB ,
资源ID:4937798      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4937798.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第六章 Struts2深入学习一 上机.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第六章 Struts2深入学习一 上机.docx

1、第六章 Struts2深入学习一 上机第6章Struts2深入学习(一) 上机内容:1 struts.xml常量配置2 解耦访问Servlet API3 动态方法调用4 实现Action接口5 实现ActionSupport类6 自定义处理结果7 模型驱动8 国际化上机目标:1. 掌握Struts2解耦访问Servlet API的方法2. 掌握动态方法调用3理解自定义处理结果4掌握使用模型驱动来封装用户请求参数5掌握Struts2国际化阶段1:指导训练内容1 使用struts.xml常量配置,避免乱码2 解耦访问Servlet API3 实现Action接口4 模型驱动需求说明员工薪资管理系统

2、主要实现以下功能(1) 显示所有员工信息(2) 根据部门、拼音码查询员工(3) 为某个员工执行加班操作(4) 为某个员工执行请假操作(5) 为某个员工执行旷工操作(6) 核算所有员工当月工资实现思路 创建系统所需的sql语句,代码如下:create sequence seq_emp -创建序列start with 1increment by 1;create table tb_dept -创建部门表( Id number primary key,-自动编号,主键 dname varchar2(10) not null,-部门名称 dmaster varchar2(10) not null-负责

3、人);insert into tb_dept values(seq_emp.nextval,研发部,张三);insert into tb_dept values(seq_emp.nextval,市场部,李四);insert into tb_dept values(seq_emp.nextval,人事部,王五);create table tb_emp -创建职工表( Id number primary key,-自动编号,主键 empId varchar2(10) not null,-员工编号 ename varchar2(10) not null,-员工姓名 esex varchar2(2)

4、not null,-员工性别 post varchar2(10) not null,-职位 basepay number(6,2) not null,-基本工资 deptId number not null,-部门编号 pym varchar2(10) not null,-拼音码 constraint fk_deptId foreign key(deptId) references tb_dept(id);insert into tb_emp values(seq_emp.nextval,4201,胡小军,男,教员,1200.0,1, HXJ);insert into tb_emp value

5、s(seq_emp.nextval,4202,张天朋,男,教员,1200.0,1, ZTP);insert into tb_emp values(seq_emp.nextval,4203,孙小杰,女,人事专员,1300.0,3, SXJ);insert into tb_emp values(seq_emp.nextval,4204,孙悟空,男,人事专员,1300.0,3, SWK);insert into tb_emp values(seq_emp.nextval,4205,孙科人,女,市场专员,1400.0,2, SKR);insert into tb_emp values(seq_emp.

6、nextval,4207,刘月芬,女,市场专员,1400.0,2, LYF);create table tb_overtime -创建加班表( Id number primary key,-自动编号,主键 emptId number not null,-加班员工编号 hours number(2) not null,-加班时长 reason varchar2(50) not null,-加班原因 overtimeDtm date default sysdate,-加班日期 constraint fk_overtime_emptId foreign key(emptId) references

7、tb_emp(Id); create table tb_PersonalLeave -创建请假表( Id number primary key,-自动编号,主键 emptId number not null,-请假员工编号 days number(2) not null,-请假天数 reason varchar2(50) not null,-请假原因 PersonalLeaveType number(1) not null,-请假类型 0:事假 1:病假 PersonalLeaveDtm date default sysdate,-请假日期 constraint fk_PersonalLeav

8、e_emptId foreign key(emptId) references tb_emp(Id);create table tb_Absence -创建旷工表( Id number primary key,-自动编号,主键 emptId number not null,-旷工员工编号 days number(1) not null,- 旷工天数 memo varchar2(50) not null,-备注 absenceDtm date default sysdate,-旷工日期 constraint fk_Absence_emptId foreign key(emptId) refere

9、nces tb_emp(Id) 创建用于访问数据库的JavaBean,命名为BaseDAO,代码如下:public class BaseDAO /定义数据源驱动 private static final String DRIVER=oracle.jdbc.driver.OracleDriver; /定义连接字符串 private static final String URL=jdbc:oracle:thin:localhost:1521:soft; /定义用户名 private static final String UID=ht; /定义密码 private static final St

10、ring PWD=ht; /得到连接 public static Connection getConnection() Connection con=null; try Class.forName(DRIVER);/加载驱动 con=DriverManager.getConnection(URL,UID,PWD);/获得连接 catch(Exception e) e.printStackTrace(); return con; /有结果,有参数的sql语句 public static Result runSelectSql(String sql,Object params) Connectio

11、n con=null; PreparedStatement ps=null; ResultSet res=null; Result result=null; try con=getConnection();/得到连接 ps=con.prepareStatement(sql);/获取PreparedStatement对象 /设置参数 for(int i=0;iparams.length;i+) ps.setObject(i+1,paramsi); res=ps.executeQuery();/执行sql语句,获得ResultSet对象 result=ResultSupport.toResult(

12、res); catch(Exception e) e.printStackTrace(); finally try res.close();/关闭对象,释放资源 ps.close(); con.close(); catch(Exception e) e.printStackTrace(); return result; /执行没结果,有参数的sql语句 public static boolean runUpdateSql(String sql,Object params) Connection con=null; PreparedStatement ps=null; try con=getCo

13、nnection();/得到连接 ps=con.prepareStatement(sql);/获取PreparedStatement对象 /设置参数 for(int i=0;iparams.length;i+) ps.setObject(i+1,paramsi); ps.executeUpdate();/执行sql语句 return true; catch(Exception e) e.printStackTrace(); return false; finally try ps.close();/关闭连接,释放资源 con.close(); catch(Exception e) e.prin

14、tStackTrace(); /执行有结果,没参数的sql语句 public static Result runSelectSql(String sql) Connection con=null; PreparedStatement ps=null; ResultSet res=null; Result result=null; try con=getConnection();/得到连接 ps=con.prepareStatement(sql);/获取PreparedStatement对象 res=ps.executeQuery(); result=ResultSupport.toResult

15、(res);/把ResultSet对象转换成Result对象 catch(Exception e) e.printStackTrace(); finally try res.close();/关闭对象,释放资源 ps.close(); con.close(); catch(Exception e) e.printStackTrace(); return result; 创建用于处理”职工薪资管理系统”业务的JavaBean,命名为EmpService.java,代码如下:public class EmpService /得到所有职工 public static Map getAllEmp()

16、/构造sql语句String sql=select emp.id,emp.empid,emp.ename,emp.esex,dept.dname,emp.post,emp.basepay from tb_emp emp,tb_dept dept where emp.deptid=dept.id; /执行sql语句 return BaseDAO.runSelectSql(sql).getRows(); /得到所有的部门 public static Map getAllDept() /构造sql语句 String sql=select * from tb_dept; /执行sql语句 return

17、 BaseDAO.runSelectSql(sql).getRows(); 创建用于处理职工薪资管理系统业务逻辑的父类控制器Action,命名为,BaseAction .java 代码如下:public class BaseAction extends ActionSupport /获取request对象 public Map getRequest() /通过ActionContext得到request对象 return (Map) ActionContext.getContext().get(request); /获取session对象 public Map getSession() ret

18、urn ActionContext.getContext().getSession(); /获取application对象 public Map getApplication() return (Map)ActionContext.getContext().getApplication(); /获取response对象 public HttpServletResponse getResponse() /通过ServletActionContext类获取HttpServletResponse对象。 HttpServletResponse response = ServletActionConte

19、xt.getResponse(); /设置响应头与字符编码 response.setContentType(text/html;charset=gbk); response.setCharacterEncoding(gbk); return response; 创建用于处理职工薪资管理系统业务逻辑的控制器Action,命名为,EmpAction .java 代码如下:public class EmpAction extends BaseAction implements Action /默认执行显示所有职工信息 public String execute() /调用业务层,获取所有职工信息 M

20、ap emps=EmpService.getAllEmp(); /调用业务层,获取所有部门信息 Map depts=EmpService.getAllDept(); /存储到request范围内 this.getRequest().put(emps, emps); /存储到session范围内 this.getSession().put(depts, depts); /转发到index.jsp页面 return this.SUCCESS; 创建用于提供显示界面的JSP页面,命名为index.jsp,代码如下: 人事管理系统员工薪资管理 部门: 全部 全部 $dept.dname 拼音码: td

21、编号姓名性别 所属部门职位基本工资 操作 $emp.empid $emp.ename $emp.esex $emp.dname $emp.post $emp.basepay 加班 请假 旷工 当月薪资明细 创建起始的JSP页面,命名为start.jsp,代码如下: 配置struts.xml文件,代码如下: /index.jsp 配置web.xml文件,代码如下: struts2 org.apache.struts2.dispatcher.FilterDispatcher config struts-default.xml,struts-plugin.xml,./struts.xml struts2 /* REQUEST FORWARD 运行start.jsp页面,效果如图2.6.1:图2.6.1 运行start.jsp页面 练习需求说明 完成员工薪资管理系统查询显示功能,可根据部门和拼音码进行组合查询。实现思路 在处理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1