0731-0801 servlet Emp

什么是Servlet?
   部署在web容器(tomcat)中运行的java程序,用来处理客户端请求

第一个Servlet程序,打印Hello World

Servlet的运行过程
  
web.xml的配置
 
Servlet的生命周期


使用Servlet重构员工管理系统
    jsp标签 + el表达式

   jsp标签(本质还是java代码,替换原来页面的if语句,循环语句)
   如何使用标签?
       引入两个jar包,放置在WEB-INF/lib
       在页面引入taglib指令
      <%@taglib uri="http://java.sun.com/jsp/jstl/core"  prefix="c" %>    
      forEach标签
            <c:forEach  items="${es}"  var="e">
            </c:forEach>
      EL表达式取作用域中存放的数据


过滤器
        部署在web容器(tomcat)中运行的java程序,用来拦截发向Servlet的请求
        并且检查请求信息,如果合法,就将请求放过,留给后续的Servlet处理
        如果不合法,请求就会被终止,不会发给后续的Servlet
 

    验证登录

验证码插件的使用

package com.hj.bean;

public class Emp {
	//与数据表结构一致
    private Integer empno;
    private String ename;
    private String sex;
    private Integer age;
    private Float sal;
    private Integer deptno;
	public Emp() {
		super();
		// TODO Auto-generated constructor stub
	}
   
	public Emp(Integer empno, String ename, String sex, Integer age, Float sal, Integer deptno) {
		super();
		this.empno = empno;
		this.ename = ename;
		this.sex = sex;
		this.age = age;
		this.sal = sal;
		this.deptno = deptno;
	}

	
	public Emp(String ename, String sex, Integer age, Float sal, Integer deptno) {
		super();
		this.ename = ename;
		this.sex = sex;
		this.age = age;
		this.sal = sal;
		this.deptno = deptno;
	}

	public Integer getEmpno() {
		return empno;
	}

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

	public String getEname() {
		return ename;
	}

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

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	public Integer getAge() {
		return age;
	}

	public void setAge(Integer age) {
		this.age = age;
	}

	public Float getSal() {
		return sal;
	}

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

	public Integer getDeptno() {
		return deptno;
	}

	public void setDeptno(Integer deptno) {
		this.deptno = deptno;
	}

	
   @Override
   public String toString() {
	return empno+"\t"+ename+"\t"+sex+"\t"+age+"\t"+sal+"\t"+deptno;
   }
    
}
package com.hj.bean;

import java.sql.Date;

//`uid` int primary key  NOT NULL,
//`username` varchar(20) DEFAULT NULL,
//`password` varchar(20) DEFAULT NULL,
//`name` varchar(20) DEFAULT NULL,
//`email` varchar(30) DEFAULT NULL,
//`telephone` varchar(20) DEFAULT NULL,
//`birthday` date DEFAULT NULL,
//`sex` varchar(10) DEFAULT NULL,
public class User {
	private Integer uid;
	private String username;
	private String password;
	private String name;
	private String email;
	private String telephone;
	private Date birthday;
	private String sex;

	public User() {
		super();
	}

	public User(Integer uid, String username, String password, String name, String email, String telephone,
			Date birthday, String sex) {
		super();
		this.uid = uid;
		this.username = username;
		this.password = password;
		this.name = name;
		this.email = email;
		this.telephone = telephone;
		this.birthday = birthday;
		this.sex = sex;
	}

	public Integer getUid() {
		return uid;
	}

