培训第21天----jsp的初步应用

               Jsp总的来说,就是能在HTML页面上写Java代码的文件。下面是一个可以操作crud的员工信息管理的表格。

一.实体类

1.部门类

package com.java.Bean;

public class Dopt {
          /*
           * CREATE TABLE `dopt` (
           `did` int(11) NOT NULL,
           `dname` varchar(255) DEFAULT NULL,
           `location` varchar(255) DEFAULT NULL,
           PRIMARY KEY (`did`)
           ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
          */
	private Integer did;
	private String dname;
	private String location;
	
	public Dopt() {
		super();
	}

	public Dopt(String dname, String location) {
		super();
		this.dname = dname;
		this.location = location;
	}

	public Dopt(Integer did, String dname, String location) {
		super();
		this.did = did;
		this.dname = dname;
		this.location = location;
	}

	public Integer getDid() {
		return did;
	}

	public void setDid(Integer did) {
		this.did = did;
	}

	public String getDname() {
		return dname;
	}

	public void setDname(String dname) {
		this.dname = dname;
	}

	public String getLocation() {
		return location;
	}

	public void setLocation(String location) {
		this.location = location;
	}

	@Override
	public String toString() {
		return "Dopt [did=" + did + ", dname=" + dname + ", location=" + location + "]";
	}
	
	
}

2.员工实体类

package com.java.Bean;

public class Emp {
        /*
         * CREATE TABLE `emp` (
           `eid` int(11) NOT NULL,
           `ename` varchar(255) DEFAULT NULL,
           `sal` int(11) DEFAULT NULL,
           `mgr` varchar(255) DEFAULT NULL,
           `did` int(11) DEFAULT NULL,
           PRIMARY KEY (`eid`)
           ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
         * */

	private Integer eid;
	private String ename;
	private Integer sal;
	private String mgr;
	private Integer did;
	
	public Emp() {
		super();
	}
	
	public Emp(String ename, Integer sal, String mgr, Integer did) {
		super();
		this.ename = ename;
		this.sal = sal;
		this.mgr = mgr;
		this.did = did;
	}
	
	public Emp(Integer eid, String ename, Integer sal, String mgr, Integer did) {
		super();
		this.eid = eid;
		this.ename = ename;
		this.sal = sal;
		this.mgr = mgr;
		this.did = did;
	}
	public Integer getEid() {
		return eid;
	}
	public void setEid(Integer eid) {
		this.eid = eid;
	}
	public String getEname() {
		return ename;
	}
	public void setEname(String ename) {
		this.ename = ename;
	}
	public Integer getSal() {
		return sal;
	}
	public void setSal(Integer sal) {
		this.sal = sal;
	}
	public String getMgr() {
		return mgr;
	}
	public void setMgr(String mgr) {
		this.mgr = mgr;
	}
	public Integer getDid() {
		return did;
	}
	public void setDid(Integer did) {
		this.did = did;
	}

	@Override
	public String toString() {
		return "Emp [eid=" + eid + ", ename=" + ename + ", sal=" + sal + ", mgr=" + mgr + ", did=" + did + "]";
	}
	
	
	
}

二.DButils类

package com.java.Utils;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class DBUtil {
	
     private static final String URL="jdbc:mysql://localhost:3306/ccgl" ;
     private static final String CHARSET="?useUnicode=true&characterEncoding=GBK" ;
     private static final String USERNAME="root" ;
     private static final String PASSWORD="root" ;
     private static final String MYSQLDRIVER="com.mysql.jdbc.Driver";
     private Connection connection;
     
     //在静态代码块中加载驱动类
     static {
    	 try {
			Class.forName(MYSQLDRIVER);
		} catch (ClassNotFoundException e) {
			// 类没有发现 异常
			e.printStackTrace();
		}
     }
     
     //定义方法获得链接对象,保证链接对象是唯一的
     public void gertConnection() throws SQLException {
    	 if(null==connection || connection.isClosed()) {
    		 connection=DriverManager.getConnection(URL+CHARSET,USERNAME,PASSWORD);
    	 }
     }
     
     /*操作数据库主要分为两种形式:
	    *   1.增,删,改。它们属于Update(更新)类型。返回值为int,说明数据库中被影响的行数。
	    *   2.查询。它属于Query(查询)类型。返回值为ResultSet,可以用于遍历查询到的数据。
	    * */
     //增,删,改,用的都是这个更新方法。
	 public boolean common_update(Object[] obj,String sql) throws SQLException {
		   //获得操作数据库的链接对象。  
		   this.gertConnection();
		   //通过链接对象得到预处理模板
		   PreparedStatement prepareStatement=connection.prepareStatement(sql);
		   //替换参数
		   for(int i=0;i<obj.length;i++) { 
		    prepareStatement.setObject(i+1, obj[i]);
		   }
		   //执行sql
		   int result=prepareStatement.executeUpdate();
		   return result>0;
	}  
	   //分页查询的方法。
	   public ResultSet common_query(Object[] obj,String sql) throws SQLException {
		   //得到操作数据库的链接对象
		   this.gertConnection();
		   //得到预处理模板
		   PreparedStatement prepareStatement=connection.prepareStatement(sql);
		   //替换参数
		   for(int i=0;i<obj.length;i++) {
		    prepareStatement.setObject(i+1,obj[i]);
		   }
		   //执行sql
		   ResultSet resultSet=prepareStatement.executeQuery();
		   //返回结果集
		   return resultSet;
		   
	   }
}

