JSP内置对象.docx

上传人:b****6 文档编号:4267643 上传时间:2022-11-28 格式:DOCX 页数:37 大小:32.04KB
下载 相关 举报
JSP内置对象.docx_第1页
第1页 / 共37页
JSP内置对象.docx_第2页
第2页 / 共37页
JSP内置对象.docx_第3页
第3页 / 共37页
JSP内置对象.docx_第4页
第4页 / 共37页
JSP内置对象.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

JSP内置对象.docx

《JSP内置对象.docx》由会员分享,可在线阅读,更多相关《JSP内置对象.docx(37页珍藏版)》请在冰豆网上搜索。

JSP内置对象.docx

JSP内置对象

JSP内置对象

1、完成雇员列表,列表时取得部门名称(尽量不关联查)

登陆成功后,通过2秒跳转的形式进入列表页

if(rs.next()){

response.setHeader("refresh","2;URL="+request.getContextPath()+"/pages/emp/emp_list.jsp");

%>

用户登陆成功!


当前登陆用户为:

<%=rs.getString

(1)%>

<%

}else{

%>

forwardpage="/index.jsp">

forward>

<%

}

修改列表,先查询出所有的部门,并保存到Map中。

<%!

finalStringDBDRIVER="oracle.jdbc.driver.OracleDriver";

finalStringDBURL="jdbc:

oracle:

thin:

@localhost:

1521:

MLDN";

finalStringDBUSER="scott";

finalStringDBPASSWORD="tiger";

Connectionconn=null;

%>

<%

ResultSetrs=null;

PreparedStatementpstmt=null;

PreparedStatementpstmtDept=null;

ResultSetrsDept=null;

//接收传递过来的编号

Stringdeptno=request.getParameter("deptno");

try{

//连接数据库

Class.forName(DBDRIVER);

conn=DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);

//先查询出全部的部门,信息保存到Map对象中

Mapmap=newHashMap();

StringdeptSql="SELECTdeptno,dnameFROMdept";

pstmtDept=conn.prepareStatement(deptSql);

rsDept=pstmtDept.executeQuery();

while(rsDept.next()){

map.put(rsDept.getInt

(1),rsDept.getString

(2));

}

Stringsql="SELECT*FROMemp";

pstmt=conn.prepareStatement(sql);

rs=pstmt.executeQuery();

%>

雇员编号

雇员姓名

雇员职位

雇员领导

入职时间

薪水

奖金

部门名称

<%

while(rs.next()){

%>

<%=rs.getInt

(1)%>

<%=rs.getString

(2)%>

<%=rs.getString(3)%>

<%=rs.getInt(4)%>

<%=rs.getDate(5)%>

<%=rs.getDouble(6)%>

<%=rs.getDouble(7)%>

<%=map.get(rs.getInt(8))%>

<%

}

%>

<%

}catch(Exceptione){

e.printStackTrace();

}finally{

if(rs!

=null)

rs.close();

if(rsDept!

=null)

rsDept.close();

if(pstmt!

=null)

pstmt.close();

if(pstmtDept!

=null)

pstmtDept.close();

if(conn!

=null)

conn.close();

}

%>

在列表页,加入一个超连接,连接到添加页

<%@pagelanguage="java"import="java.sql.*,java.util.*"pageEncoding="GBK"%>

DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

雇员添加

<%@includefile="/pages/dbc.jsp"%>

<%

try{

%>

/pages/emp/emp_insert_do.jsp"method="post">

雇员编号:


雇员姓名:


雇员职位:


雇员领导:

<%

Stringsql="SELECTempno,enameFROMemp";

pstmt=conn.prepareStatement(sql);

rs=pstmt.executeQuery();

while(rs.next()){

%>

(1)%>"><%=rs.getString

(2)%>

<%

}

%>


入职时间:


薪水:


奖金:


部门:

<%

sql="SELECTdeptno,dnameFROMdept";

pstmt=conn.prepareStatement(sql);

rs=pstmt.executeQuery();

while(rs.next()){

%>

(1)%>"><%=rs.getString

(2)%>

<%

}

%>


<%

}catch(Exceptione){

e.printStackTrace();

}finally{

if(conn!

=null)

conn.close();

}

%>

提交后需要在insert_do.jsp中进行数据库操作。

<%@pagelanguage="java"import="java.sql.*,java.util.*,java.text.*"pageEncoding="GBK"%>

DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

雇员添加

<%@includefile="/pages/dbc.jsp"%>

<%

