什么是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);
}
}