实验六 基于组件的文件上传程序设计

实验六 基于组件的文件上传程序设计

实验内容与结果

在雇员表中增加一个字段为 photo,在雇员增加时进行雇员照片的操作。
(1)增加雇员:在添加雇员时,可以选择照片,也可以不选择照片。当不选择照片时,则
设计默认照片。(60 分)
(2)修改雇员:将雇员的照片进行显示,可以对雇员信息进行修改。(40 分)

mysql数据表设计

数据表设计

项目结构

项目结构

定义对应的VO类——Emp.java

package dao.vo;

public class Emp {
	private String empno;
	private String ename;
	private String job;
	private String hiredate;
	private String sal;
	private String comm;
	private String photo;

	public String getEmpno() {
		return empno;
	}

	public void setEmpno(String empno) {
		this.empno = empno;
	}

	public String getEname() {
		return ename;
	}

	public void setEname(String ename) {
		this.ename = ename;
	}

	public String getJob() {
		return job;
	}

	public void setJob(String job) {
		this.job = job;
	}

	public String getHiredate() {
		return hiredate;
	}

	public void setHiredate(String hiredate) {
		this.hiredate = hiredate;
	}

	public String getSal() {
		return sal;
	}

	public void setSal(String sal) {
		this.sal = sal;
	}

	public String getComm() {
		return comm;
	}

	public void setComm(String comm) {
		this.comm = comm;
	}

	public String getPhoto() {
		return photo;
	}

	public void setPhoto(String photo) {
		this.photo = photo;
	}

}

数据库连接接口——DatabaseConnection.java

package dao.dbc;

import java.sql.Connection;

public interface DatabaseConnection {
	public Connection getConnection();

	public void close() throws Exception;
}

连接Mysql实现DatabaseConnection接口——MysqlDatabaseConnection.java

package dao.dbc;

import java.sql.Connection;
import java.sql.DriverManager;

public class MysqlDatabaseConnection implements DatabaseConnection {
	private static final String DBDRIVER = "com.mysql.cj.jdbc.Driver";
	private static final String DBURL = "jdbc:mysql://localhost:3306/demo1?useUnicode=true&characterEncoding=UTF-8";
	private static final String DBUSER = "root";
	private static final String DBPASSWORD = "123456";
	private Connection conn = null;

	public MysqlDatabaseConnection() throws Exception {
		try {
			Class.forName(DBDRIVER);
			this.conn = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);
		} catch (Exception e) {
			throw e;
		}
	}

	@Override
	public Connection getConnection() {
		// TODO Auto-generated method stub
		return this.conn;
	}

	@Override
	public void close() throws Exception {
		// TODO Auto-generated method stub
		if (this.conn != null) {
			try {
				this.conn.close();
			} catch (Exception e) {
				throw e;
			}
		}

	}

}

定义DAO操作标准——IEmpDAO.java

package dao;

import java.util.List;

import dao.vo.Emp;

public interface IEmpDAO {
	public boolean doCreate(Emp emp) throws Exception; // 数据插入操作

	public Emp findByid(String empno) throws Exception; // 通过编号查询

	public int count() throws Exception;

	public List<Emp> FYselect(int pagesize, int pagenum) throws Exception; // 分页

	public boolean check(String name, String password) throws Exception; // 用户登录

	public List<Emp> findAll(String keyword) throws Exception;

	public boolean update(Emp emp) throws Exception; // 数据更新操作
}

真实主题实现类——EmpDAOImpl.java

package dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import dao.vo.Emp;

public class EmpDAOImpl implements IEmpDAO {
	private PreparedStatement pstmt;
	private Connection conn;

	public EmpDAOImpl(Connection conn) {
		// TODO Auto-generated constructor stub
		this.conn = conn;
	}

	@Override
	public boolean doCreate(Emp emp) throws Exception {
		boolean flag = false;
		String sql = "insert into emp values(?,?,?,?,?,?,?)";
		this.pstmt = this.conn.prepareStatement(sql);
		this.pstmt.setString(1, emp.getEmpno());
		this.pstmt.setString(2, emp.getEname());
		this.pstmt.setString(3, emp.getJob());
		this.pstmt.setString(4, emp.getHiredate());
		this.pstmt.setString(5, emp.getSal());
		this.pstmt.setString(6, emp.getComm());
		this.pstmt.setString(7, emp.getPhoto());
		if (this.pstmt.executeUpdate() == 1) {
			flag = true;
		}
		this.pstmt.close();
		return flag;
	}