	public void setUid(Integer uid) {
		this.uid = uid;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getTelephone() {
		return telephone;
	}

	public void setTelephone(String telephone) {
		this.telephone = telephone;
	}

	public Date getBirthday() {
		return birthday;
	}

	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

}
package com.hj.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.hj.bean.Emp;
import com.hj.utils.DBUtils;

public class EmpDao {
   //封装基础业务逻辑
	//增
	public int save(Emp emp) throws SQLException{
		  //声明2个核心接口
		   Connection conn = null;
		   PreparedStatement prep = null;
		   String sql = "insert into emp values(?,?,?,?,?)";
		   try {
			   //获得连接对象
			conn = DBUtils.getConnection();
			  //获得预编译对象
		     prep = conn.prepareStatement(sql);
			 //设置参数
			 prep.setString(1,emp.getEname());
			 prep.setString(2, emp.getSex());
			 prep.setInt(3, emp.getAge());
			 prep.setFloat(4, emp.getSal());
			 prep.setInt(5, emp.getDeptno());
			 //prep.setDate(x, dd);
			 //发送预编译文件,执行sql
			 return prep.executeUpdate();		 
		} catch (SQLException e) {
			e.printStackTrace();
			throw e;
		}finally{
			  //关闭资源
			  DBUtils.closeAll(null, prep, conn);
		}
	}
	//删,依据主键删除
	public int delete(int empno) throws SQLException{
		  //声明2个核心接口
		   Connection conn = null;
		   PreparedStatement prep = null;
		   String sql = "delete from emp where empno=?";
		   try {
			   //获得连接对象
			conn = DBUtils.getConnection();
			  //获得预编译对象
		     prep = conn.prepareStatement(sql);
			 //设置参数
			 prep.setInt(1,empno);
			 //发送预编译文件,执行sql
			 return prep.executeUpdate();		 
		} catch (SQLException e) {
			e.printStackTrace();
			throw e;
		}finally{
			  //关闭资源
			  DBUtils.closeAll(null, prep, conn);
		}
	}
	//改
	//只能修改数据库存在的记录
	//修改的前提是查询
	//修改应该能够修改除主键以外所有的字段
	//应该依据主键去修改
	//参数emp对象是数据库存在的记录,所以它是查询方法
	//查询出来的
	public int modify(Emp emp) throws SQLException{
		  //声明2个核心接口
		  Connection conn = null;
		  PreparedStatement prep = null;
		  //sql
		  String sql = "update emp set ename=?,sex=?,age=?,sal=?,deptno=? where empno=?";
		  try {
			//获得连接对象
			  conn = DBUtils.getConnection();
			//获得预编译对象
			  prep = conn.prepareStatement(sql);
			  //设置参数
			  prep.setString(1, emp.getEname());
			  prep.setString(2, emp.getSex());
			  prep.setInt(3, emp.getAge());
			  prep.setFloat(4, emp.getSal());
			  prep.setInt(5, emp.getDeptno());
			  prep.setInt(6, emp.getEmpno());
			  //发送预编译文件,执行sql
			  return prep.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
			throw e;
		}finally{
			 //关闭资源
			DBUtils.closeAll(null, prep, conn);
		}
	}
	
	//查(最复杂)
	//只查询一条记录,依据员工编号查询
	public Emp queryForId(int empno) throws SQLException{
		  //声明3个核心接口
		 Connection conn = null;
		 PreparedStatement prep = null;
		 ResultSet rs = null;
		 Emp emp = null;
		 //sql
		 String sql = "select * from emp where empno=?";
		 try {
			//获得连接对象
			 conn = DBUtils.getConnection();
			//获得预编译对象
			 prep = conn.prepareStatement(sql);
			 //设置参数
			 prep.setInt(1,empno);
			 //发送预编译文件,执行sql
			 //获得结果集对象
			 rs = prep.executeQuery();
			 //遍历结果集,用结果集中的数据
			 //封装对象
			 while(rs.next()){
				  emp = new Emp();
				  emp.setEmpno(rs.getInt("empno"));
				  emp.setEname(rs.getString("ename"));
				  emp.setSex(rs.getString("sex"));
				  emp.setAge(rs.getInt("age"));
				  emp.setSal(rs.getFloat("sal"));
				  emp.setDeptno(rs.getInt("deptno"));
			 }
			 return emp;
		} catch (SQLException e) {
			e.printStackTrace();
			throw e;
		}finally{
			   //关闭资源
			DBUtils.closeAll(rs, prep, conn);
		}
	}
	//查询所有的记录
	public List<Emp> queryAll() throws SQLException{
		  //声明3个核心接口
		 Connection conn = null;
		 PreparedStatement prep = null;
		 ResultSet rs = null;
		 List<Emp> emps = null;
		 //sql
		 String sql = "select * from emp";
		 try {
			//获得连接对象
			 conn = DBUtils.getConnection();
			//获得预编译对象
			 prep = conn.prepareStatement(sql);
			 //发送预编译文件,执行sql
			 //获得结果集对象
			 rs = prep.executeQuery();
			 //遍历结果集,用结果集中的数据
			 //封装对象
			 while(rs.next()){
				  if(emps==null){
					  //循环第一次,实例化集合对象
					  emps = new ArrayList<Emp>();
				  }
				  //实例化一个员工对象
				  Emp emp = new Emp();
				  emp.setEmpno(rs.getInt("empno"));
				  emp.setEname(rs.getString("ename"));
				  emp.setSex(rs.getString("sex"));
				  emp.setAge(rs.getInt("age"));
				  emp.setSal(rs.getFloat("sal"));
				  emp.setDeptno(rs.getInt("deptno"));
				  emps.add(emp);
			 }
			 return emps;
		} catch (SQLException e) {
			e.printStackTrace();
			throw e;
		}finally{
			   //关闭资源
			DBUtils.closeAll(rs, prep, conn);
		}
	}
}
package com.hj.dao;

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

import com.hj.bean.User;
import com.hj.utils.DBUtils;

public class UserDao {
    
