第六章 Struts2深入学习一 上机Word下载.docx
- 文档编号:17891190
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:35
- 大小:140.04KB
第六章 Struts2深入学习一 上机Word下载.docx
《第六章 Struts2深入学习一 上机Word下载.docx》由会员分享,可在线阅读,更多相关《第六章 Struts2深入学习一 上机Word下载.docx(35页珍藏版)》请在冰豆网上搜索。
dnamevarchar2(10)notnull,--部门名称
dmastervarchar2(10)notnull--负责人
);
insertintotb_deptvalues(seq_emp.nextval,'
研发部'
'
张三'
市场部'
李四'
人事部'
王五'
createtabletb_emp--创建职工表
empIdvarchar2(10)notnull,--员工编号
enamevarchar2(10)notnull,--员工姓名
esexvarchar2
(2)notnull,--员工性别
postvarchar2(10)notnull,--职位
basepaynumber(6,2)notnull,--基本工资
deptIdnumbernotnull,--部门编号
pymvarchar2(10)notnull,--拼音码
constraintfk_deptIdforeignkey(deptId)referencestb_dept(id)
insertintotb_empvalues(seq_emp.nextval,'
4201'
胡小军'
男'
教员'
1200.0,1,'
HXJ'
4202'
张天朋'
ZTP'
4203'
孙小杰'
女'
人事专员'
1300.0,3,'
SXJ'
4204'
孙悟空'
SWK'
4205'
孙科人'
市场专员'
1400.0,2,'
SKR'
4207'
刘月芬'
LYF'
createtabletb_overtime--创建加班表
Idnumberprimarykey,--自动编号,主键
emptIdnumbernotnull,--加班员工编号
hoursnumber
(2)notnull,--加班时长
reasonvarchar2(50)notnull,--加班原因
overtimeDtmdatedefaultsysdate,--加班日期
constraintfk_overtime_emptIdforeignkey(emptId)referencestb_emp(Id)
createtabletb_PersonalLeave--创建请假表
emptIdnumbernotnull,--请假员工编号
daysnumber
(2)notnull,--请假天数
reasonvarchar2(50)notnull,--请假原因
PersonalLeaveTypenumber
(1)notnull,--请假类型0:
事假1:
病假
PersonalLeaveDtmdatedefaultsysdate,--请假日期
constraintfk_PersonalLeave_emptIdforeignkey(emptId)referencestb_emp(Id)
createtabletb_Absence--创建旷工表
emptIdnumbernotnull,--旷工员工编号
daysnumber
(1)notnull,--旷工天数
memovarchar2(50)notnull,--备注
absenceDtmdatedefaultsysdate,--旷工日期
constraintfk_Absence_emptIdforeignkey(emptId)referencestb_emp(Id)
)
创建用于访问数据库的JavaBean,命名为BaseDAO,代码如下:
publicclassBaseDAO{
//定义数据源驱动
privatestaticfinalStringDRIVER="
oracle.jdbc.driver.OracleDriver"
;
//定义连接字符串
privatestaticfinalStringURL="
jdbc:
oracle:
thin:
@localhost:
1521:
soft"
//定义用户名
privatestaticfinalStringUID="
ht"
//定义密码
privatestaticfinalStringPWD="
//得到连接
publicstaticConnectiongetConnection(){
Connectioncon=null;
try{
Class.forName(DRIVER);
//加载驱动
con=DriverManager.getConnection(URL,UID,PWD);
//获得连接
}catch(Exceptione){
e.printStackTrace();
}
returncon;
//有结果,有参数的sql语句
publicstaticResultrunSelectSql(Stringsql,Object[]params){
PreparedStatementps=null;
ResultSetres=null;
Resultresult=null;
try{
con=getConnection();
//得到连接
ps=con.prepareStatement(sql);
//获取PreparedStatement对象
//设置参数
for(inti=0;
i<
params.length;
i++){
ps.setObject(i+1,params[i]);
}
res=ps.executeQuery();
//执行sql语句,获得ResultSet对象
result=ResultSupport.toResult(res);
}catch(Exceptione){
e.printStackTrace();
}finally{
try{
res.close();
//关闭对象,释放资源
ps.close();
con.close();
}catch(Exceptione){
e.printStackTrace();
}
returnresult;
//执行没结果,有参数的sql语句
publicstaticbooleanrunUpdateSql(Stringsql,Object[]params){
try{
ps.executeUpdate();
//执行sql语句
returntrue;
returnfalse;
//关闭连接,释放资源
}
}
//执行有结果,没参数的sql语句
publicstaticResultrunSelectSql(Stringsql){
//把ResultSet对象转换成Result对象
}
创建用于处理”职工薪资管理系统”业务的JavaBean,命名为EmpService.java,代码如下:
publicclassEmpService
{
//得到所有职工
publicstaticMap[]getAllEmp()
{
//构造sql语句
Stringsql="
selectemp.id,emp.empid,emp.ename,emp.esex,dept.dname,emp.post,emp.basepayfromtb_empemp,tb_deptdeptwhereemp.deptid=dept.id"
//执行sql语句
returnBaseDAO.runSelectSql(sql).getRows();
//得到所有的部门
publicstaticMap[]getAllDept()
Stringsql="
select*fromtb_dept"
}
创建用于处理职工薪资管理系统业务逻辑的父类控制器Action,命名为,BaseAction.java代码如下:
publicclassBaseActionextendsActionSupport{
//获取request对象
publicMap<
String,Object>
getRequest(){
//通过ActionContext得到request对象
return(Map)ActionContext.getContext().get("
request"
//获取session对象
getSession(){
returnActionContext.getContext().getSession();
//获取application对象
getApplication(){
return(Map)ActionContext.getContext().getApplication();
//获取response对象
publicHttpServletResponsegetResponse(){
//通过ServletActionContext类获取HttpServletResponse对象。
HttpServletResponseresponse=ServletActionContext.getResponse();
//设置响应头与字符编码
response.setContentType("
text/html;
charset=gbk"
response.setCharacterEncoding("
gbk"
returnresponse;
创建用于处理职工薪资管理系统业务逻辑的控制器Action,命名为,EmpAction.java代码如下:
publicclassEmpActionextendsBaseActionimplementsAction
{
//默认执行显示所有职工信息
publicStringexecute()
//调用业务层,获取所有职工信息
Map[]emps=EmpService.getAllEmp();
//调用业务层,获取所有部门信息
Map[]depts=EmpService.getAllDept();
//存储到request范围内
this.getRequest().put("
emps"
emps);
//存储到session范围内
this.getSession().put("
depts"
depts);
//转发到index.jsp页面
returnthis.SUCCESS;
创建用于提供显示界面的JSP页面,命名为index.jsp,代码如下:
<
body>
<
table>
tr>
td>
人事管理系统-员工薪资管理<
/td>
/tr>
<
formaction="
emp.action"
>
部门:
<
selectname="
deptId"
optionvalue="
0"
selected>
全部<
/option>
!
--从数据库中加载所有部门信息-->
c:
forEachvar="
dept"
items="
${depts}"
${dept.id}"
${dept.dname}<
/c:
forEach>
/select>
/span>
td>
拼音码:
inputtype="
text"
name="
pym"
s:
submitvalue="
查询"
method="
doQueryEmp"
/>
/form>
<
iftest="
${!
emptyemps}"
—如果存在记录-->
tr>
td编号<
姓名<
性别<
所属部门<
职位<
基本工资<
操作<
emp"
${emps}"
tralign="
center"
bgcolor="
#F7F6FB"
tdheight="
27"
${emp.empid}<
tdnowrapclass="
style54"
${emp.ename}<
${emp.esex}<
${emp.dname}<
${emp.post}<
${emp.basepay}<
ahref="
overtime.jsp?
id=${emp.id}&
empid=${emp.empid}"
target="
_blank"
加班<
/a>
personalLeave.jsp?
请假<
absence.jsp?
旷工<
trstyle="
background-image:
url(images/nh-bg.gif)"
href="
payDetail.jsp"
当月薪资明细<
/table>
if>
/body>
创建起始的JSP页面,命名为start.jsp,代码如下:
--转发到emp控制器-->
jsp:
forwardpage="
配置struts.xml文件,代码如下:
struts>
--配置常量解决乱码,与页面布局-->
constantname="
struts.i18n.encoding"
value="
utf-8"
struts.ui.theme"
simple"
--Struts2的Action都必须配置在package里面-->
packagename="
default"
extends="
struts-default"
--继承自默认包-->
--定义一个login的Action类,实现类为LoginAction-->
actionname="
class="
com.soft.struts6sj.web.action.EmpAction"
--定义结果与视图资源的映射关系-->
result>
/index.jsp<
/result>
/action>
/package>
/struts>
配置web.xml文件,代码如下:
web-app>
--配置Struts2的核心控制器FilterDispatcher-->
filter>
--filter名称-->
filter-name>
struts2<
/filter-name>
--filter实现类-->
filter-class>
org.apache.struts2.dispatcher.FilterDispatcher<
/filter-class>
--通过init-param配置节重新指定Struts2配置文件的位置-->
init-param>
param-name>
config<
/param-name>
--指定struts.xml在WEB-INF目录下-->
param-value>
struts-default.xml,struts-plugin.xml,../struts.xml<
/param-value>
/init-param>
/filter>
--配置filter的映射部分-->
filter-mapping>
--所有用户请求,都会被FilterDispatcher拦截-->
url-pattern>
/*<
/url-pattern>
dispatcher>
REQUEST<
/dispatcher>
FORWARD<
/filter-mapping>
/web-app>
运行start.jsp页面,效果如图2.6.1:
图2.6.1运行start.jsp页面
练习
完成员工薪资管理系统查询显示功能,可根据部门和拼音码进行组合查询。
在处理
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第六章 Struts2深入学习一 上机 第六 Struts2 深入 学习