	@Override
	public Emp findByid(String empno) throws Exception {
		// TODO Auto-generated method stub
		String sql = "select * from emp where empno=?";
		this.pstmt = conn.prepareStatement(sql);
		this.pstmt.setString(1, empno);
		ResultSet rs = this.pstmt.executeQuery();
		Emp emp = null;
		if (rs.next()) {
			emp = new Emp();
			emp.setEmpno(rs.getString(1));
			emp.setEname(rs.getString(2));
			emp.setJob(rs.getString(3));
			emp.setHiredate(rs.getString(4));
			emp.setSal(rs.getString(5));
			emp.setComm(rs.getString(6));
			emp.setPhoto(rs.getString(7));
		}
		this.pstmt.close();
		return emp;
	}

	@Override
	public int count() throws Exception {
		// TODO Auto-generated method stub
		int count = 0;
		String sql = "select count(*) from emp";
		this.pstmt = conn.prepareStatement(sql);
		ResultSet rs = this.pstmt.executeQuery();
		if (rs.next()) {
			count = Integer.parseInt(rs.getString(1));
		}
		rs.close();
		this.pstmt.close();
		return count;
	}

	@Override
	public List<Emp> FYselect(int pagesize, int pagenum) throws Exception {
		// TODO Auto-generated method stub
		List<Emp> all = new ArrayList<>();
		String sql = "select * from emp limit ?,?";
		this.pstmt = conn.prepareStatement(sql);
		this.pstmt.setInt(1, (pagenum - 1) * pagesize);
		this.pstmt.setInt(2, pagesize);
		ResultSet rs = this.pstmt.executeQuery();
		Emp emp = null;
		while (rs.next()) {
			emp = new Emp();
			emp.setEmpno(rs.getString(1));
			emp.setEname(rs.getString(2));
			emp.setJob(rs.getString(3));
			emp.setHiredate(rs.getString(4));
			emp.setSal(rs.getString(5));
			emp.setComm(rs.getString(6));
			emp.setPhoto(rs.getString(7));
			all.add(emp);
		}
		rs.close();
		this.pstmt.close();
		return all;
	}

	@Override
	public boolean check(String name, String password) throws Exception {
		// TODO Auto-generated method stub
		boolean flag = false;
		String sql = "select * from User where name=? and password=?";
		this.pstmt = conn.prepareStatement(sql);
		this.pstmt.setString(1, name);
		this.pstmt.setString(2, password);
		ResultSet rs = this.pstmt.executeQuery();
		if (rs.next()) {
			flag = true;
		}
		this.pstmt.close();
		return flag;
	}

	@Override
	public List<Emp> findAll(String keyword) throws Exception {
		// TODO Auto-generated method stub
		List<Emp> all = new ArrayList<Emp>();
		String sql = "select * from emp where ename like ? or job like ?";
		this.pstmt = this.conn.prepareStatement(sql);
		this.pstmt.setString(1, "%" + keyword + "%");
		this.pstmt.setString(2, "%" + keyword + "%");
		ResultSet rs = this.pstmt.executeQuery();
		Emp emp = null;
		while (rs.next()) {
			emp = new Emp();
			emp.setEmpno(rs.getString(1));
			emp.setEname(rs.getString(2));
			emp.setJob(rs.getString(3));
			emp.setHiredate(rs.getString(4));
			emp.setSal(rs.getString(5));
			emp.setComm(rs.getString(6));
			emp.setPhoto(rs.getString(7));
			all.add(emp);
		}
		this.pstmt.close();
		return all;
	}