	  public User queryUserByNameAndPwd(String username,String password) throws SQLException{
		    //声明三个核心接口
		   Connection conn = null;
		   PreparedStatement prep = null;
		   ResultSet rs = null;
		   //sql
		   String sql = "select * from [user] where username=? and password=?";
		   User user = null;
		   
		   try {
				//获得连接
				conn = DBUtils.getConnection();
				//获得预编译对象
				prep = conn.prepareStatement(sql);
				//设置参数
				prep.setString(1, username);
				prep.setString(2, password);
				//发送预编译文件,执行sql
				//获得结果集
				rs = prep.executeQuery();
				//遍历结果集,用结果中的数据封装User对象
				while(rs.next()){
					  user = new User();
					  user.setUid(rs.getInt("uid"));
					  user.setUsername(rs.getString("username"));
					  user.setName(rs.getString("name"));
					  user.setSex(rs.getString("sex"));
					  user.setPassword(rs.getString("password"));
					  user.setEmail(rs.getString("email"));
					  user.setTelephone(rs.getString("telephone"));
					  user.setBirthday(rs.getDate("birthday"));
				}
				return user;
			} catch (SQLException e) {
				e.printStackTrace();
				throw e;
			}finally{
				  //关闭资源
				DBUtils.closeAll(rs, prep, conn);
			}
		   
	  }
}
package com.hj.utils;

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

public class DBUtils {
    //jdbc的四个重要参数作为工具类的常量
	//驱动字符串
	public static final String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
	//连接字符串
	public static final String URL = "jdbc:sqlserver://localhost:1433;dataBaseName=db01";
	//用户名
	public static final String USER = "sa";
	//密码
	public static final String PASSWORD = "123";
	