try{

intempno=Integer.parseInt(request.getParameter("empno"));

Stringename=request.getParameter("ename");

Stringjob=request.getParameter("job");

intmgr=Integer.parseInt(request.getParameter("mgr"));

SimpleDateFormatsf=newSimpleDateFormat("yyyy-MM-dd");

java.util.Datehiredate=sf.parse(request.getParameter("hiredate"));

doublesal=Double.parseDouble(request.getParameter("sal"));

doublecomm=Double.parseDouble(request.getParameter("comm"));

intdeptno=Integer.parseInt(request.getParameter("deptno"));

StringsearchSql="SELECTempnoFROMempWHEREempno=?

";

pstmt=conn.prepareStatement(searchSql);

pstmt.setInt(1,empno);

rs=pstmt.executeQuery();

if(rs.next()){

%>

输入雇员编号重复,请返回重新输入!


<%

}else{

//编写sql语句

Stringsql="INSERTINTOempVALUES(?

?

?

?

?

?

?

?

)";

pstmt=conn.prepareStatement(sql);

pstmt.setInt(1,empno);

pstmt.setString(2,ename);

pstmt.setString(3,job);

pstmt.setInt(4,mgr);

pstmt.setDate(5,newjava.sql.Date(hiredate.getTime()));

pstmt.setDouble(6,sal);

pstmt.setDouble(7,comm);

pstmt.setInt(8,deptno);

if(pstmt.executeUpdate()>0){

response.setHeader("refresh","2;URL="+request.getContextPath()+"/pages/emp/emp_list.jsp");

%>

添加成功!


2秒后返回列表页。

<%

}

}

}catch(NumberFormatExceptione){

%>

输入的数字格式不合法,请返回重新输入!


<%

}catch(ParseExceptione){

%>

入职时间格式不正确,按照年-月-日的格式输入,例如:

2010-11-12

<%

}catch(Exceptione){

e.printStackTrace();

}finally{

if(conn!

=null)

conn.close();

}

%>

列表页加入一个按钮

<%

while(rs.next()){

%>

<%=rs.getInt

(1)%>

<%=rs.getString

(2)%>

<%=rs.getString(3)%>

<%=rs.getInt(4)%>

<%=rs.getDate(5)%>

<%=rs.getDouble(6)%>

<%=rs.getDouble(7)%>

<%=map.get(rs.getInt(8))%>

(1)%>');"/>

<%

}

%>

functiondel(empno){

if(confirm("确定要删除该数据吗?

")){

location="<%=request.getContextPath()%>/pages/emp/emp_delete.jsp?

empno="+empno;

}

}

完成修改,先在列表页加入超连接或按钮。

functionupd(empno){

location="<%=request.getContextPath()%>/pages/emp/emp_update.jsp?

empno="+empno;

}

(1)%>');"/>

(1)%>');"/>

完成修改页

<%@pagelanguage="java"import="java.sql.*,java.util.*,java.text.*"pageEncoding="GBK"%>

DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

雇员添加

<%@includefile="/pages/dbc.jsp"%>

<%

try{

//先查询出当前要修改的雇员信息

PreparedStatementpstmtEmp=conn.prepareStatement("SELECT*FROMempWHEREempno=?

");

intempno=Integer.parseInt(request.getParameter("empno"));

pstmtEmp.setInt(1,empno);

ResultSetrsEmp=pstmtEmp.executeQuery();

if(rsEmp.next()){

%>

/pages/emp/emp_insert_do.jsp"method="post">

雇员编号:

<%=rsEmp.getInt

(1)%>

(1)%>"/>

雇员姓名:

(2)%>"/>

雇员职位:

"/>

雇员领导:

<%

Stringsql="SELECTempno,enameFROMemp";

pstmt=conn.prepareStatement(sql);

rs=pstmt.executeQuery();

while(rs.next()){

if(rsEmp.getInt

(1)!

=rs.getInt

(1)){

%>

(1)%>"<%=rsEmp.getInt(4)==rs.getInt

(1)?

"selected":

""%>><%=rs.getString

(2)%>

<%

}

}

SimpleDateFormatsf=newSimpleDateFormat("yyyy-MM-dd");

%>


入职时间:

"/>

薪水:


奖金:


部门:

<%

sql="SELECTdeptno,dnameFROMdept";

pstmt=conn.prepareStatement(sql);

rs=pstmt.executeQuery();

while(rs.next()){

%>

(1)%>"><%=rs.getString

(2)%>

<%

}

%>


<%

}

}catch(Exceptione){

e.printStackTrace();

}finally{

if(conn!

=null)

conn.close();

}

%>

 

具体内容

属性范围

服务器中为了开发一些功能,可以临时保存某些属性值(例如:

完成用户是否登陆过的判断。

)。

属性根据保存和销毁时间的不同,分为4种范围:

page,request,session,application

page:

当前页范围,定义一个属性,只要离开当前页,属性就销毁。

(一般不用)

request:

一次用户请求范围,如果服务器端跳转,则属性会保留,但只要进行了客户端跳转,则属性会自动销毁(MVC中会使用)

session:

一个会话范围,一个Session会在一个浏览器中生成一个唯一的标识,来标识不同的用户,因此登陆判断可以使用这个属性范围。

application:

服务器范围,保存在服务器中,只有当服务器关闭时,才会销毁。

(<%!

%>定义的变量就是服务器范围),可以用来做在线人员列表(需要结合Listener监听器一起完成。

保存和取得属性都需要通过方法来完成:

setAttribute(“属性名(String)”,“属性值(Object)”):

保存属性

getAttribute(“属性名(String)”):

取得属性

getAttribute和getParameter的区别:

getAttribute是取得属性,由服务器来调用setAttribute设置后才可以取得,返回Object类型。

getParameter是取得参数,是

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 理化生

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

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