前言:
使用MVC设计模式,完成产品管理系统,实现用户管理模块和产品管理模块。要求完成用户登录功能;产品信息添加、产品信息浏览。完成公共模块以及用户管理模块。
🍑作者:小赛毛
💕文章初次日期:2022/5/28
目录
产品管理系统项目下载https://download.csdn.net/download/m0_58232983/85486133
步骤:
(1)建立模型层
创建数据模型,创建User、Product类;
product.java
package com.lx.entity;
public class Product {
private int pid;
private String pname;
private float pprice;
public int getPid() {
return pid;
}
public void setPid(int pid) {
this.pid = pid;
}
public String getPname() {
return pname;
}
public void setPname(String pname) {
this.pname=pname;
}
public float getPprice() {
return pprice;
}
public void setPprice(float pprice) {
this.pprice= pprice;
}
public Product(int pid,String pname,float pprice) {
super();
this.pid=pid;
this.pname=pname;
this.pprice=pprice;
}
public Product() {
// TODO Auto-generated constructor stub
}
}
user.java
package com.lx.entity;
public class User {
private String userName;
private String userPass;
public String getUserName () {
return userName;
}
public void setUserName (String userName) {
this.userName = userName;
}
public String getUserPass() {
return userPass;
}
public void setUserPass(String userName) {
this.userPass = userPass;
}
}
创建功能模型,创建Dao。
ProductDao
package com.lx.dao;
import java.util.List;
import com.lx.entity.Product;
public interface ProductDao{
public List<Product> getList();
public int addProduct(Product p);
}
ProductDaoImpl
package com.lx.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.lx.entity.Product;
import com.lx.entity.User;
import com.lx.util.BasicJDBC;
public class ProductDaoImpl implements ProductDao{
private BasicJDBC db=null;
private Connection con=null;
public ProductDaoImpl(){
db=new BasicJDBC();
con=db.getCon();
}
@Override
public int addProduct(Product p) {
PreparedStatement ps=null;
String sql="insert into product(pname,pprice) values(?,?)";
int n = 0;
try {
ps=con.prepareStatement(sql);
ps.setString(1, p.getPname());
ps.setFloat(2, p.getPprice());
n=ps.executeUpdate();
System.out.println(n);
}catch (SQLException e) {
e.printStackTrace();
}finally {
db.closeAll(con,ps,null);
}
return n;
}
@Override
public List<Product> getList() {
PreparedStatement ps=null;
String sql="select*from product";
ResultSet rs=null;
List<Product> list=new ArrayList<Product> ();
try{
ps=con.prepareStatement(sql);
rs=ps.executeQuery();
while (rs.next()) {
//将数据库中的一行记录封装成一个产品对象
Product p=new Product(rs.getInt(1), rs.getString(2), rs.getFloat(3));
//将产品对象添加到list中
list.add(p);
}
}catch (SQLException e) {
e.printStackTrace();
}finally {
db.closeAll(con,ps,rs);
}
return list;
}
}
UserDao
package com.lx.dao;
public interface UserDao {
//验证登录
public boolean valiLogin(String name, String pwd) throws Exception;
}
UserDaoImpl
package com.lx.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.lx.util.BasicJDBC;
import com.lx.dao.UserDao;
//将所有要实现的功能全部封装到本类中
public class UserDaoImpl implements UserDao {
/**
* 本方法实现验证登录
* @param name 要验证的用户名
* @param pw 要验证的密码
* @return boolean true 表示成功,false 表示失败
*/
private BasicJDBC db=null;
private Connection con=null;
public UserDaoImpl(){
db = new BasicJDBC();
con=db.getCon();
}
public boolean valiLogin(String name,String password) throws Exception
{
boolean flag=false;
PreparedStatement ps=null;
ResultSet rs=null;
String sql="select*from user where name=? and password = ?";
try {
ps=con.prepareStatement(sql);
//填充好所有的?
ps.setString(1,name);
ps.setString(2,password);
//值天冲完毕后,要执行的 sql 命令就完整了,这时才能执行
rs=ps.executeQuery();
//判断结果集,并验证登录
if(rs.next()) flag=true;
}catch (SQLException e) {
//TODO Auto-generated catch block
e.printStackTrace();
}finally {
db.closeAll(con,ps,null);
}
return flag;
}
}
(2)建立视图层
登录页面;
login.jsp (受篇幅影响,代码这里放在项目链接)
添加产品页面;
addproduct.jsp
显示产品列表页面。
listproduct.jsp
(3)建立控制层
处理用户管理业务流程;
loginServlet.java
package com.lx.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.lx.dao.UserDao;
import com.lx.dao.UserDaoImpl;
import com.lx.entity.User;
public class loginServlet extends HttpServlet{
public loginServlet(){
super();
}
public void init() throws ServletException {
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String uname=request.getParameter("UserName");
String upass=request.getParameter("userPass");
//封装用户对象
User user=new User();
user.setUserName(uname);
user.setUserPass(upass);
String username=(String) user.getUserName();
String userpass=(String) user.getUserPass();
//创建功能类对象来实现功能
UserDao dao=new UserDaoImpl();
boolean flag=false;
try{
flag=dao.valiLogin(username,userpass);
}catch (Exception e) {
e.printStackTrace();
//然后跳转到错误页面
request.getRequestDispatcher("/failure.jsp").forward(request,response);
return;
}
if(flag==true) //登录成功
{
request.getRequestDispatcher("/addproduct.jsp").forward(request,response);
}
else
{
//然后跳转到错误页面
request.getRequestDispatcher("/failure.jsp").forward(request,response);
}
}
public void destroy(){
super.destroy();
}
}
处理产品管理业务流程。
productServlet.java
package com.lx.servlet;
import java.io.IOException;
import java.util.List;
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 com.lx.dao.ProductDao;
import com.lx.dao.ProductDaoImpl;
import com.lx.entity.Product;
public class productServlet extends HttpServlet {
private static final long serialVersionUID=1L;
public productServlet() {
super();
//TODO Auto-generated constructor stub
}
protected void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException {
doPost(request,response);
}
protected void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException {
String action=request.getParameter("action");//获取 action 参数值
if(action.equals("add"))
add(request,response);
if(action.equals("list"))
list(request,response);
}
protected void add(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String pname=request.getParameter("pname");
Float pprice=Float.parseFloat(request.getParameter("pprice"));
Product product=new Product();
product.setPname(pname);
product.setPprice(pprice);
//创建功能类对象来实现功能
ProductDao pdao=new ProductDaoImpl();
int n = 0;
try {
n = pdao.addProduct(product);
}catch (Exception e) {
e.printStackTrace();
//然后跳转到错误页面
request.getRequestDispatcher("/failure.jsp").forward(
request,response);
return;
}
if(n == 1) //添加成功
{
request.getRequestDispatcher("/addproduct.jsp").forward(request,response);
}
else
{
//然后跳转到错误页面
request.getRequestDispatcher("/failure.jsp").forward(request,response);
}
}
protected void list(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
ProductDao pdao = new ProductDaoImpl();
List<Product> productList=pdao.getList();
HttpSession session=request.getSession();
session.setAttribute("productlist",productList);
response.sendRedirect("listproduct.jsp");
}
}
加油啦,小比特~
记得一键三连嗷!三连!!三连!!!