• Java项目:JSP在线旅游路线销售商城


    作者主页:源码空间站2022

     简介:Java领域优质创作者、Java项目、学习资料、技术互助

    文末获取源码

    项目介绍

    本系统分为前后台,分为普通用户和管理员两种角色;

    管理员角色包含以下功能:

    管理员登录,用户管理,路线分类管理,路线管理,订单管理,留言管理,新闻管理等功能。

    用户角色包含以下功能:
    按分类查看,用户登录,修改个人信息,查看旅游线路详情,加入购物车,查看订单,提交订单,提交留言等功能。

    环境需要

    1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
    2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
    3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
    4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 

    5.数据库:MySql 5.7版本;

    6.是否Maven项目:否;

    技术栈

    JSP+CSS+JavaScript+java+servlet+mysql

    使用说明

    1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
    2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
    若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
    3. 将项目中src/com/hr/dao/Basedao.java配置文件中的数据库配置改为自己的配置;
    4. 运行项目,输入http://localhost:8080/ 登录
    管理员账号/密码:admin/admin 

    用户账号/密码:user/123456

    运行截图

    用户角色

     管理员角色

    相关代码 

    gmServlet

    1. package com.web.shopservlet;
    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 javax.servlet.http.HttpSession;
    9. import com.hr.dao.ESDao;
    10. import com.hr.entity.EASYBUY_ORDER_DETAIL;
    11. import com.hr.entity.EASYBUY_USER;
    12. import com.hr.util.EncodeUtil;
    13. public class gmServlet extends HttpServlet {
    14. @Override
    15. protected void service(HttpServletRequest arg0, HttpServletResponse arg1)
    16. throws ServletException, IOException {
    17. arg1.setContentType("text/html;charset=utf-8");
    18. PrintWriter out=arg1.getWriter();
    19. EncodeUtil.encode(arg0);
    20. HttpSession session=arg0.getSession();
    21. EASYBUY_USER list=(EASYBUY_USER)session.getAttribute("name");
    22. //用户id
    23. String id=list.getEU_USER_ID();
    24. //用户姓名
    25. String name=list.getEU_USER_NAME();
    26. //用户地址
    27. String address=list.getEU_ADDRESS();
    28. //总价钱
    29. String price=arg0.getParameter("jstext");
    30. //商品id
    31. String [] EP_ID=arg0.getParameterValues("spID");
    32. //购买数量
    33. String [] quantity=arg0.getParameterValues("number");
    34. //商品单价
    35. String [] sPPrice=arg0.getParameterValues("sPPrice");
    36. //购买后对商品表的库存进行修改
    37. for(int i=0;i
    38. int count5=ESDao.updateStock(Integer.parseInt(quantity[i]),Integer.parseInt(EP_ID[i]));
    39. }
    40. //商品单个总价
    41. int [] pprice=new int[EP_ID.length];
    42. for(int i=0;i
    43. pprice[i]=Integer.parseInt(quantity[i])*Integer.parseInt(sPPrice[i]);
    44. }
    45. /得到序列
    46. //往订单表里添加数据
    47. int count=ESDao.insertDD(id, name, address,Integer.parseInt(price));
    48. int getSequenceId=ESDao.getSequenceId();
    49. //循环往订单详情添加
    50. for(int i=0;i
    51. EASYBUY_ORDER_DETAIL eod=new EASYBUY_ORDER_DETAIL(1,getSequenceId,Integer.parseInt(EP_ID[i]),Integer.parseInt(quantity[i]),pprice[i]);
    52. int count2=ESDao.eodInsert(eod);
    53. }
    54. // 开单后,修改购物车
    55. String [] esID=arg0.getParameterValues("esID");
    56. for(int i=0;i
    57. int count3 =ESDao.esdelete(Integer.parseInt(esID[i]));
    58. }
    59. /
    60. if(count>0){
    61. out.print("");
    62. out.close();
    63. }else{
    64. out.print("");
    65. out.close();
    66. }
    67. }
    68. }

    ShopSelect

    1. package com.web.shopservlet;
    2. //订单表数据的查询
    3. import java.io.IOException;
    4. import java.io.PrintWriter;
    5. import java.util.ArrayList;
    6. import javax.servlet.ServletException;
    7. import javax.servlet.http.HttpServlet;
    8. import javax.servlet.http.HttpServletRequest;
    9. import javax.servlet.http.HttpServletResponse;
    10. import javax.servlet.http.HttpSession;
    11. import com.hr.dao.ESDao;
    12. import com.hr.entity.EASYBUY_USER;
    13. import com.hr.entity.eb_shop;
    14. import com.hr.util.EncodeUtil;
    15. public class ShopSelect extends HttpServlet {
    16. @Override
    17. protected void service(HttpServletRequest arg0, HttpServletResponse arg1)
    18. throws ServletException, IOException {
    19. EncodeUtil.encode(arg0);
    20. arg1.setContentType("text/html;charset=utf-8");
    21. PrintWriter out = arg1.getWriter();
    22. HttpSession session=arg0.getSession();
    23. EASYBUY_USER userCZ=(EASYBUY_USER)session.getAttribute("name");
    24. if(userCZ!=null){
    25. // System.out.println("登录好了");
    26. EASYBUY_USER eu=(EASYBUY_USER)session.getAttribute("name");
    27. String id=(String)eu.getEU_USER_ID();
    28. ArrayList list=ESDao.getShop(id);
    29. arg0.setAttribute("shoplist",list);
    30. arg0.getRequestDispatcher("shopping.jsp").forward(arg0, arg1);
    31. }else{
    32. out.print("");
    33. out.close();
    34. }
    35. }
    36. }

    UpdateServlet

    1. package com.web.shopservlet;
    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.hr.dao.ESDao;
    9. import com.hr.entity.eb_shop;
    10. public class UpdateServlet extends HttpServlet {
    11. @Override
    12. protected void service(HttpServletRequest arg0, HttpServletResponse arg1)
    13. throws ServletException, IOException {
    14. arg1.setContentType("text/html;charset=utf-8");
    15. PrintWriter out = arg1.getWriter();
    16. String str1=arg0.getParameter("pid");
    17. String str2=arg0.getParameter("action");
    18. String str3=arg0.getParameter("getvalue");
    19. if(str2.equals("jia")){
    20. int count=ESDao.updateJia(Integer.parseInt(str1));
    21. }
    22. if(str2.equals("jian")){
    23. int count=ESDao.updateJian(Integer.parseInt(str1));
    24. }
    25. if(str2.equals("closeText")){
    26. eb_shop es=new eb_shop(Integer.parseInt(str1), "1", "1", 1, Integer.parseInt(str3), 1, 1, "1", 1);
    27. int count=ESDao.updateClose(es);
    28. }
    29. if(str2.equals("delText")){
    30. int count=ESDao.getDeleteDD(Integer.parseInt(str1));
    31. }
    32. arg1.sendRedirect("ShopSelect");
    33. }
    34. }

    ESDao

    1. package com.hr.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 com.hr.entity.EASYBUY_ORDER_DETAIL;
    8. import com.hr.entity.EASYBUY_PRODUCT_CATEGORY;
    9. import com.hr.entity.EASYBUY_USER;
    10. import com.hr.entity.eb_shop;
    11. public class ESDao {
    12. /**
    13. * 两张表联查做购物车
    14. */
    15. public static ArrayList getShop(String id){
    16. ArrayList list=new ArrayList();
    17. Connection conn=Basedao.getconn();
    18. PreparedStatement ps=null;
    19. ResultSet rs=null;
    20. try {
    21. ps=conn.prepareStatement("select * from EASYBUY_SHOP where es_EU_USER_ID=? and ES_VALID=1 order by es_id desc");
    22. ps.setString(1,id);
    23. rs=ps.executeQuery();
    24. while(rs.next()){
    25. eb_shop es=new eb_shop(
    26. rs.getInt("es_id"),
    27. rs.getString("es_ep_file_name"),
    28. rs.getString("es_ep_name"),
    29. rs.getInt("es_ep_price"),
    30. rs.getInt("es_eod_quantity"),
    31. rs.getInt("es_ep_stock"),
    32. rs.getInt("es_ep_id"),
    33. rs.getString("es_EU_USER_ID"),
    34. rs.getInt("es_valid")
    35. );
    36. list.add(es);
    37. }
    38. } catch (SQLException e) {
    39. // TODO Auto-generated catch block
    40. e.printStackTrace();
    41. }finally{
    42. Basedao.closeall(rs, ps, conn);
    43. }
    44. return list;
    45. }
    46. /*
    47. *
    48. *修改订单数量 加
    49. */
    50. public static int updateJia(int id){
    51. String sql="update EASYBUY_SHOP set es_eod_quantity=es_eod_quantity+1 where es_id=?";
    52. Object [] params={id};
    53. return Basedao.exectuIUD(sql, params);
    54. }
    55. /*
    56. *
    57. *修改订单数量 减
    58. */
    59. public static int updateJian(int id){
    60. String sql="update EASYBUY_SHOP set es_eod_quantity=es_eod_quantity-1 where es_id=?";
    61. Object [] params={id};
    62. return Basedao.exectuIUD(sql, params);
    63. }
    64. /*
    65. *
    66. * 修改订单数量,自己输入
    67. */
    68. public static int updateClose(eb_shop es){
    69. String sql="update EASYBUY_SHOP set es_eod_quantity=? where es_id=?";
    70. Object [] params={es.es_eod_quantity,es.es_id};
    71. return Basedao.exectuIUD(sql, params);
    72. }
    73. /**
    74. * 修改订单为2
    75. * @param id
    76. * @return
    77. */
    78. public static int getDelete(int id){
    79. String sql="update EASYBUY_SHOP set es_vaild=2 where es_id=?";
    80. Object[] params={id};
    81. return Basedao.exectuIUD(sql, params);
    82. }
    83. /*
    84. *
    85. * 订单表的添加
    86. *
    87. */
    88. public static int insertDD(String id,String name,String address,int price){
    89. String sql="insert into EASYBUY_ORDER values(null,?,?,?,now(),?,1,1)";
    90. Object [] params={id,name,address,price};
    91. return Basedao.exectuIUD(sql, params);
    92. }
    93. /*
    94. * 得到序列
    95. */
    96. public static int getSequenceId(){
    97. int id = 0;
    98. Connection conn = Basedao.getconn();
    99. PreparedStatement ps = null;
    100. ResultSet rs = null;
    101. try {
    102. ps = conn.prepareStatement("select EO_ID from easybuy_order order by EO_ID desc limit 0,1");
    103. rs = ps.executeQuery();
    104. if(rs.next()){
    105. id = rs.getInt(1);
    106. }
    107. } catch (SQLException e) {
    108. // TODO Auto-generated catch block
    109. e.printStackTrace();
    110. } finally {
    111. Basedao.closeall(rs, ps, conn);
    112. }
    113. return id;
    114. }
    115. /*
    116. *
    117. * 订单详细表的添加
    118. */
    119. public static int eodInsert(EASYBUY_ORDER_DETAIL eod){
    120. String sql="insert into EASYBUY_ORDER_DETAIL values(null,?,?,?,?)";
    121. Object [] params={eod.getEO_ID(),eod.getEP_ID(),eod.getEOD_QUANTITY(),eod.getEOD_COST()};
    122. return Basedao.exectuIUD(sql, params);
    123. }
    124. /*
    125. *
    126. * 购物单的修改
    127. */
    128. public static int esdelete(int id){
    129. String sql="update EASYBUY_SHOP set es_valid=2 where es_id=?";
    130. Object [] params={id};
    131. return Basedao.exectuIUD(sql, params);
    132. }
    133. //kucun
    134. public static int updateStock(int stock,int id){
    135. String sql="update EASYBUY_PRODUCT set ep_stock=ep_stock-? where ep_id=?";
    136. Object [] params={stock,id};
    137. return Basedao.exectuIUD(sql, params);
    138. }
    139. public static int insert(eb_shop sp){
    140. String sql = "insert into easybuy_shop values(null,?,?,?,?,?,?,?,1)";
    141. Object[] params = {sp.getEs_ep_file_name(),
    142. sp.getEs_ep_name(),
    143. sp.getEs_ep_price(),
    144. sp.getEs_eod_quantity(),
    145. sp.getEs_ep_stock(),
    146. sp.getEs_ep_id(),
    147. sp.getEs_EU_USER_ID()};
    148. return Basedao.exectuIUD(sql, params);
    149. }
    150. public static int getDeleteDD(int id){
    151. String sql="delete from easybuy_shop where es_id=?";
    152. Object [] params={id};
    153. return Basedao.exectuIUD(sql, params);
    154. }
    155. }

    Basedao

    1. package com.hr.dao;
    2. import java.sql.Connection;
    3. import java.sql.DriverManager;
    4. import java.sql.PreparedStatement;
    5. import java.sql.ResultSet;
    6. import java.sql.SQLException;
    7. import java.sql.Statement;
    8. public class Basedao {
    9. static{
    10. try {
    11. Class.forName("com.mysql.jdbc.Driver");
    12. } catch (ClassNotFoundException e) {
    13. // TODO Auto-generated catch block
    14. e.printStackTrace();
    15. }
    16. }
    17. public static Connection getconn(){
    18. Connection conn=null;
    19. try {
    20. conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/jsp_zxlv_shop?useUnicode=true&characterEncoding=UTF-8","root","root");
    21. } catch (SQLException e) {
    22. // TODO Auto-generated catch block
    23. e.printStackTrace();
    24. }
    25. return conn;
    26. }
    27. public static void closeall(ResultSet rs,Statement ps,Connection conn){
    28. try {
    29. if(rs!=null)
    30. rs.close();
    31. if(ps!=null)
    32. ps.close();
    33. if(conn!=null)
    34. conn.close();
    35. } catch (SQLException e) {
    36. e.printStackTrace();
    37. }
    38. }
    39. public static int exectuIUD(String sql,Object[] params){
    40. int count=0;
    41. Connection conn=Basedao.getconn();
    42. PreparedStatement ps=null;
    43. try {
    44. ps=conn.prepareStatement(sql);
    45. if(params!=null){
    46. for (int i = 0; i < params.length; i++) {
    47. ps.setObject(i+1, params[i]);
    48. }
    49. }
    50. count=ps.executeUpdate();
    51. } catch (SQLException e) {
    52. // TODO Auto-generated catch block
    53. e.printStackTrace();
    54. }
    55. finally{
    56. Basedao.closeall(null, ps, conn);
    57. }
    58. return count;
    59. }
    60. }

    如果也想学习本系统,下面领取。关注并回复:062jsp

     

  • 相关阅读:
    【STL】map/multimap容器
    【Labview】通过串口通信从上位机读取和写入数据
    python表白弹框
    《大话设计模式》精髓理解——Chapter 16 - 20 状态、适配器、备忘录、组合、迭代器
    Java知识点整理 16 — Spring Bean
    C#webform Static DataTable 多人同时操作网页数据重复问题
    次氯酸双光子聚集诱导发光型分子探针/聚集诱导发光环状多烯类分子/氮杂环聚集诱导发光分子的研究
    软件评测师之流水线
    基于workbench的PTFE矩形密封圈压缩回弹仿真分析
    DES加密前端入参
  • 原文地址:https://blog.csdn.net/m0_74967853/article/details/128031622