	//在静态块中加载驱动类
	//在类加载的时候,执行的代码
	static{
		try {
			Class.forName(DRIVER);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
	
	//获得连接对象的方法
	public static Connection getConnection() throws SQLException {
		 return DriverManager.getConnection(URL, USER, PASSWORD);
	}
	
	//关闭资源的方法
	public static void closeAll(ResultSet rs, PreparedStatement prep,Connection conn) throws SQLException{
		    try {
				if(rs!=null){
					  rs.close();
				}
				if(prep!=null){
					 prep.close();
				}
				if(conn!=null){
					 conn.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
				throw e;//将异常信息继续往上抛,通知调用者
			}
		    
		    
	}
	//测试
	 public static void main(String[] args) throws SQLException {
		     Connection conn = getConnection();
		     System.out.println(conn);
	}
}

web(XML)

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>web02</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <filter>
    <filter-name>LoginFilter</filter-name>
    <filter-class>com.hj.filter.LoginFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>LoginFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <servlet>
    <description></description>
    <display-name>LoginServlet</display-name>
    <servlet-name>LoginServlet</servlet-name>
    <servlet-class>com.hj.web.LoginServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>LoginServlet</servlet-name>
    <url-pattern>/Login</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>ListEmpServlet</display-name>
    <servlet-name>ListEmpServlet</servlet-name>
    <servlet-class>com.hj.web.ListEmpServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>ListEmpServlet</servlet-name>
    <url-pattern>/List</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>DeleteServlet</display-name>
    <servlet-name>DeleteServlet</servlet-name>
    <servlet-class>com.hj.web.DeleteServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>DeleteServlet</servlet-name>
    <url-pattern>/Delete</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>AddServlet</display-name>
    <servlet-name>AddServlet</servlet-name>
    <servlet-class>com.hj.web.AddServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>AddServlet</servlet-name>
    <url-pattern>/Add</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>ToModifyServlet</display-name>
    <servlet-name>ToModifyServlet</servlet-name>
    <servlet-class>com.hj.web.ToModifyServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>ToModifyServlet</servlet-name>
    <url-pattern>/ToModify</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>ModifyServlet</display-name>
    <servlet-name>ModifyServlet</servlet-name>
    <servlet-class>com.hj.web.ModifyServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>ModifyServlet</servlet-name>
    <url-pattern>/Modify</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>LogoutServlet</display-name>
    <servlet-name>LogoutServlet</servlet-name>
    <servlet-class>com.hj.web.LogoutServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>LogoutServlet</servlet-name>
    <url-pattern>/Logout</url-pattern>
  </servlet-mapping>
</web-app>

LoginFilter.java   (用class创建)--限制只有登录才能进行操作

package com.hj.filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class LoginFilter implements Filter {

	@Override
	public void destroy() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
			throws IOException, ServletException {
		HttpServletRequest request = (HttpServletRequest)arg0;
		HttpServletResponse response = (HttpServletResponse)arg1;
		String uri = request.getRequestURI();
		//检查登录
		 //查看Session中有没有user对象
		  Object user = request.getSession().getAttribute("user");
		  if(user!=null || uri.indexOf("Login")!=-1){
			   //用户已经登录或者与登录相关的请求--把请求放过去
			  arg2.doFilter(request, response);
		  }else{
			  //用户没有登录--拦截住请求
			  //转发回Login.jsp
			  //绑定错误消息
			  request.setAttribute("error_msg", "请先登录");
			  request.getRequestDispatcher("Login.jsp").forward(request, response);			  
		  }
	}

	@Override
	public void init(FilterConfig arg0) throws ServletException {
		// TODO Auto-generated method stub
		
	}

}

LogoutServlet.java

package com.hj.web;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class LogoutServlet
 */
public class LogoutServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public LogoutServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            //将session中的user对象删除
		    request.getSession().removeAttribute("user");
		    //转发回登录页面
		    request.getRequestDispatcher("Login.jsp").forward(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}

Login.jsp

<%@ 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>Insert title here</title>
</head>
<body>

    <h3 style='color:red'>${error_msg}</h3>
     <form action="Login"  method="post">
        用户:<input name="username"/> <br/>
        密码:<input type="password"  name="password"/> <br/>
        <input type="submit"  value="登录"/>
     </form>
</body>
</html>

LoginServlet.java-----Login

package com.hj.web;

import java.io.IOException;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.hj.bean.User;
import com.hj.dao.UserDao;

/**
 * Servlet implementation class LoginServlet
 */
public class LoginServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public LoginServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		 //设置解码方式
        request.setCharacterEncoding("UTF-8");
      //获得Login.jsp传来的参数
      String username  = request.getParameter("username");
      String password = request.getParameter("password");
      //创建Dao对象
       UserDao dao = new UserDao();
       User user = null;       
	  try {
		user = dao.queryUserByNameAndPwd(username, password);
	}catch (SQLException e) {
		e.printStackTrace();
	}
      
      //out.print(username+","+password);
      //判断用户名和密码是否正确
      if(user!=null){
   	   //out.print("登录成功");
   	   //跳转到主页面 Main.jsp
   	    //转发--将请求转交给另外一个jsp页面
   	    //绑定用户名
   	    //request.setAttribute("username",username);
    	//在Servlet中获得session对象
    	  HttpSession session = request.getSession();    	  
   	      session.setAttribute("user", user);
   	     // request.setAttribute("user", user); --错误
   	     //request.getRequestDispatcher("Main.jsp").forward(request, response);    	  
   	     //使用重定向
   	     response.sendRedirect("List");
      }else{
   	   //out.print("用户名或密码错误");
   	   //绑定错误消息
   	   request.setAttribute("error_msg", "用户名或密码错误");   	   
   	   //转发回Login.jsp
   	   request.getRequestDispatcher("Login.jsp").forward(request, response);  
      }
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

ListEmpServlet.java----List

package com.hj.web;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.hj.bean.Emp;
import com.hj.dao.EmpDao;

/**
 * Servlet implementation class ListEmpServlet
 */
public class ListEmpServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ListEmpServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	          EmpDao dao = new EmpDao();
	          //查询出所有10条记录
	          try {
				List<Emp> es =  dao.queryAll();
				//将es放到作用域中
				request.setAttribute("es", es);
				//转发到ListEmp.jsp
				request.getRequestDispatcher("ListEmp.jsp").forward(request, response);
			} catch (SQLException e) {
				e.printStackTrace();
			}   
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//PrintWriter out = response.getWriter();
		doGet(request, response);
	}

}

ListEmp.jsp

<%@page import="com.hj.bean.User"%>
<%@page import="com.hj.bean.Emp"%>
<%@page import="java.util.List"%>
<%@page import="com.hj.dao.EmpDao"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core"  prefix="c" %>    
    
<!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>
<style type="text/css">
     table{
        width:600px;
        border:3px solid #ccc;
        border-collapse: collapse;
        margin:auto;
     }
     