	@Override
	public boolean update(Emp emp) throws Exception {
		// TODO Auto-generated method stub
		boolean flag = false;
		String sql = "update emp set ename=?,job=?,hiredate=?,sal=?,comm=?,photo=? where empno=?";
		this.pstmt = this.conn.prepareStatement(sql);
		this.pstmt.setString(1, emp.getEname());
		this.pstmt.setString(2, emp.getJob());
		this.pstmt.setString(3, emp.getHiredate());
		this.pstmt.setString(4, emp.getSal());
		this.pstmt.setString(5, emp.getComm());
		this.pstmt.setString(6, emp.getPhoto());
		this.pstmt.setString(7, emp.getEmpno());
		if (this.pstmt.executeUpdate() == 1) {
			flag = true;
		}
		this.pstmt.close();
		return flag;
	}

}

代理主题实现类——EmpDAOProxy.java:

package dao;

import java.util.List;

import dao.dbc.MysqlDatabaseConnection;
import dao.vo.Emp;

public class EmpDAOProxy implements IEmpDAO {
	private MysqlDatabaseConnection dbc = null;
	private IEmpDAO dao = null;

	public EmpDAOProxy() throws Exception {
		// TODO Auto-generated constructor stub
		this.dbc = new MysqlDatabaseConnection();
		this.dao = new EmpDAOImpl(this.dbc.getConnection());
	}

	@Override
	public boolean doCreate(Emp emp) throws Exception {
		// TODO Auto-generated method stub
		boolean flag = false;
		flag = this.dao.doCreate(emp);
		this.dbc.close();
		return flag;
	}

	@Override
	public Emp findByid(String empno) throws Exception {
		// TODO Auto-generated method stub
		Emp emp = null;
		emp = this.dao.findByid(empno);
		this.dbc.close();
		return emp;
	}

	@Override
	public int count() throws Exception {
		// TODO Auto-generated method stub
		int count = 0;
		count = this.dao.count();
		this.dbc.close();
		return count;
	}

	@Override
	public List<Emp> FYselect(int pagesize, int pagenum) throws Exception {
		// TODO Auto-generated method stub
		List<Emp> all = null;
		all = this.dao.FYselect(pagesize, pagenum);
		this.dbc.close();
		return all;
	}

	@Override
	public boolean check(String name, String password) throws Exception {
		// TODO Auto-generated method stub
		boolean flag = false;
		flag = this.dao.check(name, password);
		this.dbc.close();
		return flag;
	}

	@Override
	public List<Emp> findAll(String keyword) throws Exception {
		// TODO Auto-generated method stub
		List<Emp> all = null;
		all = this.dao.findAll(keyword);
		this.dbc.close();
		return all;
	}

	@Override
	public boolean update(Emp emp) throws Exception {
		// TODO Auto-generated method stub
		boolean flag = false;
		flag = this.dao.update(emp);
		this.dbc.close();
		return flag;
	}

}

DAO工厂类——DAOFactory:

package dao;

public class DAOFactory {
	public static IEmpDAO getIEmpDAOInstance() throws Exception {
		// TODO Auto-generated method stub
		return new EmpDAOProxy();
	}
}

首页——welcome.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%request.setCharacterEncoding("UTF-8");%>
<%
	if(session.getAttribute("uname")!=null){ //如果session存值就跳转
%>
	<jsp:forward page="userpage.jsp"/>
<%
	}else{
%>
		<h3>请先进行系统<a href="index.jsp">登录</a></h3>
<%
	}
%>	
</body>
</html>

管理员登录——index.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
	String username = "";
	String userpassword = "";
	Cookie cookie[] = request.getCookies();
	for(int i=0;i<cookie.length;i++){
		if("username".equals(cookie[i].getName())){
			username = cookie[i].getValue();
		}else if("userpassword".equals(cookie[i].getName())){
			userpassword = cookie[i].getValue();
		}
	}
%>
<form action="check.jsp" method="post">
用户名<input type="text" name="name" value="<%=username%>"><br>&nbsp;&nbsp;&nbsp;&nbsp;<input type="password" name="password" value="<%=userpassword%>"><br>
<input type="checkbox" name="remember" value="1">记住我
<input type="submit" value="登录">
</form>
</body>
</html>

管理员登录

验证管理员登录——check.jsp:

