• 产品管理系统(MVC设计模式)——第一个Javaee项目


    前言:

    使用MVC设计模式,完成产品管理系统,实现用户管理模块和产品管理模块。要求完成用户登录功能;产品信息添加、产品信息浏览。完成公共模块以及用户管理模块。

    🍑作者:小赛毛

    💕文章初次日期:2022/5/28

    目录

    前言:

    步骤:

    (1)建立模型层

    创建数据模型,创建User、Product类

    创建功能模型,创建Dao

    (2)建立视图层

    登录页面

    添加产品页面

    显示产品列表页面

    (3)建立控制层

    处理用户管理业务流程

    处理产品管理业务流程


     项目下载链接🔗:

    产品管理系统项目下载icon-default.png?t=M4ADhttps://download.csdn.net/download/m0_58232983/85486133


    步骤:

    (1)建立模型层

    创建数据模型,创建User、Product类;

    product.java

    1. package com.lx.entity;
    2. public class Product {
    3. private int pid;
    4. private String pname;
    5. private float pprice;
    6. public int getPid() {
    7. return pid;
    8. }
    9. public void setPid(int pid) {
    10. this.pid = pid;
    11. }
    12. public String getPname() {
    13. return pname;
    14. }
    15. public void setPname(String pname) {
    16. this.pname=pname;
    17. }
    18. public float getPprice() {
    19. return pprice;
    20. }
    21. public void setPprice(float pprice) {
    22. this.pprice= pprice;
    23. }
    24. public Product(int pid,String pname,float pprice) {
    25. super();
    26. this.pid=pid;
    27. this.pname=pname;
    28. this.pprice=pprice;
    29. }
    30. public Product() {
    31. // TODO Auto-generated constructor stub
    32. }
    33. }

    user.java

    1. package com.lx.entity;
    2. public class User {
    3. private String userName;
    4. private String userPass;
    5. public String getUserName () {
    6. return userName;
    7. }
    8. public void setUserName (String userName) {
    9. this.userName = userName;
    10. }
    11. public String getUserPass() {
    12. return userPass;
    13. }
    14. public void setUserPass(String userName) {
    15. this.userPass = userPass;
    16. }
    17. }

    创建功能模型,创建Dao。

    ProductDao

    1. package com.lx.dao;
    2. import java.util.List;
    3. import com.lx.entity.Product;
    4. public interface ProductDao{
    5. public List<Product> getList();
    6. public int addProduct(Product p);
    7. }

    ProductDaoImpl

    1. package com.lx.dao;
    2. import java.sql.Connection;
    3. import java.sql.PreparedStatement;
    4. import java.sql.ResultSet;
    5. import java.sql.SQLException;
    6. import java.util.ArrayList;
    7. import java.util.List;
    8. import com.lx.entity.Product;
    9. import com.lx.entity.User;
    10. import com.lx.util.BasicJDBC;
    11. public class ProductDaoImpl implements ProductDao{
    12. private BasicJDBC db=null;
    13. private Connection con=null;
    14. public ProductDaoImpl(){
    15. db=new BasicJDBC();
    16. con=db.getCon();
    17. }
    18. @Override
    19. public int addProduct(Product p) {
    20. PreparedStatement ps=null;
    21. String sql="insert into product(pname,pprice) values(?,?)";
    22. int n = 0;
    23. try {
    24. ps=con.prepareStatement(sql);
    25. ps.setString(1, p.getPname());
    26. ps.setFloat(2, p.getPprice());
    27. n=ps.executeUpdate();
    28. System.out.println(n);
    29. }catch (SQLException e) {
    30. e.printStackTrace();
    31. }finally {
    32. db.closeAll(con,ps,null);
    33. }
    34. return n;
    35. }
    36. @Override
    37. public List<Product> getList() {
    38. PreparedStatement ps=null;
    39. String sql="select*from product";
    40. ResultSet rs=null;
    41. List<Product> list=new ArrayList<Product> ();
    42. try{
    43. ps=con.prepareStatement(sql);
    44. rs=ps.executeQuery();
    45. while (rs.next()) {
    46. //将数据库中的一行记录封装成一个产品对象
    47. Product p=new Product(rs.getInt(1), rs.getString(2), rs.getFloat(3));
    48. //将产品对象添加到list中
    49. list.add(p);
    50. }
    51. }catch (SQLException e) {
    52. e.printStackTrace();
    53. }finally {
    54. db.closeAll(con,ps,rs);
    55. }
    56. return list;
    57. }
    58. }

    UserDao

    1. package com.lx.dao;
    2. public interface UserDao {
    3. //验证登录
    4. public boolean valiLogin(String name, String pwd) throws Exception;
    5. }

    UserDaoImpl

    1. package com.lx.dao;
    2. import java.sql.Connection;
    3. import java.sql.PreparedStatement;
    4. import java.sql.ResultSet;
    5. import java.sql.SQLException;
    6. import com.lx.util.BasicJDBC;
    7. import com.lx.dao.UserDao;
    8. //将所有要实现的功能全部封装到本类中
    9. public class UserDaoImpl implements UserDao {
    10. /**
    11. * 本方法实现验证登录
    12. * @param name 要验证的用户名
    13. * @param pw 要验证的密码
    14. * @return boolean true 表示成功,false 表示失败
    15. */
    16. private BasicJDBC db=null;
    17. private Connection con=null;
    18. public UserDaoImpl(){
    19. db = new BasicJDBC();
    20. con=db.getCon();
    21. }
    22. public boolean valiLogin(String name,String password) throws Exception
    23. {
    24. boolean flag=false;
    25. PreparedStatement ps=null;
    26. ResultSet rs=null;
    27. String sql="select*from user where name=? and password = ?";
    28. try {
    29. ps=con.prepareStatement(sql);
    30. //填充好所有的?
    31. ps.setString(1,name);
    32. ps.setString(2,password);
    33. //值天冲完毕后,要执行的 sql 命令就完整了,这时才能执行
    34. rs=ps.executeQuery();
    35. //判断结果集,并验证登录
    36. if(rs.next()) flag=true;
    37. }catch (SQLException e) {
    38. //TODO Auto-generated catch block
    39. e.printStackTrace();
    40. }finally {
    41. db.closeAll(con,ps,null);
    42. }
    43. return flag;
    44. }
    45. }

    (2)建立视图层

    登录页面;

    login.jsp (受篇幅影响,代码这里放在项目链接)

    添加产品页面;

    addproduct.jsp

    显示产品列表页面。

    listproduct.jsp

    (3)建立控制层

    处理用户管理业务流程;

    loginServlet.java

    1. package com.lx.servlet;
    2. import java.io.IOException;
    3. import java.io.PrintWriter;
    4. import javax.servlet.ServletException;
    5. import javax.servlet.http.HttpServlet;
    6. import javax.servlet.http.HttpServletRequest;
    7. import javax.servlet.http.HttpServletResponse;
    8. import com.lx.dao.UserDao;
    9. import com.lx.dao.UserDaoImpl;
    10. import com.lx.entity.User;
    11. public class loginServlet extends HttpServlet{
    12. public loginServlet(){
    13. super();
    14. }
    15. public void init() throws ServletException {
    16. }
    17. public void doGet(HttpServletRequest request, HttpServletResponse response)
    18. throws ServletException, IOException {
    19. this.doPost(request,response);
    20. }
    21. public void doPost(HttpServletRequest request, HttpServletResponse response)
    22. throws ServletException, IOException {
    23. String uname=request.getParameter("UserName");
    24. String upass=request.getParameter("userPass");
    25. //封装用户对象
    26. User user=new User();
    27. user.setUserName(uname);
    28. user.setUserPass(upass);
    29. String username=(String) user.getUserName();
    30. String userpass=(String) user.getUserPass();
    31. //创建功能类对象来实现功能
    32. UserDao dao=new UserDaoImpl();
    33. boolean flag=false;
    34. try{
    35. flag=dao.valiLogin(username,userpass);
    36. }catch (Exception e) {
    37. e.printStackTrace();
    38. //然后跳转到错误页面
    39. request.getRequestDispatcher("/failure.jsp").forward(request,response);
    40. return;
    41. }
    42. if(flag==true) //登录成功
    43. {
    44. request.getRequestDispatcher("/addproduct.jsp").forward(request,response);
    45. }
    46. else
    47. {
    48. //然后跳转到错误页面
    49. request.getRequestDispatcher("/failure.jsp").forward(request,response);
    50. }
    51. }
    52. public void destroy(){
    53. super.destroy();
    54. }
    55. }

    处理产品管理业务流程。

    productServlet.java

    1. package com.lx.servlet;
    2. import java.io.IOException;
    3. import java.util.List;
    4. import javax.servlet.ServletException;
    5. import javax.servlet.annotation.WebServlet;
    6. import javax.servlet.http.HttpServlet;
    7. import javax.servlet.http.HttpServletRequest;
    8. import javax.servlet.http.HttpServletResponse;
    9. import javax.servlet.http.HttpSession;
    10. import com.lx.dao.ProductDao;
    11. import com.lx.dao.ProductDaoImpl;
    12. import com.lx.entity.Product;
    13. public class productServlet extends HttpServlet {
    14. private static final long serialVersionUID=1L;
    15. public productServlet() {
    16. super();
    17. //TODO Auto-generated constructor stub
    18. }
    19. protected void doGet(HttpServletRequest request,HttpServletResponse response)
    20. throws ServletException,IOException {
    21. doPost(request,response);
    22. }
    23. protected void doPost(HttpServletRequest request,HttpServletResponse response)
    24. throws ServletException,IOException {
    25. String action=request.getParameter("action");//获取 action 参数值
    26. if(action.equals("add"))
    27. add(request,response);
    28. if(action.equals("list"))
    29. list(request,response);
    30. }
    31. protected void add(HttpServletRequest request, HttpServletResponse response)
    32. throws ServletException, IOException {
    33. String pname=request.getParameter("pname");
    34. Float pprice=Float.parseFloat(request.getParameter("pprice"));
    35. Product product=new Product();
    36. product.setPname(pname);
    37. product.setPprice(pprice);
    38. //创建功能类对象来实现功能
    39. ProductDao pdao=new ProductDaoImpl();
    40. int n = 0;
    41. try {
    42. n = pdao.addProduct(product);
    43. }catch (Exception e) {
    44. e.printStackTrace();
    45. //然后跳转到错误页面
    46. request.getRequestDispatcher("/failure.jsp").forward(
    47. request,response);
    48. return;
    49. }
    50. if(n == 1) //添加成功
    51. {
    52. request.getRequestDispatcher("/addproduct.jsp").forward(request,response);
    53. }
    54. else
    55. {
    56. //然后跳转到错误页面
    57. request.getRequestDispatcher("/failure.jsp").forward(request,response);
    58. }
    59. }
    60. protected void list(HttpServletRequest request,HttpServletResponse response)
    61. throws ServletException,IOException{
    62. ProductDao pdao = new ProductDaoImpl();
    63. List<Product> productList=pdao.getList();
    64. HttpSession session=request.getSession();
    65. session.setAttribute("productlist",productList);
    66. response.sendRedirect("listproduct.jsp");
    67. }
    68. }

    加油啦,小比特~

    记得一键三连嗷!三连!!三连!!!

  • 相关阅读:
    洛谷题单 【入门1】顺序结构
    3.验证面试高频问题整理(附答案)
    Thread线程初识
    PG::FunboxEasyEnum
    【使用教程】在Ubuntu下PMM60系列一体化伺服电机通过SDO跑循环同步位置模式详解
    运维自动导出业务容器Java堆栈错误日志脚本
    软件考试:计算机组成原理:程序的运行过程
    数据挖掘(3)特征化
    小程序引入vant-Weapp保姆级教程及安装过程的问题解决
    java计算机毕业设计基于node.js的预约上门维修服务系统
  • 原文地址:https://blog.csdn.net/m0_58232983/article/details/125021687