三.EmpDao类

package com.java.Dao;

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

import com.java.Bean.Emp;
import com.java.Utils.DBUtil;

//该类主要是用于操作数据库的,通过方法直接操作于数据库,通常写sql语句。
public class EmpDao {
	    //增加数据的方法
		public boolean common_add(Emp emp) throws SQLException {
			//增添数据的sql语句
			String add_sql="insert into emp(ename,sal,mgr,did) value(?,?,?,?)";
			//用于替换参数的数组
			Object[] obj= {emp.getEname(),emp.getSal(),emp.getMgr(),emp.getDid()};
			//调用Dao层的方法
			DBUtil dbUtil=new DBUtil();
			boolean result=dbUtil.common_update(obj, add_sql);
			return result;
		}

		//删除数据的方法,根据主键进行删除
		public boolean common_delete(Emp emp) throws SQLException {
			//增添数据的sql语句
			String delete_sql="delete from emp where eid=?";
			//用于替换参数的数组
			Object[] obj= {emp.getEid()};
			//调用Dao层的方法
			DBUtil dbUtil=new DBUtil();
			boolean result=dbUtil.common_update(obj, delete_sql);
			return result;
			}
		
		//更新数据的方法,根据主键进行更新
		public boolean common_update(Emp emp) throws SQLException {
			//增添数据的sql语句
			String update_sql="update emp set ename=?,sal=?,mgr=?,did=? where eid=?";
			//用于替换参数的数组
			Object[] obj= {emp.getEname(),emp.getSal(),emp.getMgr(),emp.getDid(),emp.getEid()};
			//调用工具类中的方法
			DBUtil dbUtil=new DBUtil();
			boolean result=dbUtil.common_update(obj, update_sql);
			return result;
			}
		
		//查询数据的方法,查询全部数据(分页)
		public List<Emp> query_all(int pageNum,int pageSize ) throws SQLException {
			//创建用于转载emp类型的集合
			List<Emp> list=new ArrayList<Emp>();
			//查询数据的语句
			String query_all_sql="select * from emp limit ?,?";
		    //用于替换参数的数组
			Object[] obj= {(pageNum-1)*pageSize,pageSize};//数据是从0开始查的,从0开始查,查5个
			//调用工具类中的方法
			DBUtil dbUtil=new DBUtil();
			ResultSet resultSet=dbUtil.common_query(obj, query_all_sql);
			//遍历结果集
			while(resultSet.next()) {
				Emp emp=new Emp();
				     emp.setDid(resultSet.getInt("eid"));
				     emp.setEname(resultSet.getString("ename"));
				     emp.setMgr(resultSet.getString("mgr"));
				     emp.setSal(resultSet.getInt("sal"));
				     emp.setEid(resultSet.getInt("eid"));
				     list.add(emp);
			}
			return list;
		}
		