<%@ page import="dao.DAOFactory" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%request.setCharacterEncoding("UTF-8"); %>
<%
	String name = request.getParameter("name");
	String password = request.getParameter("password");
	String remember = request.getParameter("remember");
	boolean flag = false;
	
	if(DAOFactory.getIEmpDAOInstance().check(name, password)){
		session.setAttribute("uname", name);
		flag = true;
		if(remember!=null){
			Cookie cookiename = new Cookie("username",name);
			Cookie cookiepassword = new Cookie("userpassword",password);
			cookiename.setMaxAge(60*60*24);
			cookiepassword.setMaxAge(60*60*24);
			response.addCookie(cookiename);
			response.addCookie(cookiepassword);
		}
	}
	if(flag){
%>
		<jsp:forward page="welcome.jsp"/>
<% 
	}else{
%>
		<jsp:forward page="failure.jsp"/>
<% 
	}
%>
</body>
</html>

雇员信息界面——userpage.jsp:

<%@ page import="dao.DAOFactory" %>
<%@ page import="java.util.*" %>
<%@ page import="dao.vo.Emp" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h1>雇员列表</h1>
<%request.setCharacterEncoding("UTF-8"); %>
<form action="select.jsp" method="post">
请输入关键字<input type="text" name="keyword">
<input type="submit" value="查询">
<input type="button" value="增加雇员"  onclick="window.location.href='add.jsp'">
</form>
<%
	String n = request.getParameter("pageNum"); //获取到通过超链接得到的值
	//分页
	int pageSize = 5; //每页的数据条数
	int lineCount = 0; //获得数据库中的数据
	int pageCount = 0; //分多少页
	int pageNum = 1; //当前页
	if(n!=null){
		pageNum = Integer.parseInt(n);
	}
	lineCount = DAOFactory.getIEmpDAOInstance().count(); //查出数据库中有多少条数据
	pageCount = lineCount % pageSize == 0 ? lineCount/pageSize : lineCount/pageSize + 1; //计算分多少页
	List<Emp> all = DAOFactory.getIEmpDAOInstance().FYselect(pageSize, pageNum);
	Iterator<Emp> iter = all.iterator();
%>
    <h2>雇员信息</h2>
	<table border="1" cellspacing="0" width="100%">
	<tr>
	<td align="center">雇员编号</td>
	<td align="center">雇员姓名</td>
	<td align="center">雇员工作</td>
	<td align="center">入职时间</td>
	<td align="center">基本工资</td>
	<td align="center">雇员奖金</td>
	<td align="center">雇员头像</td>
	<td align="center">状态</td>
	</tr>
	<%
	while(iter.hasNext()){
		Emp emp = iter.next();
	%>
	<tr>
	<td align="center"><%=emp.getEmpno() %></td>
	<td align="center"><%=emp.getEname() %></td>
	<td align="center"><%=emp.getJob() %></td>
	<td align="center"><%=emp.getHiredate() %></td>
	<td align="center"><%=emp.getComm() %></td>
	<td align="center"><%=emp.getSal() %></td>
	<td align="center"><img src="./upload/<%=emp.getPhoto() %>" style="width:100px; height:100px"></td>
	<td align="center"><a href="update.jsp?emp=<%=emp.getEmpno() %>">修改</a></td>
	</tr>
	<%
	}
	%>
	</table>
<%
	for(int i=1;i<=pageCount;i++){
%>
	<a href="userpage.jsp?pageNum=<%=i%>">[<%=i %>]</a> <!--将当前页的序号传递给当前页-->
<%
	}
%>
</body>
</html>

雇员信息

