精华内容
下载资源
问答
  • Javaweb实训项目

    2019-12-05 11:40:27
    一 测试userdaoimpl 1. 测试login方法 2. 测试插入用户 3. 测试删除用户 4 测试更新用户 5 测试ID查找用户 6 测试按照用户名查找用户 7 测试查找全部用户 二 测试CategoryDaoImpl ......

    一    测试userdaoimpl

    1. 测试login方法

    2. 测试插入用户

     3.   测试删除用户

     4  测试更新用户

    5 测试ID查找用户

    6 测试按照用户名查找用户

    7 测试查找全部用户

    二  测试CategoryDaoImpl

    1 测试插入

    id因为是自增,所有为什么是7

    2 测试删除

    3 测试更新

    4 测试查找

    5 测试查找全部

    三 测试ProductDaoImpl

    1  测试插入

    2  测试删除

    3  测试更新

    4 测试查找

    5 测试按照findByCategoryId查找

    6 测试查找all

    四  测试OrderDaoImpl

    1 测试插入

    2 测试删除

    3 测试更新

    4 测试查找

    5 测试查找最后一个

    6 测试查找全部

    五  测试userservice

    1  测试添加用户

    2 测试删除

    3 测试更新

    4 测试查找

    5 测试查找按照姓名

    6 测试查找全部

    7 测试登录

    六 测试CategoryService

    1 测试添加

    2 测试删除

    3 测试更新

    4 测试查找安id

    5 测试查找全部

    七 测试ProductService

    1  测试添加

    2 测试删除

    3 测试更新

    4  测试查找id

    5 测试findProductsByCategoryId

    6 测试查找全部

    八 测试OrderService

    1 测试添加

    2 测试删除

    3 测试更新

    4 测试查找安id

    5 测试findLastOrder

    6 测试查找全部

    以上是全部测试内容,还有问题数据库编码和乱码问题!!!

    
     
    
     
    
     
    展开全文
  • 文章目录JavaWeb实训项目:购书城部署Tomcat服务器简介:Tomcat下载及配置设置Tomcat热部署修改Tomcat终端窗口的名字Tomcat终端乱码问题Tomcat初步使用Idea创建Maven项目流程IDEA 配置Tomcat测试 JavaWeb实训项目:...

    JavaWeb实训项目:网上购书城平台系统

    这是应付学校实训写的辣鸡项目,用的是Servlet+JSP这样过时的技术。。。无聊的话可以看下,源码链接:here

    部署Tomcat服务器

    简介:

    Tomcat目录结构
    bin 一些启动/关闭脚本,运行Tomcat的可执行程序和相关内容
    conf Tomcat服务器的配置文件,包括 server.xml(Tomcat的主要配置文件)和为不同的Tomcat配置的web应用设置缺省值的文件web.xml
    lib Tomcat运行或者站点运行所需的jar包,所有在此Tomcat上的站点共享这些jar包。unix平台此目录下的任何文件都被加到Tomcat的classpath中
    logs Tomcat的日志文件
    temp 存放临时文件
    webapps 默认的站点根目录(可以更改)。当发布web应用时,默认情况下把web文件夹放于此目录下
    work Tomcat自动生成,用于在服务器运行时过度的临时文件,就是存储jsp、servlet翻译、编译后的结果。如在Tomcat运行时删除此目录,JSP页面将不能运行, jsp生成的sevlet放在此目录下

    Tomcat常用端口号 (ps:修改了这三个端口号,就可以在一台主机上启动多个Tomcat了
    8005 Tomcat 监听的关闭端口
    8080 Tomcat的服务端口
    8009 接受其他服务器转发过来的请求

    如果你想要运行多个Tomcat,就修改其他Tomcat的端口号使之不重复即可
    修改文件位置:apache-tomcat-9.0.21\conf\server.xml
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

    Tomcat环境编码设置(可选)

    还是上面那个文件,添加内容:URIEncoding="UTF-8"
    在这里插入图片描述

    Tomcat下载及配置

    ApacheApache的官方网站下载Tomcat。下载最新的解压版本后,本地直接解压即可。建议下载8或9版本。

    配置环境变量:

    JDKJDK的环境变量默认大家都配置好了。

    TomcatTomcat的环境变量:变量名:CATALINA_HOME,变量值(你的解压目录):E:\ashixun\apache-tomcat-9.0.21

    启动Tomcat:

    在目录apache-tomcat-9.0.21\bin下双击startup.bat文件或者命令行输入startupstart tomcat9.exe或者catalina run都可以。

    输入网址:localhost:8080看是否启动成功,成功界面如下:

    在这里插入图片描述

    设置Tomcat热部署

    如何我们修改了classclass文件,可以让TomcatTomcat自动重启生效;

    修改文件位置:apache-tomcat-9.0.21\conf\server.xml

    <host></host>内部添加<context/>标签:

    <Context debug="0" docBase="D:\test\demo" path="/demo" reloadable="true"/>

    docBase:项目路径,可以使用绝对路径或相对路径,相对路径是相对于webappswebapps
    path:访问项目的路径
    reloadable:是否自动加载新增或改变的classclass文件
    debug:属性与这个EngineEngine关联的LoggerLogger记录的调试信息的详细程度。数字越大,输出越详细。如果没有指定,缺省为0。 也就是程序异常时写入日志文件里的详细程度。

    修改Tomcat终端窗口的名字

    文件位置:apache-tomcat-9.0.21\bin\catalina.bat
    在这里插入图片描述

    Tomcat终端乱码问题

    问题原因在tomcat默认是UTF-8编码,而win的终端默认是GBK编码。

    解决:找到如下logging.properties文件,将第51行的控制台UTF-8编码改为GBK即可。

    在这里插入图片描述
    在这里插入图片描述

    Tomcat初步使用

    参考:purplestonehttp简介其他

    点击以下超链接,出现登录窗口,然后点击取消。

    在这里插入图片描述
    在这里插入图片描述
    会弹出这个页面,复制以下代码到comf/tomcat-users.xml,再进行登录即可进入管理页面。
    在这里插入图片描述

    <role rolename="admin-gui"/>
    <user username="tomcat" password="s3cret" roles="admin-gui"/>
    

    可以看到当前有哪些项目部署在tomcat ,也可以从这里进入某个项目中http://localhost:8080/manager/html
    在这里插入图片描述

    IDEA创建Maven项目

    流程

    新建MavenMaven项目,那个create from archetype暂时不用选。

    在这里插入图片描述
    GroupIdGroupId(一般是公司域名的倒写)和ArtifactIdArtifactId(一般是你的项目名字)被统称为“坐标”是为了保证项目唯一性而提出的,如果你要把你项目弄到mavenmaven本地仓库去,你想要找到你的项目就必须根据这两个idid去查找。在这里插入图片描述

    添加webappwebapp项目,右键项目Add Framework Support

    在这里插入图片描述
    在这里插入图片描述

    然后就出现了一个web项目如下:

    在这里插入图片描述

    IDEA 配置Tomcat

    点击界面Run,然后选择Run...,再点Edit Configurations...

    在这里插入图片描述在这里插入图片描述
    (你的应该不会显示bookcity这一项的,因为我之前编辑过所以有,你执行完以下步骤就有了)

    然后点+号,找到最下面的Tomcat Server

    先选中你的服务器,然后修改URL,设置项目发布路径,即虚拟路径。

    在这里插入图片描述

    点击Deployment,注意保持Application context内容和前面虚拟路径内容相同,我这里都是bookcity
    在这里插入图片描述
    确认后返回。点击界面Run,然后选择Run...,再点bookcity运行,默认浏览器就会打开一个界面,显示index.jsp的网页效果。
    在这里插入图片描述
    在这里插入图片描述
    需要注意的是此时发布的webweb项目其目录为localhost:8080/bookcity,而项目的根目录即localhost:8080TomcatwebappsTomcat webapps中自带的ROOTROOT项目,具体原因涉及到TomcatTomcat的配置文件。

    测试

    src->main->java下新建一个包com.demo.servlet ,然后在此包下新建一个HelloServlet

    首先让HelloServlet 类继承HttpServlet
    在这里插入图片描述
    不出意外应该idea不会给你自动补全·HttpServlet·这个类并且还会报错。

    因为这个项目没有导入对servlet支持的jar包。

    MavenMaven项目的方便就在于他可以自动帮你导入各种你需要jar包!

    你只需导入相应的代码即可,查询jar包对应代码的网站:here

    <dependencies>
            <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>3.1.0</version>
                <scope>provided</scope>
            </dependency>
        </dependencies>
    

    将代码复制到pom.xml文件即可:
    在这里插入图片描述
    下面是web.xml的内容,配置 web.xml 后,才能让别人调用:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
             version="4.0">
        <display-name>bookcity</display-name>
        <servlet>
            <servlet-name>HelloServlet</servlet-name>
            <servlet-class>com.demo.servlet.HelloServlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>HelloServlet</servlet-name>
            <url-pattern>/hello</url-pattern>
        </servlet-mapping>
    </web-app>
    

    下面是HelloServlet的完整内容:

    /**
     * Copyright (C), 2018-2019, csust
     * FileName: HttpServlet
     * Author:   Cwolf9
     * Date:     2019/06/18 16:06
     * Description:
     * History:
     * <author>          <time>          <version>          <desc>
     * Cwolf9           2019/06/18           2018.3
     * <p>
     * 〈可怕的是比你强的人比你还努力〉
     * 〈〉
     *
     * @author Cwolf9
     * @create 2019/06/18
     * @since 1.0.0
     */
    /**
     * 〈可怕的是比你强的人比你还努力〉
     * 〈〉
     *
     * @author Cwolf9
     * @create 2019/06/18
     * @since 1.0.0
     */
    package com.demo.servlet;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.io.PrintWriter;
    
    public class HelloServlet extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            PrintWriter out = response.getWriter();
            try {
                request.setCharacterEncoding("UTF-8");
                response.setContentType("text/html; charset=utf-8");
                response.setCharacterEncoding("UTF-8");
                String userId = request.getParameter("userId");
                String pwd = request.getParameter("pwd");
                if("admin".equals(userId) && "password".equals(pwd)){
                    out.println("success");
                }else{
                    out.println("fail");
                }
                out.println("<br/>");
                String servletPath = this.getServletContext().getRealPath("/");
                out.println(servletPath);
                out.close();
            } catch (Exception e) {
                // TODO: handle exception
            }
        }
    }
    

    启动服务器,然后访问:http://localhost:8080/bookcity/hello ,页面如下:
    在这里插入图片描述
    按照HelloServlet 中的写法,你应该这么访问:http://localhost:8080/bookcity/hello?userId=admin&pwd=password,这样返回的页面就是success:
    在这里插入图片描述

    welcome-file-list设置与url-pattern匹配规则

    https://blog.csdn.net/qq_15237993/article/details/72868089

    https://blog.csdn.net/xybz1993/article/details/81023955


    MYSQL8配置

    创建用户create user 'xxx'@'%' identified by 'xxx';

    赋予权限:grant all privileges on *.* to xxx@"%";

    使之生效:flush privileges;

    修改密码:alter user'xxx'@'%' IDENTIFIED BY '1234567';

    删除用户:drop user'xxx';

    MYSQL远程连接

    要让别人能远程连接你本地的数据库,你们得在同一个局域网下,其次你要开放你的一个端口。

    windows查看端口命令:netstat -an,netstat -ano,netstat -an|findstr "3306"

    linux查看端口:nmap -sP ip地址,lsof -i:8000

    win开放端口:

    win+s搜索:高级,点进去设置一个出站规则,创建类型选择端口,然后设置TCP端口3306,规则名叫3306in,保存即可。

    在这里插入图片描述


    搞完这些同局域网下的其他人应该就可以通过你的ip地址和端口连接上你本机的数据库了。

    Host填你想连接的主机的ip地址

    User填其数据库的一个账户名

    Password填密码

    点击Test Connection查看是否成功。

    在这里插入图片描述

    展开全文
  • Javaweb实训项目-贵美商城源码,采用Myeclipse+MySQL,正则表达式优化注册,基本实现增删改查,适合初学者练习使用,仅供参考
  • 须知: 本篇教程仅限功能性开发,不包括真实业务逻辑,非常适合初学者上手开发。 手写代码从前台贯串后台...网上书店: 使用所学的javaweb知识 邮件的发送 在线支付 添加分类 查询分类 添加图书 查询书籍...

    须知:

    本篇教程仅限功能性开发,不包括真实业务逻辑,非常适合初学者上手开发。
    手写代码从前台贯串后台,没有花哨的界面和友好性的js脚本提示
    由于功能性较多,目前只手写了添加和查询功能。
    修改和删除功能后续上线

    有疑问、或者又更简单、更优秀的方法请在下方评论区留言!感谢支持!

    1.项目分析

    网上书店: 使用所学的javaweb知识
    邮件的发送
    在线支付
    添加分类
    查询分类
    添加图书
    查询书籍
    分页显示和分类名称获取
    权限控制
    

    功能思维导图

    1542115954816

    项目原型预览

    1、项目前台预览

    1.1前台首页展示:

    img

    1.2内容页展示:

    img

    1.3分类展示:

    img

    1.4购物车展示:

    img

    1.5个人用户注册展示:

    img

    1.6个人用户登录展示:

    img

    并自动跳转到主页:

    img

    1.7我的订单展示:

    img

    1.2、项目后台预览

    1.2.1 后台首页展示

    img

    1.2.2 后台添加分类

    img

    1.2.3 后台查询分类

    img

    1. 2.4 后台添加图书

    img

    1.2.5 后台查询图书

    img

    2.编程准备

    |--- 开发环境:
    
    	Java环境  	1.8 JDK	
        				安装|--- 链接:https://pan.baidu.com/s/1FSeR4KYZwl2dg6btBkN80Q 
                                提取码:ftav 
                                复制这段内容后打开百度网盘手机App,操作更方便哦
    
    	数据库环境:    5.6版本
    					安装|--- 链接:https://pan.baidu.com/s/16uuaxxu12td5EczlwGVAvQ 
                                提取码:21pv 
                                复制这段内容后打开百度网盘手机App,操作更方便哦
    
    |--- 采用IDE:
    
    	Java's IDE: MyEclipse2016
                        软件|--- 链接:https://pan.baidu.com/s/1LZWkopNa6mEAmFndQjDSSg 
                                提取码:g1gt 
                                复制这段内容后打开百度网盘手机App,操作更方便哦
                        破解|--- 链接:https://pan.baidu.com/s/1OtE2jFCPMrEWH9rIrPYmAw 
                                提取码:heva 
                                复制这段内容后打开百度网盘手机App,操作更方便哦
    

    1542109099587

    	Navicat for Mysql 
                    软件|--- 链接:https://pan.baidu.com/s/1YMXyfPWZqXrp7NOblhyGGg 
                            提取码:qufy 
                            复制这段内容后打开百度网盘手机App,操作更方便哦
    

    1542109117026

    1. 项目编码:

      1. 程序编码设置为UTF-8

        步骤:

        |-- window - perferences - General - Workspace - Text File Encoding(右侧)

        1542108811526

      2. jsp 模板编码设置UTF-8

        |-- window - perferences - MyEclipse - File and Editors - JSP - Encoding(UnicodeUtf-8) (右侧)

        1542109051729

      3. 导入Jar和配置文件:

        所需哪些jar包?
        |----1. MySQL驱动
        |----2. dbcp和pool
        |----3. dbUtils
        |----4. beanUtils和logging

        配置文件
        |----1. jdbc.properties

        1542109293351

        大家可以通过apache 网站,访问http://commons.apache.org进行下载http://commons.apache.org/
        大家也可以通过百度云链接进行下载当前文章所需Jar包:
        链接:https://pan.baidu.com/s/1h-geYZTe9v9BO4cdeDmR3w
        提取码:3jfz
        复制这段内容后打开百度网盘手机App,操作更方便哦
        1542109821435

    4. 编程思想
      程序使用分层思想及三层架构的MVC模式进行开发
    
      ![](https://img.alicdn.com/imgextra/i2/1850677525/TB21LmqvNuTBuNkHFNRXXc9qpXa_!!1850677525.png)
    

    1542113356497

    5. 程序编码
    5.1实体类 - 分类管理
      ```java
      package com.ambow.entity;
      
      import java.io.Serializable;
      
      @SuppressWarnings("serial")
      public class Category implements Serializable {
      
      	private String id;//UUID
      	private String name;
      	private String description;
      	public String getId() {
      		return id;
      	}
      	public void setId(String id) {
      		this.id = id;
      	}
      	public String getName() {
      		return name;
      	}
      	public void setName(String name) {
      		this.name = name;
      	}
      	public String getDescription() {
      		return description;
      	}
      	public void setDescription(String description) {
      		this.description = description;
      	}
      }
      ```
    

      5.2 数据访问层 dao
    
      ```java
      package com.ambow.dao;
      
      import java.util.List;
      
      import com.ambow.entity.Category;
      
      public interface CategoryDao {
      	/**
      	 * 添加分类
      	 * @param category
      	 */
      	void save(Category category);
      	/**
      	 * 查询所有分类
      	 * @return 没找到返回null
      	 */
      	List<Category> getAllCategories();
      	/**
      	 * 根据主键查找主键
      	 * @param categoryId
      	 * @return 没找到返回null
      	 */
      	Category getCategoryById(String categoryId);
      
      }
      ```
    

      DAO实现类
    
      ```java
      package com.ambow.dao.impl;
      
      import java.sql.SQLException;
      import java.util.List;
      
      import org.apache.commons.dbutils.QueryRunner;
      import org.apache.commons.dbutils.handlers.BeanHandler;
      import org.apache.commons.dbutils.handlers.BeanListHandler;
      
      import com.ambow.dao.CategoryDao;
      import com.ambow.entity.Category;
      import com.ambow.util.DbcpUtils;
      
      public class CategoryDaoImpl implements CategoryDao {
      
      	QueryRunner  queryRunner = new QueryRunner(DbcpUtils.getDataSource());
      	
      	@Override
      	public void save(Category category) {
      		try {
      			queryRunner.update("insert into categories(id,name,description) values (?,?,?)",category.getId(),category.getName(),category.getDescription());
      		} catch (SQLException e) {
      			throw new RuntimeException(e);
      		}
      	}
      
      	@Override
      	public List<Category> getAllCategories() {
      		try {
      			return queryRunner.query("select * from categories", new  BeanListHandler<Category>(Category.class));
      		} catch (SQLException e) {
      			throw new RuntimeException(e);
      		}
      	}
      
      	@Override
      	public Category getCategoryById(String categoryId) {
      		try {
      			return queryRunner.query("select * from categories where id = ?", new  BeanHandler<Category>(Category.class),categoryId);
      		} catch (SQLException e) {
      			throw new RuntimeException(e);
      		}
          }
      }
      ```
    

      5.3 工具类:数据源连接池DbcpUtil
    
      ```java
      package com.ambow.util;
      
      import java.io.InputStream;
      import java.sql.Connection;
      import java.sql.SQLException;
      import java.util.Properties;
      
      import javax.sql.DataSource;
      
      import org.apache.commons.dbcp2.BasicDataSourceFactory;
      
      public class DbcpUtils {
      	public static DataSource dataSource;
      
      	static {
      
      		try {
      			InputStream in = DbcpUtils.class.getClassLoader().getResourceAsStream("jdbc.properties");
      			Properties properties = new Properties();
      			properties.load(in);
      			dataSource = BasicDataSourceFactory.createDataSource(properties);
      		} catch (Exception e) {
      			throw new RuntimeException(e);
      		}
      	}
      
      	public static DataSource getDataSource() {
      		return dataSource;
      	}
      
      	public static Connection getConnection() {
      		try {
      			return dataSource.getConnection();
      		} catch (SQLException e) {
      			throw new RuntimeException(e);
      		}
      	}
      }
      ```
    

      配置文件:
    
      ```xml
      driverClassName=com.mysql.jdbc.Driver
      url=jdbc:mysql:///webbookstore
      username=root
      password=sorry
      ```
    
      5.4 业务逻辑服务层 service
    
      ```java
      package com.ambow.service;
      
      import java.util.List;
      
      import com.ambow.commons.Page;
      import com.ambow.entity.Book;
      import com.ambow.entity.Category;
      
      public interface BusinessService {
      
      	/*-------------------图书分类逻辑--------------------*/
      	/**
      	 * 添加分类
      	 * @param category
      	 */
      	void addCategory(Category category);
      	
      	/**
      	 * 查询所有分类
      	 * @return 没找到返回null
      	 */
      	List<Category> findAllCategories();
      
      	/**
      	 * 根据主键查找主键
      	 * @param categoryId
      	 * @return 没找到返回null
      	 */
      	Category findCategoryById(String categoryId);
      }
      ```
    

     Service 实现类
    
      ```java
      package com.ambow.service.impl;
      
      import java.util.List;
      import java.util.UUID;
      
      import com.ambow.commons.Page;
      import com.ambow.dao.BookDao;
      import com.ambow.dao.CategoryDao;
      import com.ambow.dao.impl.BookDaoImpl;
      import com.ambow.dao.impl.CategoryDaoImpl;
      import com.ambow.entity.Book;
      import com.ambow.entity.Category;
      import com.ambow.service.BusinessService;
      /**
       * 业务逻辑接口的实现类
       * @author Mryang
       *
       */
      public class BusinessServiceImpl implements BusinessService {
      	
      	CategoryDao categoryDao = new CategoryDaoImpl();
      	BookDao bookDao = new BookDaoImpl();
      	
      	/*-------------------图书分类逻辑--------------------*/
      	@Override
      	public void addCategory(Category category) {
      		category.setId(UUID.randomUUID().toString());
      		categoryDao.save(category);
      	}
      
      	@Override
      	public List<Category> findAllCategories() {
      		return categoryDao.getAllCategories();
      	}
      
      	@Override
      	public Category findCategoryById(String categoryId) {
      		return categoryDao.getCategoryById(categoryId);
      }
      ```
    

      5.5 控制器 servlet
    
      ```java
      package com.ambow.controller;
      
      import java.io.File;
      import java.io.FileOutputStream;
      import java.io.FileReader;
      import java.io.IOException;
      import java.io.InputStream;
      import java.io.ObjectOutputStream;
      import java.io.OutputStream;
      import java.io.Reader;
      import java.lang.reflect.InvocationTargetException;
      import java.nio.channels.FileChannel;
      import java.util.List;
      import java.util.UUID;
      
      import javax.servlet.ServletException;
      import javax.servlet.http.HttpServlet;
      import javax.servlet.http.HttpServletRequest;
      import javax.servlet.http.HttpServletResponse;
      
      import org.apache.commons.beanutils.BeanUtils;
      import org.apache.commons.fileupload.FileItem;
      import org.apache.commons.fileupload.FileItemIterator;
      import org.apache.commons.fileupload.FileItemStream;
      import org.apache.commons.fileupload.FileUploadException;
      import org.apache.commons.fileupload.disk.DiskFileItemFactory;
      import org.apache.commons.fileupload.servlet.ServletFileUpload;
      import org.apache.commons.fileupload.util.FileItemHeadersImpl;
      import org.apache.commons.fileupload.util.Streams;
      import org.apache.commons.io.FilenameUtils;
      
      import com.ambow.commons.Page;
      import com.ambow.entity.Book;
      import com.ambow.entity.Category;
      import com.ambow.service.BusinessService;
      import com.ambow.service.impl.BusinessServiceImpl;
      import com.ambow.util.FilePathUtil;
      import com.ambow.util.FillBeanUtils;
      
      public class ControlServlet extends HttpServlet {
      
      	private static final long serialVersionUID = 1L;
      	
      	BusinessService service = new BusinessServiceImpl();
      	
      	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      				
      		String  op = request.getParameter("op");
              
      		if("addCategory".equals(op)){
      			addCategory(request, response);
      		}else if("showAllCategories".equals(op)){
      			showAllCategories(request, response);
      		}else if("showAllBooks".equals(op)){
      			showAllBooks(request, response);
      		}
      		else{
      			System.out.println("error");
      		}
      }
      	/***************************图书分类**********************************/
      	/**
      	 * 查询所有分类
      	 * @param request
      	 * @param response
      	 * @throws ServletException
      	 * @throws IOException
      	 */
      	public void showAllCategories(HttpServletRequest request, HttpServletResponse response) 
      			throws ServletException, IOException {
      		List<Category> categoryList = service.findAllCategories();
      		request.setAttribute("categoryList", categoryList);
      		request.getRequestDispatcher("/admin/listCategory.jsp").forward(request, response);
      		
      		
      		
      	}
      
      	/**
      	 * 添加分类
      	 * @param request
      	 * @param response
      	 * @throws ServletException
      	 * @throws IOException
      	 */
      	public void addCategory(HttpServletRequest request, HttpServletResponse response)
      			throws ServletException, IOException {
      		Category category = FillBeanUtils.fillBean(request,Category.class);
      		service.addCategory(category);
      		request.setAttribute("msg", "保存成功");
      		request.getRequestDispatcher("/message.jsp").forward(request, response);
      	}
      
      	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      
      		doGet(request, response);
      	}
      }
      ```
    
      5.6 工具类 封装对象的工具类:FillBeanUtils
    
      ```java
      package com.ambow.util;
      
      import javax.servlet.http.HttpServletRequest;
      
      import org.apache.commons.beanutils.BeanUtils;
      
      /**
       * 使用自定义泛型进行封装JavaBean
       * @author Mryang
       */
      public class FillBeanUtils {
      
      	public static <T> T fillBean(HttpServletRequest request, Class<T> clazz) {
      		
      		 try {
      			T bean  = clazz.newInstance();
      			BeanUtils.copyProperties(bean, request.getParameterMap());
      			return bean;
      		} catch (Exception e) {
      			throw new RuntimeException(e);
      		}		
      	}
      }
      ```
    
      5.7 前台页面: jsp
    
      		注: 在WebRoot下创建文件夹 命名为admin,在admin下创建jsp:index.jsp
    
      ```jsp
      <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
      <%@ include file="/admin/header.jsp"%>
      <br />
      <h2>欢迎光临趣读书屋</h2>
      </body>
      </html>
      
      ```
    
      在admin下创建jsp:header.jsp
    
      ```jsp
      <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
      <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
      
      <%
      	String path = request.getContextPath();
      	String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
      			+ path + "/";
      	pageContext.setAttribute("basePath", basePath);
      %>
      
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
      <html>
      <head>
      
      <title>趣读书屋后台管理</title>
      
      <meta http-equiv="pragma" content="no-cache">
      <meta http-equiv="cache-control" content="no-cache">
      <meta http-equiv="expires" content="0">
      <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
      <meta http-equiv="description" content="This is my page">
      <link rel="stylesheet" type="text/css" href="${basePath}css/main.css">
      
      </head>
      
      <body>
      	<br />
      	<br />
      	<h1>趣读书屋后台管理</h1>
      	<br />
      	<a href="${basePath}admin/addCategory.jsp">添加分类</a>
      	<a href="${basePath}servlet/ControlServlet?op=showAllCategories">查询分类</a>
      	<a href="">添加书籍</a>
      	<a href="">查询书籍</a>
      	<a href="">待处理订单</a>
      	<a href="">已处理订单</a>
      	<br />
      	<hr/>
      </body>
      </html>
      
      ```
    

      addCategory.jsp
    
      ```jsp
      <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
      <%@ include file="/admin/header.jsp"%>
      <form action="${basePath}/servlet/ControlServlet?op=addCategory"
      	method="post">
      	<table border="1px" width="438px">
      		<tr>
      			<td>添加分类</td>
      			<td><input type="text" name="name"></td>
      		</tr>
      		<tr>
      			<td>查询分类</td>
      			<td><textarea rows="3" cols="38" name="description"></textarea>
      			</td>
      		</tr>
      		<tr>
      			<td colspan="2"><input type="submit" value="保  存"></td>
      		</tr>
      	</table>
      </form>
      </body>
      </html>
      ```
    

      查询分页:listCategory.jsp
    
      ```jsp
      <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
      <%@ include file="/admin/header.jsp"%>
      <br />
      <table border="1" width="438">
      	<tr>
      		<th>选择</th>
      		<th>分类名称</th>
      		<th>分类描述</th>
      		<th>操作</th>
      	</tr>
      	<c:forEach items="${categoryList}" var="cl" varStatus="vcl">
      		<tr class="${vcl.index%2==0?'odd':'even' }">
      			<td><input type="checkbox" name="ids" value="${cl.id}">
      			</td>
      			<td>${cl.name }</td>
      			<td>${cl.description }</td>
      			<td>
                      <a href="javascript:alert('略')">修改</a> 
                      <a href="javascript:alert('略')">删除</a>
                  </td>
      		</tr>
      	</c:forEach>
      </table>
      <br />
      </body>
      </html>
      ```
    
      注: 在WebRoot下创建jsp:message.jsp
    
      ```jsp
      <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
      <%@ include file="/admin/header.jsp" %>	
       	<h1>
       	${msg }
       	</h1>
        </body>
      </html>
      ```
    

      5.8 在WebRoot下创建一个文件夹,命名为css,在css下创建一个文件,命名为main.css
    
      ```css
      @CHARSET "UTF-8";
      body{
      	font-size: 12px;
      	text-align: center;
      }
      table{
      	font-size: 12px;
      	 margin:  0 auto;
      }
      .odd{
      	background-color: f3c3f3;
      }
      .even{
      	background-color: c3f3c3;
      }
      	
      ```
    

    6. 运行项目
    7. 效果

    Mryang制作

    8.下载

    https://github.com/yangsir1688/jlnk-school/tree/master/BookStore-teach

    作者: 杨校

    出处: https://blog.csdn.net/kese7952

    分享是快乐的,也见证了个人成长历程,文章大多都是工作经验总结以及平时学习积累,基于自身认知不足之处在所难免,也请大家指正,共同进步。

    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 如有问题, 可邮件(397583050@qq.com)咨询

    展开全文
  • 我们小组三个人所确定所做的项目为酒店管理系统 由于学习资源以及时间有限,我们所选择所做的项目准确来说算是“酒店后台管理系统” 用户的基本需求大致如下 住房管理: 房间预定管理:顾客信息填写,预定可入住...

    酒店管理系统

    我们小组三个人所确定所做的项目为酒店管理系统
    由于学习资源以及时间有限,我们所选择所做的项目准确来说算是“酒店后台管理系统”

    用户的基本需求大致如下

    • 住房管理:

      • 房间预定管理:顾客信息填写,预定可入住房间
      • 入住登记管理:顾客信息填写,安排可入住房间
      • 账单结算管理:账单信息更新
    • 房间管理:

    • 房型管理:基本的房间添加,删除以及改查操作

    • 房间设置管理 :对房间进行基本设置

    • 系统管理:

    • 员工管理

    • 顾客管理

    我们所采取的开发模式是快速开发模式,即先建立一个满足用户主要需求的原型系统,通过实践不断修改,直到满足用户的需求为止。


    由于现阶段缺乏项目开发经验,我们在一边学习框架的同时,不断借鉴别人项目采取合适的技术

    展开全文
  • 2016年9月 javaweb实训项目

    千次阅读 2017-03-16 16:52:46
    项目简介:此项目为大三开学的一个实训项目,运用mybatis构建的一个简单网站。 部分源码:http://pan.baidu.com/s/1i48RuK1
  • 记得先点蓝字关注我哦~2020年12月11日早上8时30分,宁夏大学智能工程与技术学院2017级NIIT专业综合实训项目答辩评审在中卫校区一号教学楼顺利开展。智工学院院长王怀柱、副院长马强、NIIT中国大区技术总监李经纬、...
  • 1,下拉框 2,传值
  • 项目脚手架的作用:脚手架提供的都是普遍意义上的最佳实践,但是我在开发中发现,随着业务的不断发展,必然会出现需要针对业务开发的实际情况来进行调整。例如:通过调整插件与配置实现 Webpack 打包性能优化后删除...
  • javaweb实训总结javaweb实训总结实训已经进行两周多了,还有一周就要正式结束了,突然发现自己似乎又重蹈覆辙了,再一次一次的不经意中和某些人的就距离却是越来越来大,总是想偷一下懒,总是想着马马虎虎过去算了,...
  • jsp+servlet+mysql论坛项目实训总结实训人:程路峰学号通过为期10天的实训,我学习了很多关于javaweb的知识。在老师的正确指导下,顺利的完成了我的实训内容。在此,也有同学的帮助,在他们的帮助下我也受益匪浅。...
  • 天津工业大学软件 0918 班五组微博系统开发文档 微博系统实训项目设计 基于 JSP 技术的微博设计与实现 Mail 项目小组 组员刘金兰白皓程清许啸王正辉 1 天津工业大学软件 0918 班五组微博系统开发文档 第一章 绪论 ...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 150
精华内容 60
关键字:

javaweb实训项目

java 订阅