		//查询一个emp的方法
		public Emp get_one_emp(Emp emp) throws SQLException {
			//创建一个用于返回的Emp对象
			Emp emp_return=new Emp();
			//指定sql语句
			String get_one_emp_sql="select * from emp where eid=?";
			Object[] obj= {emp.getEid()};
			//调用工具类中的方法
			DBUtil dbUtil=new DBUtil();
			ResultSet resultSet=dbUtil.common_query(obj, get_one_emp_sql);
			//遍历结果集
			while(resultSet.next()) {
				emp_return.setDid(resultSet.getInt("eid"));
				emp_return.setEname(resultSet.getString("ename"));
				emp_return.setMgr(resultSet.getString("mgr"));
				emp_return.setSal(resultSet.getInt("sal"));
				emp_return.setEid(resultSet.getInt("eid"));
			}
			return emp_return;
		}
		//统计数据一个几页(总页码数)
		public int getPageSum(int pageSize) throws SQLException {
			//定义计数器
			int i=0;
			//定义sql语句,查看数据的行数
			String sql="select COUNT(*) from emp";
			//定义替换参数的数组
			Object[] obj= {};
			//调用DBUtils中的方法
			DBUtil dbUtil=new DBUtil();
			ResultSet resultSet=dbUtil.common_query(obj, sql);
			//遍历结果集
			while(resultSet.next()) {
				i=resultSet.getInt("COUNT(*)");
			}
			//进行数学计算,确定总页数,其中% 为取余符:7%2=1
			return i%pageSize==0?i/pageSize:(i/pageSize)+1;
		}
		
		//进行批量删除的方法
		public boolean pl_delete_emp(String str) throws SQLException {
			//定义sql语句
			String sql="delete from emp where eid in("+str+")";//采用字符串拼接的方式。
			//定义替换参数的数组
			Object[] obj= {};
			//调用更新的方法
			DBUtil dbUtil=new DBUtil();
			boolean result=dbUtil.common_update(obj, sql);
			return result;
		}
}
       

四.EmpService类

package com.java.Service;

import java.sql.SQLException;
import java.util.List;

import com.java.Bean.Emp;
import com.java.Dao.EmpDao;

//该类通过调用Dao层方法,并向其传入参数,来获得返回结果
public class EmpService {
	 public static void main(String[] args) {
		
		EmpService empService=new EmpService();
		//调用添加方法
		//empService.common_add();
		//删除方法
		//empService.common_delete();
		//更新方法
		//empService.common_update();
		//查询方法
		empService.query_all();
		
	}
	 
