1.数据库环境搭建
- 该案例是EmpProject员工管理系统。使用了两张表
- EMP员工信息表
- EmpManager 管理员表
1.1创建数据库
CREATE DATABASE EMP ;
1.2创建数据表并插入数据
CREATE TABLE emp(
id INT PRIMARY KEY AUTO_INCREMENT ,
name VARCHAR(20) NOT NULL,
salary DOUBLE NOT NULL,
age INT NOT NULL
)CHARSET=UTF8;
INSERT INTO emp(NAME,salary,age)VALUES('tom',2000,18);
INSERT INTO emp(NAME,salary,age)VALUES('marry',3000,19);
INSERT INTO emp(NAME,salary,age)VALUES('jack',4000,20);
CREATE TABLE EmpManager(
username VARCHAR(20) NOT NULL,
password VARCHAR(28) NOT NULL
)CHARSET=UTF8;
INSERT INTO empmanager(username,PASSWORD)VALUES('xiaoming','123456');
2.创建Web项目
- 创建Web项目,导入相关jar包
- commons dbutils-1.7.jar
- druid-1.1.5.jar
- mysql-connector-java-5.1.25-bin.jar
- ValidateCode.jar
3.基础环境搭建
- 项目下创建包目录结构
- com.wlw.emp.entity 实体类
- com.wlw.emp.dao 数据访问层
- com.wlw.emp.daoimpl 数据访问层实现类
- com.wlw.emp.service 业务逻辑层
- com.wlw.emp.service.impl 业务逻辑层实现类
- com.wlw.emp.filter 过滤器
- com.wlw.emp.servlet.controller 调用业务逻辑Servlet
- com.wlw.emp.servlet.jsp 打印显示页面Servlet
- com.wlw.emp.utils 工具类
- database.properties数据库连接及连接池配置文件
4.管理员登录功能
database.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/emp?useUnicode=true&characterEncoding=UTF-8
username=root
password=123456
initialSize=10
maxActive=20
minIdle=5
maxWait=3000
DbUtils
package com.wlw.emp.utils;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class DbUtils {
private static DruidDataSource dataSource;//连接池
private static final ThreadLocal<Connection> ThreadLocal = new ThreadLocal<Connection>();//线程,控制事务,确保一个事务是同一个连接
static {
Properties properties = new Properties();
InputStream is = DbUtils.class.getResourceAsStream("/database.properties");
try {
properties.load(is);
dataSource = (DruidDataSource) DruidDataSourceFactory.createDataSource(properties);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
public static Connection getConnection(){
Connection connection = ThreadLocal.get();
try {
if(connection == null){
connection = dataSource.getConnection();
ThreadLocal.set(connection);
}
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
public static void begin(){
Connection connection = null;
try {
connection = getConnection();
connection.setAutoCommit(false);//设置为手动提交
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void commit(){
Connection connection = null;
try {
connection = getConnection();
connection.commit();
} catch (SQLException e) {
e.printStackTrace();
}finally {
CloseAll(connection,null,null);
}
}
public static void rollback(){
Connection connection = null;
try {
connection = getConnection();
connection.rollback();
} catch (SQLException e) {
e.printStackTrace();
}finally {
CloseAll(connection,null,null);
}
}
public static void CloseAll(Connection connection, Statement statement, ResultSet resultSet){
try {
if(resultSet != null){
resultSet.close();
}
if(statement != null){
statement.close();
}
if(connection != null){
connection.close();
ThreadLocal.remove();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
EmpManager 实体类
package com.wlw.emp.entity;
public class EmpManager {
private String username;
private String password;
public EmpManager() {}
public EmpManager(String username, String password) {
this.username = username;
this.password = password;
}
@Override
public String toString() {
return "EmpManager{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
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;
}
}
EmpManagerDao
package com.wlw.emp.dao;
import com.wlw.emp.entity.EmpManager;
public interface EmpManagerDao {
public EmpManager select(String username);
}
EmpManagerDaoImpl
package com.wlw.emp.dao.impl;
import com.wlw.emp.dao.EmpManagerDao;
import com.wlw.emp.entity.EmpManager;
import com.wlw.emp.utils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import java.sql.SQLException;
public class EmpManagerDaoImpl implements EmpManagerDao {
private QueryRunner queryRunner = new QueryRunner();
@Override
public EmpManager select(String username) {
try {
EmpManager empManager = queryRunner.query(DbUtils.getConnection(), "select * from empmanager where username=?;"
, new BeanHandler<EmpManager>(EmpManager.class), username);
return empManager;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
}
EmpManagerService
package com.wlw.emp.service;
import com.wlw.emp.entity.EmpManager;
public interface EmpManagerService {
public EmpManager login(String username,String password);
}
EmpManagerServiceImpl
package com.wlw.emp.service.impl;
import com.wlw.emp.dao.EmpManagerDao;
import com.wlw.emp.dao.impl.EmpManagerDaoImpl;
import com.wlw.emp.entity.EmpManager;
import com.wlw.emp.service.EmpManagerService;
import com.wlw.emp.utils.DbUtils;
import javax.swing.*;
public class EmpManagerServiceImpl implements EmpManagerService {
private EmpManagerDao empManagerDao = new EmpManagerDaoImpl();
@Override
public EmpManager login(String username, String password) {
EmpManager result = null;
try {
DbUtils.begin(); //开启事务
EmpManager empManager = empManagerDao.select(username);
if( empManager!= null ){//表明有信息
if(empManager.getPassword().equals(password)){//对比密码
result = empManager;
}
}
DbUtils.commit();//提交事务
} catch (Exception e) {
DbUtils.rollback();//回滚事务
e.printStackTrace();
}
return result;
}
}
EmpManagerLoginController
package com.wlw.emp.servlet.controller;
import com.wlw.emp.entity.EmpManager;
import com.wlw.emp.service.EmpManagerService;
import com.wlw.emp.service.impl.EmpManagerServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
@WebServlet(name = "EmpManagerLoginController",value = "/manager/EmpManagerLoginController")
public class EmpManagerLoginController extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.收参
String username = request.getParameter("username");
String password = request.getParameter("password");
String inputVcode = request.getParameter("inputVcode");
//2.校验验证码
String codes = (String)request.getSession().getAttribute("codes");
if(inputVcode != null && inputVcode.equalsIgnoreCase(codes)){//验证码正确
//执行业务逻辑
EmpManagerService empManagerService = new EmpManagerServiceImpl();
EmpManager empManager = empManagerService.login(username, password);
if(empManager != null){//登录成功
//保存登录信息,在session作用域(便于权限验证)
request.getSession().setAttribute("empManager",empManager);
//跳转到查询所有员工的Controller
response.sendRedirect(request.getContextPath()+"/manager/safe/showAllEmpController");
}else {//登录失败,返回登录页面
response.sendRedirect(request.getContextPath()+"/login.html");
}
}else {//验证码错误,返回登录页面
response.sendRedirect(request.getContextPath()+"/login.html");
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
}
CreateCodeController
package com.wlw.emp.servlet.controller;
import com.wlw.emp.entity.EmpManager;
import com.wlw.emp.service.EmpManagerService;
import com.wlw.emp.service.impl.EmpManagerServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
@WebServlet(name = "EmpManagerLoginController",value = "/manager/EmpManagerLoginController")
public class EmpManagerLoginController extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.收参
String username = request.getParameter("username");
String password = request.getParameter("password");
String inputVcode = request.getParameter("inputVcode");
//2.校验验证码
String codes = (String)request.getSession().getAttribute("codes");
if(inputVcode != null && inputVcode.equalsIgnoreCase(codes)){//验证码正确
//执行业务逻辑
EmpManagerService empManagerService = new EmpManagerServiceImpl();
EmpManager empManager = empManagerService.login(username, password);
if(empManager != null){//登录成功
//保存登录信息,在session作用域(便于权限验证)
request.getSession().setAttribute("empManager",empManager);
//跳转到查询所有员工的Controller
response.sendRedirect(request.getContextPath()+"/manager/safe/showAllEmpController");
}else {//登录失败,返回登录页面
response.sendRedirect(request.getContextPath()+"/login.html");
}
}else {//验证码错误,返回登录页面
response.sendRedirect(request.getContextPath()+"/login.html");
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
}
login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>管理员登陆页面</title>
</head>
<body>
<form action="/empproject/manager/EmpManagerLoginController" method="post">
<label>用户名: </label><input type="text" name="username"/> <br/>
<label>密码: </label><input type="password" name="password"/><br/>
<label>验证码: </label><input type="text" name="inputVcode"/><img src="/empproject/createcode" /><br/>
<input type="submit" value="登录"/>
</form>
</body>
</html>
5.查询所有员工功能
Emp
package com.wlw.emp.entity;
public class Emp {
private int id;
private String name;
private double salary;
private int age;
public Emp() {}
public Emp(int id, String name, double salary, int age) {
this.id = id;
this.name = name;
this.salary = salary;
this.age = age;
}
@Override
public String toString() {
return "emp{" +
"id=" + id +
", name='" + name + '\'' +
", salary=" + salary +
", age=" + age +
'}';
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
EmpDao
package com.wlw.emp.dao;
import com.wlw.emp.entity.Emp;
import java.util.List;
public interface EmpDao {
public int insert(Emp emp);
public int update(Emp emp);
public int delete(int id);
public Emp select(int id);
public List<Emp> selectAll();
}
EmpDaoImpl
package com.wlw.emp.dao.impl;
import com.wlw.emp.dao.EmpDao;
import com.wlw.emp.entity.Emp;
import com.wlw.emp.utils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import java.sql.SQLException;
import java.util.List;
public class EmpDaoImpl implements EmpDao {
private QueryRunner queryRunner = new QueryRunner();
@Override
public int insert(Emp emp) {
return 0;
}
@Override
public int update(Emp emp) {
try {
int result = queryRunner.update(DbUtils.getConnection(), "update emp set name=?,salary=?,age=? where id=?;"
, emp.getName(), emp.getSalary(), emp.getAge(), emp.getId());
return result;
} catch (SQLException e) {
e.printStackTrace();
}
return 0;
}
@Override
public int delete(int id) {
try {
int result = queryRunner.update(DbUtils.getConnection(), "delete from emp where id=?;", id);
return result;
} catch (SQLException e) {
e.printStackTrace();
}
return 0;
}
@Override
public Emp select(int id) {
try {
Emp emp = queryRunner.query(DbUtils.getConnection(), "select * from emp where id=?;"
, new BeanHandler<Emp>(Emp.class), id);
return emp;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
@Override
public List<Emp> selectAll() {
try {
List<Emp> emps = queryRunner.query(DbUtils.getConnection(), "select * from emp;"
, new BeanListHandler<Emp>(Emp.class));
return emps;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
}
EmpService
package com.wlw.emp.service;
import com.wlw.emp.entity.Emp;
import java.util.List;
public interface EmpService {
public List<Emp> showAllEmp();
public int removeEmp(int id);
public int modify(Emp emp);
public Emp showEmp(int id);
}
EmpServiceImpl
package com.wlw.emp.service.impl;
import com.sun.jndi.dns.DnsUrl;
import com.wlw.emp.dao.EmpDao;
import com.wlw.emp.dao.impl.EmpDaoImpl;
import com.wlw.emp.entity.Emp;
import com.wlw.emp.service.EmpService;
import com.wlw.emp.utils.DbUtils;
import java.util.ArrayList;
import java.util.List;
public class EmpServiceImpl implements EmpService {
private EmpDao empDao = new EmpDaoImpl();
@Override
public List<Emp> showAllEmp() {
List<Emp> results = new ArrayList<>();
try {
DbUtils.begin(); //开启事务
List<Emp> emps = empDao.selectAll();
if(emps!=null){
results = emps;
}
DbUtils.commit();//提交事务
} catch (Exception e) {
DbUtils.rollback();//回滚事务
e.printStackTrace();
}
return results;
}
@Override
public int removeEmp(int id) {
int result = 0;
try {
DbUtils.begin();
result = empDao.delete(id);
DbUtils.commit();
} catch (Exception e) {
DbUtils.rollback();
e.printStackTrace();
}
return result;
}
@Override
public int modify(Emp emp) {
int result = 0;
try {
DbUtils.begin();
result = empDao.update(emp);
DbUtils.commit();
} catch (Exception e) {
DbUtils.rollback();
e.printStackTrace();
}
return result;
}
@Override
public Emp showEmp(int id) {
Emp emp = null;
try {
DbUtils.begin();
emp = empDao.select(id);
DbUtils.commit();
} catch (Exception e) {
DbUtils.rollback();
e.printStackTrace();
}
return emp;
}
}
CheckFilter权限验证过滤器
package com.wlw.emp.filter;
import com.wlw.emp.entity.Emp;
import com.wlw.emp.entity.EmpManager;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebFilter(value = "/manager/safe/*")
public class CheckFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
//管理员权限验证,是否是在登录状态
//向下转型
HttpServletRequest request = (HttpServletRequest)servletRequest;
HttpServletResponse response = (HttpServletResponse)servletResponse;
EmpManager empManager = (EmpManager)request.getSession().getAttribute("empManager");
if(empManager != null){//已登录
filterChain.doFilter(request,response);
}else {//未登录,跳转登录页面
response.sendRedirect(request.getContextPath()+"/login.html");
}
}
@Override
public void destroy() {}
}
EncodingFilter 字符编码过滤器
package com.wlw.emp.filter;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
@WebFilter(value = "/manager/*")
public class EncodingFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
//处理乱码
servletRequest.setCharacterEncoding("UTF-8");
servletResponse.setContentType("text/html;charset=utf-8");
//放行
filterChain.doFilter(servletRequest,servletResponse);
}
@Override
public void destroy() {}
}
ShowAllEmpController 调用业务逻辑Controller
package com.wlw.emp.servlet.controller;
import com.wlw.emp.entity.Emp;
import com.wlw.emp.service.EmpService;
import com.wlw.emp.service.impl.EmpServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
@WebServlet(name = "ShowAllEmpController",value = "/manager/safe/showAllEmpController")
public class ShowAllEmpController extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//权限验证,放在了过滤器里
//业务逻辑,查询所有
EmpService empService = new EmpServiceImpl();
List<Emp> emps = empService.showAllEmp();
//request域保存,转发跳转到ShowAllEmpJsp
request.setAttribute("emps",emps);
request.getRequestDispatcher("/manager/safe/ShowAllEmpJsp").forward(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
}
ShowAllEmpJsp 显示页面JSP
package com.wlw.emp.servlet.jsp;
import com.wlw.emp.entity.Emp;
import com.wlw.emp.entity.EmpManager;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
@WebServlet(name = "ShowAllEmpJsp",value = "/manager/safe/ShowAllEmpJsp")
public class ShowAllEmpJsp extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
EmpManager empManager = (EmpManager) request.getSession().getAttribute("empManager");
//获得ShowAllEmpController 转发过来的全部员工信息
List<Emp> emps = (List<Emp>)request.getAttribute("emps");
//响应
PrintWriter writer = response.getWriter();
if(emps != null){
writer.println("<html>");
writer.println("<head>");
writer.println("<meta charset='utf-8'>");
writer.println("<title>显示所有员工</title>");
writer.println("</head>");
writer.println("<body>");
writer.println("<h1>欢迎你:"+ empManager.getUsername() +"</h1>");
writer.println("<table border='1'>");
writer.println(" <tr>");
writer.println(" <td>编号</td>");
writer.println(" <td>姓名</td>");
writer.println(" <td>工资</td>");
writer.println(" <td>年龄</td>");
writer.println(" <td colspan='2'>操作</td>");
writer.println(" </tr>");
for (Emp emp : emps){
writer.println(" <tr>");
writer.println(" <td>"+emp.getId()+"</td>");
writer.println(" <td>"+emp.getName()+"</td>");
writer.println(" <td>"+emp.getSalary()+"</td>");
writer.println(" <td>"+emp.getAge()+"</td>");
writer.println(" <td> <a href='"+request.getContextPath()+"/manager/safe/removeEmpController?id="+emp.getId()+"'>删除</a> </td>");
writer.println(" <td> <a href='"+request.getContextPath()+"/manager/safe/showEmpController?id="+emp.getId()+"'>修改</a> </td>");
writer.println(" </tr>");
}
writer.println("</table>");
writer.println("</body>");
writer.println("</html>");
}else {
writer.println("<html>");
writer.println("<head>");
writer.println("<meta charset='utf-8'>");
writer.println("<title>显示所有员工</title>");
writer.println("</head>");
writer.println("<body>");
writer.println("<h1>当前没有员工</h1>");
writer.println("</body>");
writer.println("</html>");
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
}
6.删除员工功能
RemoveEmpController 删除员工Controller
package com.wlw.emp.servlet.controller;
import com.wlw.emp.service.EmpService;
import com.wlw.emp.service.impl.EmpServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(name = "RemoveEmpController",value = "/manager/safe/removeEmpController")
public class RemoveEmpController extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Integer id = Integer.valueOf(request.getParameter("id"));//获得id
EmpService empService = new EmpServiceImpl();
empService.removeEmp(id);//执行删除
//跳转到ShowAllEmpController 进行重新显示
response.sendRedirect(request.getContextPath()+"/manager/safe/showAllEmpController");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
}
7.修改员工功能
7.1 ShowEmpController 查询单个员工Controller
package com.wlw.emp.servlet.controller;
import com.wlw.emp.entity.Emp;
import com.wlw.emp.service.EmpService;
import com.wlw.emp.service.impl.EmpServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(name = "ShowEmpController",value = "/manager/safe/showEmpController")
public class ShowEmpController extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Integer id = Integer.valueOf(request.getParameter("id"));//收参
EmpService empService = new EmpServiceImpl();
Emp emp = empService.showEmp(id);//执行单个查询
request.setAttribute("emp",emp);//将要修改的员工信息 存入request域中,在修改页面做展示
request.getRequestDispatcher("/manager/safe/showUpdateEmpInfoJSP").forward(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
}
7.2 ShowUpdateEmpInfoJSP 显示修改页面JSP
package com.wlw.emp.servlet.jsp;
import com.wlw.emp.entity.Emp;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(name = "ShowUpdateEmpController",value = "/manager/safe/showUpdateEmpInfoJSP")
public class ShowUpdateEmpInfoJSP extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取要修改的员工对象
Emp emp = (Emp) request.getAttribute("emp");
//展示
PrintWriter writer = response.getWriter();
writer.println("<html>");
writer.println("<head>");
writer.println(" <meta charset='utf-8'>");
writer.println(" <title>修改员工信息页面</title>");
writer.println("</head>");
writer.println("<body>");
writer.println(" <form action='"+request.getContextPath()+"/manager/safe/updateEmpController' method='post'>");
writer.println(" 编号:<input type='text' name='id' value='"+emp.getId()+"' readonly/><br/>");
writer.println(" 姓名:<input type='text' name='name' value='"+emp.getName()+"' /><br/>");
writer.println(" 工资:<input type='text' name='salary' value='"+emp.getSalary()+"' /><br/>");
writer.println(" 年龄:<input type='text' name='age' value='"+emp.getAge()+"' /><br/>");
writer.println(" <input type='submit' value='修改' /><br/>");
writer.println(" </form>");
writer.println("</body>");
writer.println("</html>");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
}
7.3修改员工信息Controller
package com.wlw.emp.servlet.controller;
import com.wlw.emp.entity.Emp;
import com.wlw.emp.service.EmpService;
import com.wlw.emp.service.impl.EmpServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(name = "UpdateEmpController",value = "/manager/safe/updateEmpController")
public class UpdateEmpController extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//收参
Integer id = Integer.valueOf(request.getParameter("id"));
String name = request.getParameter("name");
Double salary = Double.valueOf(request.getParameter("salary"));
Integer age = Integer.valueOf(request.getParameter("age"));
Emp emp = new Emp(id,name,salary,age);
EmpService empService = new EmpServiceImpl();
empService.modify(emp);//执行修改
//修改后,跳转到ShowAllEmpController 进行重新展示
response.sendRedirect(request.getContextPath()+"/manager/safe/showAllEmpController");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
}
8.总结
-
转发数据时, request.getRequestDispatcher(“目标URL-pattern”).forward(request,response); 注意参数(“目标URL-pattern”),前面不能加 request.getContextpath() ,例如本案例中的 request.getRequestDispatcher("/manager/safe/ShowAllEmpJsp").forward(request,response);
-
重定向时,response.sendRedirect(“目标 URI”); 路径可以加上 request.getContextpath(),例如本案例中的response.sendRedirect(request.getContextPath()+"/manager/safe/showAllEmpController");
-
html页面中的form表单提交action=“ ”,
里面可以写目标资源的全路径,如:< form action="/empproject/manager/EmpManagerLoginController" method=“post”>
也可以写< form action=“manager/EmpManagerLoginController” method=“post”>
(要访问的目标资源的配置是,@WebServlet(name = “EmpManagerLoginController”,value = “/manager/EmpManagerLoginController”))