增加雇员——add.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
<script type="text/javascript">
function  oc1(){
    var  flag=true;

    //编号验证
    var userno=document.getElementById("no");
    var usernotext=userno.value;
    var usernospanobj=document.getElementById("usernospan");
    var pst=/^[0-9]*$/;
    if (!pst.test(usernotext)){
        usernospanobj.innerHTML="请输入数字!";
        flag=false;
    }
    else{
        usernospanobj.innerHTML=" ";
    }

    //用户名验证
    var user=document.getElementById("username");
    var usertext=user.value;
    var usernamespanobj=document.getElementById("usernamespan");
    if (usertext===" "){
        usernamespanobj.innerHTML="不能为空!";
        flag=false;
    }
    else{
        usernamespanobj.innerHTML=" ";
    }


    //工作验证
    var userwork=document.getElementById("work");
    var userworktext=userwork.value;
    var userworkspanobj=document.getElementById("workspan");
    if (userworktext===" "){
        userworkspanobj.innerHTML="不能为空!";
        flag=false;
    }
    else{
        userworkspanobj.innerHTML=" ";
    }


    //日期验证
    var  userdata=document.getElementById("date");
    var  userdatawork=userdata.value;
    var  userdatapanobj=document.getElementById("dataspan");
    var  patt=/^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/;
    if (!patt.test(userdatawork)){
        userdatapanobj.innerHTML="输入正确的格式 例:2022-11-10";
        flag=false;
    }
    else{
        userdatapanobj.innerHTML=" ";
    }


    //基本工资验证
    var  userwage=document.getElementById("wage");
    var  userwagetext=userwage.value;
    var  userwagerspanobj=document.getElementById("wagespan");
    var  patt1=/^\d+\.\d+$/;
    if (!patt1.test(userwagetext)){
        userwagerspanobj.innerHTML="必须是数字(小数)!";
        flag=false;
    }
    else{
        userwagerspanobj.innerHTML=" ";
    }

    //奖金验证
    var  usermoney=document.getElementById("money");
    var  usermoneytext=usermoney.value;
    var  usermoneyspanobj=document.getElementById("moneyspan");
    if (!patt1.test(usermoneytext)){
        usermoneyspanobj.innerHTML="必须是数字(小数)!";
        flag=false;
    }
    else{
        usermoneyspanobj.innerHTML="  ";
    }
    return flag;
}
</script>
</head>

<body>
<div>
<h2>增加雇员信息</h2>
<form action="addsql.jsp"  method="post" enctype="multipart/form-data" onsubmit="return oc1()"   >
    雇员编号:<input type="text" id="no" name="deptno"><span id="usernospan" style="color: red"></span><br>
    雇员姓名:<input type="text" id="username" name="dname" /><span id="usernamespan" style="color: red"></span><br>
    雇员工作:<input type="text" id="work" name="job"><span id="workspan" style="color: red"></span><br>
    雇员日期:<input type="text" id="date" name="date"><span id="dataspan" style="color: red"></span><br>
    基本工资:<input type="text" id="wage" name="salary"><span id="wagespan" style="color: red"></span><br>
    雇员奖金:<input type="text" id="money" name="bonus"><span id="moneyspan" style="color: red"></span><br>
    雇员头像:<input type="file" name="photo"><br>
    <input type="submit"  value="注册" ><input type="button" value="返回" onclick="window.location.href='welcome.jsp';">

</form>
</div>
</body>
</html>

增加雇员

完成增加雇员的操作——addsql.jsp:

<%@ page import="org.lxh.smart.*" %>
<%@ page import="java.util.UUID" %>
<%@ page import="dao.vo.Emp" %>
<%@ page import="dao.*" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<%request.setCharacterEncoding("UTF-8"); %>
<title>Insert title here</title>
</head>
<body>
<%
	SmartUpload smart = new SmartUpload();
	smart.initialize(pageContext);
	smart.upload();
	String fileName = null;
	String ext = null;
	if(smart.getFiles().getSize()>0){  //如果获取到文件
		ext=smart.getFiles().getFile(0).getFileExt();  //取得文件后缀名称
		fileName= UUID.randomUUID().toString()+"."+ext; //取得文件名称
		smart.getFiles().getFile(0).saveAs(request.getServletContext().getRealPath("/")+"upload"+ java.io.File.separator+fileName);  //保存文件
		}else{
		fileName = "af956332-e936-4ae9-a16d-1f37163dabe4.jpg";
		}	
	String empno = smart.getRequest().getParameter("deptno");
	String ename = smart.getRequest().getParameter("dname");
	String job = smart.getRequest().getParameter("job");
	String hiredate = smart.getRequest().getParameter("date");
	String sal = smart.getRequest().getParameter("salary");
	String comm = smart.getRequest().getParameter("bonus");
	String msg = null;
	
	Emp emp = new Emp();
	emp.setEmpno(empno);
	emp.setEname(ename);
	emp.setJob(job);
	emp.setHiredate(hiredate);
	emp.setSal(sal);
	emp.setComm(comm);
	emp.setPhoto(fileName);
	if(DAOFactory.getIEmpDAOInstance().doCreate(emp)){
		msg="添加成功";
	}else{
		msg="修改失败";
	}