	 public void common_add() {
     //创建对象,用于往数据库里存数据
	 Emp emp=new Emp("张三",100,"0000",10);
	 //调用Dao中的方法
	 EmpDao empDao=new EmpDao();
	 try {
		empDao.common_add(emp);
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	 }
	 
	 public void common_delete() {
		 //创建对象,用于删除数据
		 Emp emp=new Emp(2,"张三",100,"0000",10);
		 //调用Dao中的方法
		 EmpDao empDao=new EmpDao();
		 try {
			empDao.common_delete(emp);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		 }
	 
	 public void common_update() {
		 //创建对象,用于更新数据
		 Emp emp=new Emp(3,"李四",200,"0010",10);
		 //调用Dao中的方法
		 EmpDao empDao=new EmpDao();
		 try {
			empDao.common_update(emp);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		 }
	 public void query_all() {
		 //创建对象,用于删除数据
		 Emp emp=new Emp(3,"李四",200,"0010",10);
		 //调用Dao中的方法
		 EmpDao empDao=new EmpDao();
		 List<Emp> list;
		 try {
			 list=empDao.query_all(1,5);
			 //对list集合进行遍历
			 for(Emp emp1:list) {
				 System.out.println(emp1);
			 }
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		 }
}

五.jsp页面

1.index页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>首页</title>
</head>
<body>
	<!-- 当访问empmanager这个项目时,会自动访问首页
	               通常index只用于跳转,携带参数,在别的jsp页面进行数据处理
	 -->
	 <script> 
	 	<!--location.href=""在执行到这句代码的时候,会带着所传参数跳转到目标页面-->
	 	location.href="get_emp.jsp?pageNum=1";
	 </script>
</body>
</html>

2.get页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!-- 首页的跳转页面,用于数据处理,是一种特殊的jsp -->
<%@ page import="com.java.Dao.*"%>
<%@ page import="com.java.Bean.*"%>
<%@ page import="java.util.*"%>
<%
	//用于书写java代码
	 String pageNum=request.getParameter("pageNum");
     int pageSize=5;
     EmpDao empDao=new EmpDao();
     List<Emp> list=empDao.query_all(Integer.parseInt(pageNum),pageSize);
     int pageSum=empDao.getPageSum(pageSize);
     //对参数进行封装
     request.setAttribute("list", list);
     request.setAttribute("pageNum",pageNum);
     request.setAttribute("pageSum",pageSum);
     //进行转发请求,访问路径不变
     request.getRequestDispatcher("show_emp.jsp").forward(request,response);
%>

3.show页面

​
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="com.java.Dao.*"%>
<%@ page import="com.java.Bean.*"%>
<%@ page import="java.util.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>用于当作视图,显示数据</title>
      <script src = "js/jquery-1.8.3.js"></script>
      <script>
      	function delete_one_emp(eid){
      		if(confirm("是否删除")){
      			location.href="delete_emp.jsp?eid="+eid;
      		}
      	}
      	
      	function update_emp(eid){
      		var url="update_emp.jsp?eid="+eid;
      		var name="修改员工信息";
      		var iHeight=300;
      		var iWidth=400;
      	    var	top=(window.screen.avaiHeight - 30 - iHeight) / 2;
      	    var left=(window.screen.avaiWidth - 10 - iWidth) / 2; 
      		window.open(url,name,"height="+iHeight+",width="+iWidth+",top="+top+",left="+left);
      	}
      	
      	
      	$(function(){
      		//注意在通过id或class获得标签时,一定要加#号!!!!!!!!!!!!!
      		$("#pl_delete").click(function(){ 
      			//构建一个待删除的数组
      			var pre_delete_arr=new Array();
      			//得到所有复选框的id
      			var checkbox_arr=$("input[id^=checkbox_]");//标签选择器,得到标签
      			//遍历各个复选框的状态,用增强for循环
      			for(var checkbox_one in checkbox_arr){
      			     //如果复选框中的状态为true,就填加到待删除的数组中
      			     if(checkbox_arr[checkbox_one].checked==true){
      			    	//得到当前标签内的id值
      			    	var pre_delete_id = checkbox_arr[checkbox_one].id;
      			    	//将id值用方法分割,得到int类型的常量。
      			    	var int_id=pre_delete_id.split("checkbox_")[1].trim();
      			    	//将有效id方法待删除的数组中,往数组中放数据用push()方法。
      			    	pre_delete_arr.push(int_id);
      			    	
      			     }
      			}
      			//确认是否删除
      			if(confirm("是否确定删除?")){
      				//进入批量删除的jsp页面,进行删除
      				//注意:在进行页面跳转的时候,一定要在页面名后加.jsp!!!!!!!!!!
      				location.href="pl_delete_emp.jsp?pre_delete_arr="+pre_delete_arr.toString();
      			}
      		})
      	})
      	//用ajax进行异步校验(查询操作)
      	$(function(){
      		$("#query_one_byAjax").blur(function(){
      			var input_value=$(this).val();
      			//进行输入值的校验
      			if(null==input_value || ""==input_value){
      				alert("请输入查询id");
      				return;
      			}
      			if(isNaN(input_value)){
      				alert("请输入正确的查询信息");
      				return;
      			}
      			$.ajax({
      				dateType:'json',
      		        url:"query_one_byAjax.jsp?input_value="+input_value,
      		        success:function(data){
      		    	   alert("回调函数");
      		        }
      			});
      		});
      		
      	});
      </script>
	
</head>
<body>
      <!-- 标签内所有元素居中 -->
      <center>
      <b>请输入查询id:</b><input type="text" id="query_one_byAjax"/>
      	<table border=2px>
      			<captain><h1>员工信息表</h1></captain>
      			<tr>
      			    <th>全选<input type="checkbox" id="select_all_checkbox"/></th>
      				<th>员工编号</th>
      				<th>员工姓名</th>
      				<th>员工薪水</th>
      				<th>员工经理编号</th>
      				<th>部门号</th>
      				<th>操作</th>
      			</tr>
      			<!-- 动态建表  将所需要建的行放入到for循环中,之后开始分解,把java代码放入到标签中,把表
      			     拿出到java代码所存在的标签中-->
      			<%
      			 List<Emp> list=(List<Emp>)request.getAttribute("list");
      			 String pageNum_str=request.getAttribute("pageNum").toString();//getAttribute得到的是Object类型
      			 Integer pageNum=Integer.parseInt(pageNum_str);
      			 String pageSum=request.getAttribute("pageSum").toString();
      			 for(Emp emp:list) {
      			
      			%>
      			<tr id="<%=emp.getEid()%>">
      				<td><input type="checkbox" id="checkbox_<%=emp.getEid()%>"/></td>
      				<td><%=emp.getEid() %></td>
      				<td><%=emp.getEname() %></td>
      				<td><%=emp.getSal() %></td>
      				<td><%=emp.getMgr() %></td>
      				<td><%=emp.getDid() %></td>
      				<td>
      				<!-- 进行删除操作,就是按下按钮调用相应的函数,跳转到删除页面删除数据,在重新查询 -->
      					<input type="button" value="删除" onclick="delete_one_emp(<%=emp.getEid()%>)"/>
      				<!-- 进行修改操作,就是按下按钮调用相应的函数,打开一个新的窗口,并携带参数 -->
      					<input type="button" value="修改" onclick="update_emp(<%=emp.getEid()%>)"/>
      				</td>
      			</tr>
      			<%
      			     } 
      			%>
      				
      			<!-- 进行翻页处理,这里不能用按钮的形式,而是要用简单超链接的方式,带着所选哟的参数跳转到查询数据的页面, 
      			               其实,原理就是按下超链接,跳转到查询页面调用函数。
      			-->
      			<tr>
      				<td colspan="5">
      					<a href="get_emp.jsp?pageNum=1">首页</a>
      					                |
      					<a href="get_emp.jsp?pageNum=<%=pageNum-1 %>">前一页</a>
      				                 	|
      					<a href="get_emp.jsp?pageNum=<%=pageNum+1 %>">后一页</a>
      				                 	|
      					<a href="get_emp.jsp?pageNum=<%=pageSum%>">尾页</a>
      					<b>当前第:<%= pageNum %> 页,共 <%= pageSum %> 页</b>
      					<input type="button" value="批量删除" id="pl_delete"/>
      					
      				</td>
      			</tr>
      	</table>
      	<%  
      		//用全局对象application来计算访问次数
      		Object obj=application.getAttribute("visit_count");
      	    //当第一次访问,发现没有这个visit_count这个key,那么就会生成这个key,并且对应的value为null。
      	    if(null==obj||""==obj){
      	    	application.setAttribute("visit_count",1);//竟然在java代码中
      	    }
      	    else{
      	    	String visit_count_str = application.getAttribute("visit_count").toString();
      	        int visit_count=Integer.parseInt(visit_count_str);
      	        application.setAttribute("visit_count",visit_count+1);
      	    }
      	%>
      	<h3>当前访问次数: <%= application.getAttribute("visit_count")%>  次</h3>
      </center>
</body>
</html>

​

4.update_emp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="com.java.Dao.*" %>
<%@ page import="com.java.Bean.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>更新Emp</title>
</head>
<body>
<!-- 通过传进来的eid,进行数据库查询,将数据显示到当前页面中(表中) -->
<%
	//获取被传入的eid值
    String eid_str=request.getParameter("eid");
    Integer eid=Integer.parseInt(eid_str);
    //利用查询方法,查询指定的emp
    EmpDao empDao=new EmpDao();
    Emp emp=new Emp();
    emp.setEid(eid);
    Emp get_emp=empDao.get_one_emp(emp);
%>
 	<!-- 用form表单提交数据 -->
 	<center>
    <form action="update_db.jsp">
    	<table >
    		<caption>修改员工信息表</caption>
    		<tr>
    			<td>员工编号</td>
    			<td><input type="text" name="emp_eid" value="<%=get_emp.getEid()%>" readonly="readonly"/></td>
    		<tr>
    		<tr>
    			<td>员工名</td>
    			<td><input type="text" name="emp_ename" value="<%=get_emp.getEname()%>"/></td>
    		<tr>
    		<tr>
    			<td>员工薪资</td>
    			<td><input type="text" name="emp_sal" value="<%=get_emp.getSal()%>"/></td>
    		<tr>
    		<tr>
    			<td>员工主任编号</td>
    			<td><input type="text" name="emp_mgr" value="<%=get_emp.getMgr()%>"/></td>
    		<tr>
    		<tr>
    			<td>员工部门号</td>
    			<td><input type="text" name="emp_did" value="<%=get_emp.getDid()%>"/></td>
    		<tr>
    		<tr>
    			<td colspan=2>
    				<input type="submit" value="修改"/>
    			</td>
    		</tr>
    	</table>
    </form>
    </center>
</body>
</html>

5.update_db页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="com.java.Bean.*" %>
<%@ page import="com.java.Dao.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
   <!-- 获取传进来的emp对象的各种属性 -->
   <%
   		String eid_str=request.getParameter("emp_eid");
   		Integer eid=Integer.parseInt(eid_str);
        String ename_str=request.getParameter("emp_ename");
        String sal_str=request.getParameter("emp_sal");
        Integer sal=Integer.parseInt(sal_str);
        String mgr_str=request.getParameter("emp_mgr");
        String did_str=request.getParameter("emp_did");
        Integer did=Integer.parseInt(did_str);
        //创建一个新的Emp对象,用于封装数据进行传参
        Emp emp=new Emp();
        emp.setEid(eid);
        emp.setEname(ename_str);
        emp.setSal(sal);
        emp.setMgr(mgr_str);
        emp.setDid(did);
        EmpDao empDao=new EmpDao();
        //调用EmpDao中的更新方法
        boolean result=empDao.common_update(emp);
        //根据不同的返回值在显示相应的提示信息
        if(result){
        	//怎么才能直接更新原来的页面呢?
        	//window.opener.location.href=window.opener.location.href。
        	//out.write() 想当前页面输出script代码并运行。
        	out.write("<script>alert('更新成功');window.opener.location.href=window.opener.location.href;window.close();</script>");
        }else{
        	out.write("<script>alert('更新失败');location.href='index.jsp';</script>");
        }
   %>
</body>
</html>

6.delete_emp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="com.java.Dao.*" %>
<%@ page import="com.java.Bean.*" %>>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>删除一个emp</title>
</head>
<body>
       <!-- 调用以写好的删除数据的方法 -->
       <%  
            String eid_str=request.getParameter("eid");
            Integer eid=Integer.parseInt(eid_str);
       		EmpDao empDao=new EmpDao();
       		Emp emp=new Emp();
       		emp.setEid(eid);
            boolean result=empDao.common_delete(emp);
            //删除之后自动在次载入页面
            if(result){
        	   out.write("<script>alert('删除成功');location.href='index.jsp';</script>");
            }
            else{
        	   out.write("<script> alert('删除失败');location.href='index.jsp';</script>");
            }
           
       %>
</body>
</html>

7.pl_delete_emp页面

扫描二维码关注公众号,回复: 3034541 查看本文章
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="com.java.Dao.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>批量删除的jsp</title>
</head>
<body>
	<%
		System.out.println("1111");
		//获取show传来的值
		String pre_delete_arr=request.getParameter("pre_delete_arr");
	    //调用EmpDao中的方法
	    EmpDao empDao=new EmpDao();
	    boolean result=empDao.pl_delete_emp(pre_delete_arr);
	    //判断是否删除成功
	    if(result){
	    	System.out.println("11");
	    	out.write("<script>alert('批量删除成功');location.href='index.jsp';window.close();</script>");
	    }else{
	    	out.write("<script>alert('批量删除失败');location.href='index.jsp';window.close();</script>");
	    }
	%>
</body>
</html>

8.query_one_byAjax页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="com.java.Dao.*" %>
<%@ page import="com.java.Bean.*" %>
<%@ page import="net.sf.json.JSONObject" %>  
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <%
    	//获得所传入的int 值
        int eid=Integer.parseInt(request.getParameter("eid"));
        //用dao中查询一个的方法进行查询
        EmpDao empDao=new EmpDao();
        Emp emp=new Emp();
        emp.setEid(eid);
        Emp emp_result=empDao.get_one_emp(emp);
        //这是一个对象,要将对象类型,变成json数据类型,但是,对象还是对象,只是显示的格式改变了
        //无法将java的对象作为返回值交给ajax	
        System.out.println("java对象格式的emp="+emp_result);
        //将对象格式,转换为json格式
        JSONObject json_emp_result = JSONObject.fromObject(emp_result);
    	System.out.println("转换为json的emp="+json_emp_result);
    	out.write(json_emp_result.toString());
    	
    %>
</body>
</html>

              这个很简单,但是我觉得要是真正的懂了,应该是一个进步(至少crud)!

猜你喜欢

转载自blog.csdn.net/qq_41160264/article/details/81365918
今日推荐