     table th,table td{
          border:1px solid #ccc;
          
     }
     
     h3,p{
       text-align: center;
     }
     
     #welcome{
          text-align: right
     }
     
     
</style>
</head>
<body>
       <p id='welcome'>
       欢迎,${user.username} 
        <a href='Logout'>退出登录</a>
       </p>
        <h3>员工管理系统</h3>
      <table>
           <tr>
              <th>编号</th>
              <th>姓名</th>
              <th>性别</th>
              <th>年龄</th>
              <th>薪资</th>
              <th>部门</th>
              <th>操作</th>
           </tr>
          <c:forEach  items="${es}"  var="e">
              <tr>
              <td>${e.empno}</td>
              <td>${e.ename}</td>
              <td>${e.sex}</td>
              <td>${e.age}</td> 
              <td>${e.sal}</td>
              <td>${e.deptno}</td>
              <td>
                  <a href="Delete?empno=${e.empno}">删除</a>
                  <a href="ToModify?empno=${e.empno}">修改</a>
              </td>
           </tr>
          </c:forEach>
      </table>
     <p>
        <a href="ToAdd.jsp">添加员工</a>
     </p>
</body>
</html>

DeleteServlet.java------Delete

package com.hj.web;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.hj.dao.EmpDao;

/**
 * Servlet implementation class DeleteServlet
 */
public class DeleteServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public DeleteServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//request.setCharacterEncoding("UTF-8");
        //获得参数,要删除的员工的empno
        Integer empno = Integer.parseInt(request.getParameter("empno"));
        //创建Dao
        EmpDao dao = new EmpDao();
        //方法中的变量称为局部变量
        //局部变量先声明,再初始化,后使用
        int num = 0;
		try {
			num = dao.delete(empno);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
        if(num==1){
       	   //删除成功--重定向回ListEmp.jsp-->List
       	   response.sendRedirect("List");
       	   return;//后面的代码都不执行
        }
        //PrintWriter out = response.getWriter();
        response.getWriter().print("<h2>系统繁忙,请稍后再试</h2>");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

ToModifyServlet.java----ToModify

package com.hj.web;

import java.io.IOException;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.hj.bean.Emp;
import com.hj.dao.EmpDao;

/**
 * Servlet implementation class ToModifyServlet
 */
public class ToModifyServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ToModifyServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//获得参数empno
        Integer empno = Integer.parseInt(request.getParameter("empno"));
       //创建Dao
       EmpDao dao = new EmpDao();
       Emp e = null;
	try {
		e = dao.queryForId(empno);
	} catch (SQLException e1) {
		e1.printStackTrace();
	}
       request.setAttribute("e", e);
       request.getRequestDispatcher("ToUpdate.jsp").forward(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

ToUpdate.jsp

<%@page import="com.hj.bean.Emp"%>
<%@page import="com.hj.dao.EmpDao"%>
<%@ 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>Insert title here</title>
<style type="text/css">
    form{
       width: 210px;
       margin: auto;
   }
   
    p{
       text-align: center;
    }
    
      
</style>
</head>
<body>
        <p>修改员工</p>
      <form action="Modify"  method="POST">  <!-- action='update' -->
         <!-- 隐藏域 -->
           <input type="hidden"  name="empno"  value="${e.empno }"/>
          姓名:<input name="ename"  value="${e.ename }"/> <br/> 
          性别:<input name="sex"  value="${e.sex }"/> <br/>
          年龄:<input name="age"  value="${e.age }"/> <br/>
          薪资:<input name="sal"  value="${e.sal }"/> <br/>
          部门:<input name="deptno"  value="${e.deptno }"/> <br/>
          <input type="submit" value="修改"/>
      </form>
</body>
</html>

ModifyServlet.java-----Modify

package com.hj.web;

import java.io.IOException;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.hj.bean.Emp;
import com.hj.dao.EmpDao;

/**
 * Servlet implementation class ModifyServlet
 */
public class ModifyServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ModifyServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//设置解码方式
	    request.setCharacterEncoding("UTF-8");
	    //获取参数
	String ename = request.getParameter("ename");
	String sex = request.getParameter("sex");
	Integer age = Integer.parseInt(request.getParameter("age"));
	Float sal = Float.parseFloat(request.getParameter("sal"));  
	Integer deptno = Integer.parseInt(request.getParameter("deptno"));
	Integer empno = Integer.parseInt(request.getParameter("empno"));
	    Emp e = new Emp(empno,ename,sex,age,sal,deptno);
	    //创建Dao
	     EmpDao dao = new EmpDao();
	     int num = 0;
		try {
			num = dao.modify(e);
		} catch (SQLException e1) {
			e1.printStackTrace();
		}
	     if(num==1){
	    	   //更新成功--重定向回ListEmp.jsp--->List
	    	   response.sendRedirect("List");
	    	   return;//后面的代码不执行
	     }
	    response.getWriter().print("<h2>系统繁忙,请稍后再试</h2>");   
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

ToAdd.jsp

<%@ 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>Insert title here</title>
<style type="text/css">
    form{
       width: 210px;
       margin: auto;
   }
   
    p{
       text-align: center;
    }
    
      
</style>
</head>
<body>
      <p>添加员工</p>
      <form action="Add"  method="POST">
          姓名:<input name="ename"/> <br/>
          性别:<input name="sex"/> <br/>
          年龄:<input name="age"/> <br/>
          薪资:<input name="sal"/> <br/>
          部门:<input name="deptno"/> <br/>
          <input type="submit" value="添加"/>
      </form>

</body>
</html>

AddServlet.class----Add

package com.hj.web;

import java.io.IOException;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.hj.bean.Emp;
import com.hj.dao.EmpDao;

/**
 * Servlet implementation class AddServlet
 */
public class AddServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public AddServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//设置解码方式
		request.setCharacterEncoding("UTF-8");
		//获得参数
		String ename = request.getParameter("ename");
		String sex = request.getParameter("sex");
		Integer age = Integer.parseInt(request.getParameter("age"));
		Float sal = Float.parseFloat(request.getParameter("sal"));
		Integer deptno = Integer.parseInt(request.getParameter("deptno"));
		    //创建一个员工对象
		    Emp e = new Emp(ename,sex,age,sal,deptno);
		     //创建Dao对象
		    EmpDao dao = new EmpDao();
		     int num = 0;
			try {
				num = dao.save(e);
			} catch (SQLException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		     if(num==1){
		    	   //添加成功---重定向回ListEmp.jsp
		    	   response.sendRedirect("List");
		    	   return ;//后面的代码都不执行
		     }
		     response.getWriter().print("<h2>系统繁忙,请稍后再试</h2>");     
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

猜你喜欢

转载自blog.csdn.net/Fern2018/article/details/81367975
今日推荐