%>
<script type="text/javascript">
    alert("<%=msg%>");
    window.location="userpage.jsp";
</script>
</body>
</html>

修改雇员——update.jsp:

<%@ page import="org.lxh.smart.*" %>
<%@ page import="dao.vo.Emp" %>
<%@ page import="dao.*" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<h2>修改雇员信息</h2>
<script type="text/javascript">
function  oc1(){
    var  flag=true;

    //编号验证
    var userno=document.getElementById("no");
    var usernotext=userno.value;
    var usernospanobj=document.getElementById("usernospan");
    var pst=/^[0-9]*$/;
    if (!pst.test(usernotext)){
        usernospanobj.innerHTML="请输入数字!";
        flag=false;
    }
    else{
        usernospanobj.innerHTML=" ";
    }

    //用户名验证
    var user=document.getElementById("username");
    var usertext=user.value;
    var usernamespanobj=document.getElementById("usernamespan");
    if (usertext===" "){
        usernamespanobj.innerHTML="不能为空!";
        flag=false;
    }
    else{
        usernamespanobj.innerHTML=" ";
    }


    //工作验证
    var userwork=document.getElementById("work");
    var userworktext=userwork.value;
    var userworkspanobj=document.getElementById("workspan");
    if (userworktext===" "){
        userworkspanobj.innerHTML="不能为空!";
        flag=false;
    }
    else{
        userworkspanobj.innerHTML=" ";
    }


    //日期验证
    var  userdata=document.getElementById("date");
    var  userdatawork=userdata.value;
    var  userdatapanobj=document.getElementById("dataspan");
    var  patt=/^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/;
    if (!patt.test(userdatawork)){
        userdatapanobj.innerHTML="输入正确的格式 例:2022-11-10";
        flag=false;
    }
    else{
        userdatapanobj.innerHTML=" ";
    }


    //基本工资验证
    var  userwage=document.getElementById("wage");
    var  userwagetext=userwage.value;
    var  userwagerspanobj=document.getElementById("wagespan");
    var  patt1=/^\d+\.\d+$/;
    if (!patt1.test(userwagetext)){
        userwagerspanobj.innerHTML="必须是数字(小数)!";
        flag=false;
    }
    else{
        userwagerspanobj.innerHTML=" ";
    }

    //奖金验证
    var  usermoney=document.getElementById("money");
    var  usermoneytext=usermoney.value;
    var  usermoneyspanobj=document.getElementById("moneyspan");
    if (!patt1.test(usermoneytext)){
        usermoneyspanobj.innerHTML="必须是数字(小数)!";
        flag=false;
    }
    else{
        usermoneyspanobj.innerHTML="  ";
    }
    return flag;
}
</script>
<%
	String id = request.getParameter("emp");
	Emp emp = DAOFactory.getIEmpDAOInstance().findByid(id);
%>
<form action="updatesql.jsp?picture=<%=emp.getPhoto()%>"  method="post" enctype="multipart/form-data" onsubmit="return oc1()"   >
        雇员编号:<input type="text" id="no" name="deptno" value="<%=emp.getEmpno()%>"><br>
        雇员姓名:<input type="text" id="username" name="dname" value="<%=emp.getEname()%>"><br>
        雇员工作:<input type="text" id="work" name="job" value="<%=emp.getJob()%>"><br>
        雇员日期:<input type="text" id="date" name="date" value="<%=emp.getHiredate()%>"><br>
        基本工资:<input type="text" id="wage" name="salary" value="<%=emp.getSal()%>"><br>
        雇员奖金:<input type="text" id="money" name="bonus" value="<%=emp.getComm()%>"><br>
        雇员头像:<input type="file" name="photo" class="tupian"><br>
     <input type="submit" value="修改" >
     <input type="button" value="返回" onclick="window.location.href='welcome.jsp';">
    </form>
    <div>
    <img src="./upload/<%=emp.getPhoto() %>" style="width:100px; height:100px"/>
    </div>
</body>
</html>

修改雇员信息

完成修改雇员的操作——updatesql.jsp:

<%@ page import="org.lxh.smart.*" %>
<%@ page import="java.util.UUID" %>
<%@ page import="dao.vo.Emp" %>
<%@ page import="dao.*" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%request.setCharacterEncoding("GBK");%>
<%
    String ext=null;
	String fileName=null;
	SmartUpload smart=new SmartUpload();  //新建一个对象
	smart.initialize(pageContext);     //上传初始化
	smart.upload();   //上传做准备
	if(smart.getFiles().getSize()>0){  //如果获取到文件
		ext=smart.getFiles().getFile(0).getFileExt();  //取得文件后缀名称
		fileName= UUID.randomUUID().toString()+"."+ext; //取得文件名称
		smart.getFiles().getFile(0).saveAs(request.getServletContext().getRealPath("/")+"upload"+ java.io.File.separator+fileName);  //保存文件
		}
	else {
		fileName=request.getParameter("picture");   //接受update页面传过来的图片参数
		}
	
	String empno = smart.getRequest().getParameter("deptno");
	String ename = smart.getRequest().getParameter("dname");
	String job = smart.getRequest().getParameter("job");
	String hiredate = smart.getRequest().getParameter("date");
	String sal = smart.getRequest().getParameter("salary");
	String comm = smart.getRequest().getParameter("bonus");
	String msg = null;
	
	Emp emp = new Emp();
	emp.setEmpno(empno);
	emp.setEname(ename);
	emp.setJob(job);
	emp.setHiredate(hiredate);
	emp.setSal(sal);
	emp.setComm(comm);
	emp.setPhoto(fileName);
	if(DAOFactory.getIEmpDAOInstance().update(emp)){
		msg="修改成功";
	}else{
		msg="修改失败";
	}
%>
<script type="text/javascript">
    alert("<%=msg%>");
    window.location="userpage.jsp";
</script>
</body>
</html>

查询操作——select.jsp:

<%@ page import="dao.DAOFactory" %>
<%@ page import="java.util.*" %>
<%@ page import="dao.vo.Emp" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%request.setCharacterEncoding("UTF-8");%>
<%
	String keyword = request.getParameter("keyword");
	if(keyword==null){
		keyword="";
	}
	List<Emp> all = DAOFactory.getIEmpDAOInstance().findAll(keyword);
	Iterator<Emp> iter = all.iterator();
%>
	<h2>查询结果</h2>
	<table border="1" cellspacing="0" width="100%">
	<tr>
	<td align="center">雇员编号</td>
	<td align="center">雇员姓名</td>
	<td align="center">雇员工作</td>
	<td align="center">入职时间</td>
	<td align="center">基本工资</td>
	<td align="center">雇员奖金</td>
	<td align="center">雇员头像</td>
	</tr>
<%
	while(iter.hasNext()){
		Emp emp = iter.next();
%>
	<tr>
	<td align="center"><%=emp.getEmpno() %></td>
	<td align="center"><%=emp.getEname() %></td>
	<td align="center"><%=emp.getJob() %></td>
	<td align="center"><%=emp.getHiredate() %></td>
	<td align="center"><%=emp.getComm() %></td>
	<td align="center"><%=emp.getSal() %></td>	
	<td align="center"><img src="./upload/<%=emp.getPhoto() %>" style="width:100px; height:100px"></td>
	</tr>
<%
	}
%>
</table>
<a href="welcome.jsp">返回首页</a>
</body>
</html>

查询结果

注意事项
  1. 通过SmartUpload上传文件时,一定要保存在项目的发布路径下;不能再工程项目下直接创建文件夹
    寻找发布路径
  2. 使用ip地址+时间戳+三位随机数给文件命名的话,若采用书上给的request.getRemoteAddr()获取ip地址的方法,得到的ip地址格式不正确;所以我调用了java.util.UUID生成了随机的文件名
    UUID生成文件名
  3. 使用SmartUpload时添加的jar包是smartupload.jar,而不是jspSmartUpload.jar;若导入后者,引入org.lxh.smart.*是会报错的
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值