Javaweb8==未实现前后端分离的列表展示、新增、删除、修改功能。 servlet(逻辑处理,封装数据进域对象,转发到jsp)+jsp(el表达式获取域对象中的数据+JSTL替换if for)。

 最终环境配置:

IDEA2021+JDK8+mysql connector java5+Mysql5+mybatis3.5:从数据库取出数据。

+(servlet+jsp+el表达式jstl):servlet+jsp接收HTTP请求和响应将取出的数据形成页面代码并传递到浏览器,el可以避免书写<%%>加快书写,jstl提供的c:if c:foreach进一步加快书写。

tomcat7插件+html5+css3+chorme:

=========================================================================

        在文章“Javaweb8==实现前后端分离的登录注册功能。前端html+ajax”中,可以看到,页面的内容只有少部分必要的数据传递到后端进行处理,后端处理完后,也只是给前端返回一个简单的字符串就可以了。这种前后端分离的模式,能降低后端的代码量。而且前端页面放在前端服务器上,可以分成两拨人来写。

        但有时候要求后端人员将页面一起写了,为了减少参数的传递,可以参用这种方式:即登录界面由后端传往浏览器,收到账户名密码验证之后再传一个完整的界面去浏览器。

        如上,需要后端响应的时候,直接响应一个页面的数据给前端,包括页面的所有标签和内容,比如返回一个a.html,之前通过协议+IP+端口+a.html就是这个原理。但是这样返回去只是静态的a.html。那如果我想要返回一个页面给前端,这个页面不止包含静态的,还要包含动态获取到的数据,比如a.html这个页面已经写完了,返回的时候后端要在页面上额外加上一个字符串,这个字符串是从数据库中查出来的。

        有两种实现方法:一是直接在HttpServlet子类中write整个页面的数据,包含<html>和<p>这种标签,以及write从数据库中查出来的内容,如下:

         第二种方式是使用jsp技术简化方式一。用jsp技术需要将页面的后缀写成.jsp,同时需要一个依赖包,tomcat中也内置了这个依赖包,tomcat依靠这个依赖包会将后缀为.jsp的文件编译成一个Servlet,底层还是按方式一的方式实现。

        访问http://localhost:8090/jsp/hello.jsp等同于方位一个叫做hello的servlet。web服务器tomcat收到上述路径的请求后,会直接去执行hello_jsp这个继承了HttpServlet的类。所以,编写一个a.jsp页面就等同于编写了一个webservlet("/a")标注的HttpServlet子类。

============================================================

纯JSP示例=========================================================

hello.jsp

<html>
<body>
<h2>Hello World!</h2>
<%--放入_jspService()中作为局部变量或者直接执行--%>
<%
    System.out.println("nihao");
    int i = 10;
%>

<%--放入_jspService()中的 out.write();中直接写入输出流中--%>
<%="1234567890"%>

<%--放入hello_jsp类中,作为成员变量--%>
<%!int b = 100;%>

<%=(b + 30)%>
</body>
</html>

 

 

 pom.xml

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.example</groupId>
  <artifactId>10jspdemo1</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <name>10jspdemo1 Maven Webapp</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.2</version>
    <scope>provided</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <!--Tomcat插件 -->
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
          <port>8090</port><!--访问端口号 -->
          <!--项目访问路径
           未配置访问路径: http://localhost:8080/demoweb/a.html
           配置/后访问路径: http://localhost:80/a.html
                  如果配置成 /hello,访问路径会变成什么?
                  答案: http://localhost:80/hello/a.html
                  -->
          <path>/jsp</path>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

=========================================================

============================================================

 servlet+JSP+EL表达式示例 ${brands} =========================================================

 

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.example</groupId>
  <artifactId>10jspdemo1</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <name>10jspdemo1 Maven Webapp</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <dependency>

      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.2</version>
    <scope>provided</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <!--Tomcat插件 -->
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
          <port>8090</port><!--访问端口号 -->
          <!--项目访问路径
           未配置访问路径: http://localhost:8080/demoweb/a.html
           配置/后访问路径: http://localhost:80/a.html
                  如果配置成 /hello,访问路径会变成什么?
                  答案: http://localhost:80/hello/a.html
                  -->
          <path>/jsp</path>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
package com.ldj.contrller;

import com.ldj.pojo.TbBrand;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

@WebServlet("/TestServletJsp")
public class TestServletJsp extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 查询数据库
        List<TbBrand> brands = new ArrayList<TbBrand>();
        brands.add(new TbBrand(1, "三只松鼠", "三只松鼠", 100, "三只松鼠,好吃不上火", 1));
        brands.add(new TbBrand(2, "优衣库", "优衣库", 200, "优衣库,服适人生", 0));
        brands.add(new TbBrand(3, "小米", "小米科技有限公司", 1000, "为发烧而生", 1));
        System.out.println(brands);

        //设置域对象
        request.setAttribute("brands", brands);
        //请求转发
        request.getRequestDispatcher("/TestServletJspShow.jsp").forward(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }
}
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<p>"设置某个jsp页面使用el表达式,需要在jsp页面加上(控制单个页面)
    <@ page isELIgnored="false">"</p>
<%--检查了代码无误后,估计是EL本身的问题。在网上找到了解决办法,在dynaactionform.jsp文件中头部加上:<%@ page isELIgnored="false"%>。正确显示结果。故提出来备忘。之前大量的符合jsp1.2标准的项目中用到了${***},比如${1+2},但本意就是想显示${1+2},而不是3,所以应该有控制是否解析el表达式的选项,我觉得分为三个级别:
1、设置整个应用服务器下的所有项目是否解析el表达式(控制所有项目)
2、设置整个项目使用el表达式,需要在web.xml中加上 (控制一个项目)
<jsp-config>
<jsp-property-group>
<el-ignored>false</el-ignored>
</jsp-property-group>
</jsp-config>
3、设置某个jsp页面使用el表达式,需要在jsp页面加上(控制单个页面)
<%@ page isELIgnored="false"%>--%>
<p>测试servlet+jsp,用EL表达式减少在jsp页面中写代码,并增加可读性</p>
${brands}
</body>
</html>

============================================================

 servlet+JSP+EL表达式(简化jsp页面java参数获取)+JSTL(简化jsp页面java语句书写)标签完整实现题目所提的要求:示例如下=========================================================

JavaEE-JSP基础-EL表达式和JSTL标签库(Taglibs)_http://lioil.win-CSDN博客EL表达式和JSTL标签库: 在JSP页面代替java代码,便于编写一.EL表达式作用: ${} 简化脚本表达式 j2ee1.4以前版本需指定j2ee1.4以后版本默认支持EL表达式1.EL内置对象EL内置11个对象,不需定义可直接使用 pageScope 获取page域属性组成的MaprequestScope 获取reqeust域属性组成的https://blog.csdn.net/qq_32115439/article/details/54685786

======================================================================

项目结构:

 建表SQL,数据库名db1,密码1234

/*
Navicat MySQL Data Transfer

Source Server         : ldj
Source Server Version : 50724
Source Host           : localhost:3306
Source Database       : db1

Target Server Type    : MYSQL
Target Server Version : 50724
File Encoding         : 65001

Date: 2021-10-28 09:51:59
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for tb_brand
-- ----------------------------
DROP TABLE IF EXISTS `tb_brand`;
CREATE TABLE `tb_brand` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `brand_name` varchar(20) DEFAULT NULL,
  `company_name` varchar(20) DEFAULT NULL,
  `ordered` int(11) DEFAULT NULL,
  `description` varchar(100) DEFAULT NULL,
  `status` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of tb_brand
-- ----------------------------
INSERT INTO `tb_brand` VALUES ('4', '凡人修仙传0', '公司0', '222', '描述0', '1');
INSERT INTO `tb_brand` VALUES ('5', '凡人修仙传1', '公司1', '222', '描述1', '1');
INSERT INTO `tb_brand` VALUES ('6', '凡人修仙传2', '公司2', '222', '描述2', '1');
INSERT INTO `tb_brand` VALUES ('7', '凡人修仙传3', '公司3', '222', '描述3', '1');
INSERT INTO `tb_brand` VALUES ('8', '凡人修仙传4', '公司4', '222', '描述4', '1');
INSERT INTO `tb_brand` VALUES ('9', '凡人修仙传5', '公司5', '222', '描述5', '1');
INSERT INTO `tb_brand` VALUES ('10', '凡人修仙传6', '公司6', '222', '描述6', '1');
INSERT INTO `tb_brand` VALUES ('11', '凡人修仙传7', '公司7', '222', '描述7', '1');
INSERT INTO `tb_brand` VALUES ('12', '凡人修仙传8', '公司8', '222', '描述8', '1');
INSERT INTO `tb_brand` VALUES ('13', '凡人修仙传9', '公司9', '222', '描述9', '1');
INSERT INTO `tb_brand` VALUES ('17', '6666北京', '9999被禁', '999', '9999999999成都', '1');

pom.xml

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.example</groupId>
  <artifactId>10jspdemo</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <name>10jspdemo Maven Webapp</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

  <dependencies>

<!--    数据库连接依赖包-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.5</version>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.34</version>
    </dependency>

<!--    处理请求和响应的依赖包-->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.2</version>
      <scope>provided</scope>
    </dependency>
<!--简化.jsp文件书写的依赖包, 如果不使用JSTL1.0标签,可以忽略taglibs包-->
    <dependency>
      <groupId>jstl</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>
    <dependency>
      <groupId>taglibs</groupId>
      <artifactId>standard</artifactId>
      <version>1.1.2</version>
    </dependency>
<!--    测试依赖包-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <!--Tomcat插件 -->
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
          <port>8090</port><!--访问端口号 -->
          <!--项目访问路径
           未配置访问路径: http://localhost:8080/demoweb/a.html
           配置/后访问路径: http://localhost:80/a.html
                  如果配置成 /hello,访问路径会变成什么?
                  答案: http://localhost:80/hello/a.html
                  -->
          <path>/jsp</path>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
实体类TbBrand
package com.ldj.pojo;

public class TbBrand {
    private Integer id;

    private String brandName;

    private String companyName;

    private Integer ordered;

    private String description;

    private Integer status;

    @Override
    public String toString() {
        return "TbBrand{" +
                "id=" + id +
                ", brandName='" + brandName + '\'' +
                ", companyName='" + companyName + '\'' +
                ", ordered=" + ordered +
                ", description='" + description + '\'' +
                ", status=" + status +
                '}';
    }

    public TbBrand() {
    }

    public TbBrand(Integer id, String brandName, String companyName, Integer ordered, String description, Integer status) {
        this.id = id;
        this.brandName = brandName;
        this.companyName = companyName;
        this.ordered = ordered;
        this.description = description;
        this.status = status;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getBrandName() {
        return brandName;
    }

    public void setBrandName(String brandName) {
        this.brandName = brandName;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public Integer getOrdered() {
        return ordered;
    }

    public void setOrdered(Integer ordered) {
        this.ordered = ordered;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }
}
TbBrandMapper
package com.ldj.mapper;

import com.ldj.pojo.TbBrand;

import java.util.List;

public interface TbBrandMapper {
    List<TbBrand> selectTbBrandsAll();

    int deleteByPrimaryKey(Integer id);

    int insert(TbBrand record);

    int insertSelective(TbBrand record);

    TbBrand selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(TbBrand record);

    int updateByPrimaryKey(TbBrand record);

}

TbBrandMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ldj.mapper.TbBrandMapper">
    <resultMap id="BaseResultMap" type="com.ldj.pojo.TbBrand">
        <!--@Table tb_brand-->
        <id column="id" jdbcType="INTEGER" property="id"/>
        <result column="brand_name" jdbcType="VARCHAR" property="brandName"/>
        <result column="company_name" jdbcType="VARCHAR" property="companyName"/>
        <result column="ordered" jdbcType="INTEGER" property="ordered"/>
        <result column="description" jdbcType="VARCHAR" property="description"/>
        <result column="status" jdbcType="INTEGER" property="status"/>
    </resultMap>
    <sql id="Base_Column_List">
        id,
        brand_name,
        company_name,
        ordered,
        description,
        `status`
    </sql>
    <!--查询所有用户-->
    <select id="selectTbBrandsAll" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List"/>
        from tb_brand;
    </select>
    <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List"/>
        from tb_brand
        where id = #{id,jdbcType=INTEGER}
    </select>
    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
        delete
        from tb_brand
        where id = #{id,jdbcType=INTEGER}
    </delete>
    <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.ldj.pojo.TbBrand" useGeneratedKeys="true">
        insert into tb_brand (brand_name, company_name, ordered,
                              description, `status`)
        values (#{brandName,jdbcType=VARCHAR}, #{companyName,jdbcType=VARCHAR}, #{ordered,jdbcType=INTEGER},
                #{description,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER})
    </insert>
    <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.ldj.pojo.TbBrand"
            useGeneratedKeys="true">
        insert into tb_brand
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="brandName != null">
                brand_name,
            </if>
            <if test="companyName != null">
                company_name,
            </if>
            <if test="ordered != null">
                ordered,
            </if>
            <if test="description != null">
                description,
            </if>
            <if test="status != null">
                `status`,
            </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="brandName != null">
                #{brandName,jdbcType=VARCHAR},
            </if>
            <if test="companyName != null">
                #{companyName,jdbcType=VARCHAR},
            </if>
            <if test="ordered != null">
                #{ordered,jdbcType=INTEGER},
            </if>
            <if test="description != null">
                #{description,jdbcType=VARCHAR},
            </if>
            <if test="status != null">
                #{status,jdbcType=INTEGER},
            </if>
        </trim>
    </insert>
    <update id="updateByPrimaryKeySelective" parameterType="com.ldj.pojo.TbBrand">
        update tb_brand
        <set>
            <if test="brandName != null">
                brand_name = #{brandName,jdbcType=VARCHAR},
            </if>
            <if test="companyName != null">
                company_name = #{companyName,jdbcType=VARCHAR},
            </if>
            <if test="ordered != null">
                ordered = #{ordered,jdbcType=INTEGER},
            </if>
            <if test="description != null">
                description = #{description,jdbcType=VARCHAR},
            </if>
            <if test="status != null">
                `status` = #{status,jdbcType=INTEGER},
            </if>
        </set>
        where id = #{id,jdbcType=INTEGER}
    </update>
    <update id="updateByPrimaryKey" parameterType="com.ldj.pojo.TbBrand">
        update tb_brand
        set brand_name   = #{brandName,jdbcType=VARCHAR},
            company_name = #{companyName,jdbcType=VARCHAR},
            ordered      = #{ordered,jdbcType=INTEGER},
            description  = #{description,jdbcType=VARCHAR},
            `status`     = #{status,jdbcType=INTEGER}
        where id = #{id,jdbcType=INTEGER}
    </update>
</mapper>

SqlMapConfig.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--以上是mybatis的config.xml文件的约束-->
<!--mybatis的主配置文件-->
<configuration>
    <!--引入外部properties文件  -->
    <properties resource="db.properties"></properties>
    <!--配置环境,default处的值是自定义的,但是id值必须和default值相同-->
    <environments default="mysql">
        <environment id="mysql">
            <!--配置事务的类型-->
            <transactionManager type="JDBC"></transactionManager>
            <!--配置数据源(连接池)-->
            <dataSource type="POOLED">
                <!--配置连接数据库的4个基本信息-->
                <property name="driver" value="${jdbc.driverClass}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>
    <!--指定映射文件的位置,映射配置文件指的是每个dao独立的配置文件,resource指定文件的位置-->
    <mappers>
<!--        <mapper resource="com/ldj/mapper/TbBrandMapper.xml"/>-->
        <package name="com.ldj.mapper"/>
    </mappers>
</configuration>

db.properties

jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/db1?characterEncoding=utf-8
jdbc.username=root
jdbc.password=1234
TbBrandService
package com.ldj.service;

import com.ldj.mapper.TbBrandMapper;
import com.ldj.pojo.TbBrand;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class TbBrandService {
    private TbBrandMapper tbBrandMapper;

    public TbBrandService() throws IOException {
        //1.读取配置文件,连接数据库的信息
        InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
        //2.创建SqlSessionFactory工厂,有了工厂可以生产和操作对象
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        SqlSessionFactory factory = builder.build(in);
        //3.使用工厂生产SqlSession对象,可以操作数据库!!!注意事务!!!
        SqlSession session = factory.openSession(true);
        //4.使用SqlSesssion创建Dao接口的代理对象,使用代理对象(为了不去创建IUserDao的实现类,使用动态代理对象)
        tbBrandMapper = session.getMapper(TbBrandMapper.class);
        //5.调用方法
    }

    public int deleteByPrimaryKey(Integer id) {
        return tbBrandMapper.deleteByPrimaryKey(id);
    }


    public int insert(TbBrand record) {
        return tbBrandMapper.insert(record);
    }


    public int insertSelective(TbBrand record) {
        return tbBrandMapper.insertSelective(record);
    }


    public TbBrand selectByPrimaryKey(int id) {
        return tbBrandMapper.selectByPrimaryKey(id);
    }

    public List<TbBrand> selectTbBrandsAll() {
        return tbBrandMapper.selectTbBrandsAll();
    }


    public int updateByPrimaryKeySelective(TbBrand record) {
        return tbBrandMapper.updateByPrimaryKeySelective(record);
    }


    public int updateByPrimaryKey(TbBrand record) {
        return tbBrandMapper.updateByPrimaryKey(record);
    }

}
AddOneBrandServlet
package com.ldj.web;

import com.ldj.pojo.TbBrand;
import com.ldj.service.TbBrandService;

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.nio.charset.StandardCharsets;
import java.util.List;

@WebServlet("/AddOneBrandServlet")
public class AddOneBrandServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("收到了添加请求");

//        String brandName = request.getParameter("brandName");
//        String companyName = request.getParameter("companyName");
//        String ordered = request.getParameter("ordered");
//        String description = request.getParameter("description");
//        String status = request.getParameter("status");

        String brandName = new String(request.getParameter("brandName").getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
        String companyName = new String(request.getParameter("companyName").getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
        Integer ordered = Integer.valueOf(new String(request.getParameter("ordered").getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8));
        String description = new String(request.getParameter("description").getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
        Integer status = Integer.valueOf(new String(request.getParameter("status").getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8));

        TbBrand tbBrand = new TbBrand();
        tbBrand.setBrandName(brandName);
        tbBrand.setCompanyName(companyName);
        tbBrand.setOrdered(ordered);
        tbBrand.setDescription(description);
        tbBrand.setStatus(status);
        System.out.println("收到的添加信息" + tbBrand);

        TbBrandService tbBrandService = new TbBrandService();
        int insert = tbBrandService.insert(tbBrand);
        System.out.println(insert);
        request.getRequestDispatcher("/SelectAllServlet").forward(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }
}
DeleteOneBrandServlet
package com.ldj.web;

import com.ldj.service.TbBrandService;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;

@WebServlet("/deleteOneBrandServlet")
public class DeleteOneBrandServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("收到条删除请求");
        String id = request.getParameter("id");
        System.out.println(id);

        TbBrandService tbBrandService = new TbBrandService();
        tbBrandService.deleteByPrimaryKey(Integer.valueOf(id));
        request.getRequestDispatcher("/SelectAllServlet").forward(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }
}
SelectAllServlet
package com.ldj.web;

import com.ldj.pojo.TbBrand;
import com.ldj.service.TbBrandService;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.util.List;

@WebServlet("/SelectAllServlet")
public class SelectAllServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        TbBrandService tbBrandService = new TbBrandService();
        List<TbBrand> tbBrands = tbBrandService.selectTbBrandsAll();
        System.out.println(tbBrands);

        request.setAttribute("brands", tbBrands);
        request.getRequestDispatcher("/brand.jsp").forward(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }
}
SelectOneBrandByIdServlet
package com.ldj.web;

import com.ldj.pojo.TbBrand;
import com.ldj.service.TbBrandService;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;

@WebServlet("/selectOneBrandByIdServlet")
public class SelectOneBrandByIdServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("收到了查询一条的请求");
        String id = request.getParameter("id");
        System.out.println(id);
        TbBrandService tbBrandService = new TbBrandService();
        TbBrand tbBrand = tbBrandService.selectByPrimaryKey(Integer.parseInt(id));
        System.out.println("想要更改的数据:"+tbBrand);

        request.setAttribute("brand", tbBrand);
        request.getRequestDispatcher("/update.jsp").forward(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }
}
UpdateOneBrandServlet
package com.ldj.web;

import com.ldj.pojo.TbBrand;
import com.ldj.service.TbBrandService;

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.nio.charset.StandardCharsets;
import java.util.List;

@WebServlet("/updateOneBrandServlet")
public class UpdateOneBrandServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("收到了修改请求");
        Integer id = Integer.valueOf(new String(request.getParameter("id").getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8));
        String brandName = new String(request.getParameter("brandName").getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
        String companyName = new String(request.getParameter("companyName").getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
        Integer ordered = Integer.valueOf(new String(request.getParameter("ordered").getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8));
        String description = new String(request.getParameter("description").getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
        Integer status = Integer.valueOf(new String(request.getParameter("status").getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8));
        System.out.println(brandName);

        TbBrand tbBrand = new TbBrand(id, brandName, companyName, ordered, description, status);
        TbBrandService tbBrandService = new TbBrandService();
        int i = tbBrandService.updateByPrimaryKey(tbBrand);
        System.out.println(i);
        request.getRequestDispatcher("/SelectAllServlet").forward(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }
}

addBrand.jsp

<%--
  Created by IntelliJ IDEA.
  User: ldj
  Date: 2021/10/27
  Time: 18:03
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <meta charset="UTF-8">
    <title>添加品牌</title>
</head>
<body>
<h3>添加品牌</h3>
<form action="/jsp/AddOneBrandServlet" method="post">
    品牌名称:<input name="brandName"><br>
    企业名称:<input name="companyName"><br>
    排序:<input name="ordered"><br>
    描述信息:<textarea rows="5" cols="20" name="description"></textarea><br>
    状态:
    <input type="radio" name="status" value="0">禁用
    <input type="radio" name="status" value="1">启用<br>

    <input type="submit" value="提交">
</form>
</body>
</html>

brand.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>更新一条数据</title>
    <style>
        .table {
            border: 1px solid #000000;
            border-collapse: collapse;
            width: 80%;
            margin: auto;
        }

        .table th {
            border: 1px solid #000000;
            border-collapse: collapse;
            text-align: center;
            vertical-align: middle !important;
        }

        .table td {
            border: 1px solid #000000;
            border-collapse: collapse;
            text-align: center;
            vertical-align: middle !important;
        }

        .input {
            background-color: red;
            height: 100px;
            width: 100px;
        }
    </style>
</head>

<body>
<input class="input" type="button" value="新增" onclick='location.href=("/jsp/addBrand.jsp")'/>
<hr>
<table class="table">
    <tr>
        <th>序号</th>
        <th>品牌名称</th>
        <th>企业名称</th>
        <th>排序</th>
        <th>品牌介绍</th>
        <th>状态</th>
        <th>操作</th>
    </tr>
    <c:forEach items="${brands}" var="brand">
        <tr>
            <td>${brand.id}</td>
            <td>${brand.brandName}</td>
            <td>${brand.companyName}</td>
            <td>${brand.ordered}</td>
            <td>${brand.description}</td>
            <td>${brand.status}</td>
            <td>
                <button onclick="window.location.href='/jsp/selectOneBrandByIdServlet?id='+${brand.id}"
                        type="button"
                        name="1" id="1">修改
                </button>
                <button onclick="window.location.href='/jsp/deleteOneBrandServlet?id='+${brand.id}" type="button"
                        name="2" id="2">删除
                </button>
            </td>

        </tr>
    </c:forEach>
</table>
</body>
</html>

update.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>更新一条数据</title>
</head>
<body>
${brand}
<h3>更新品牌的品牌原信息如上</h3>
<form action="/jsp/updateOneBrandServlet" method="post">
    <input type="hidden" name="id" value=${brand.id}>
    品牌名称:<input name="brandName" value=${brand.brandName}><br>
    企业名称:<input name="companyName" value=${brand.companyName}><br>
    排序:<input name="ordered" value=${brand.ordered}><br>
    描述信息:<textarea rows="5" cols="20" name="description" id="description">${brand.description}</textarea><br>
    状态:
    <c:if test="${brand.status == 0}">
        <input type="radio" name="status" value="0" checked>禁用
        <input type="radio" name="status" value="1">启用<br>
    </c:if>
    <c:if test="${brand.status == 1}">
        <input type="radio" name="status" value="0">禁用
        <input type="radio" name="status" value="1" checked>启用<br>
    </c:if>
    <input type="submit" value="提交">
</form>
<br>
</body>
</html>

UpdateOneBrand.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>修改</title>
</head>
<body>
<P>修改界面</P>
<%--隐藏域,提交id--%>
${brand.id}
<input type="hidden" name="id" value="${brand.id}">
<input name="id" value="${brand.id}">想要修改的ID
<form action="/jsp/AddOneBrandServlet" method="post">
    品牌名称:<input name="brandName"><br>
    企业名称:<input name="companyName"><br>
    排序:<input name="ordered"><br>
    描述信息:<textarea rows="5" cols="20" name="description"></textarea><br>
    状态:
    <input type="radio" name="status" value="0">禁用
    <input type="radio" name="status" value="1">启用<br>
    <input type="submit" value="提交">
</form>
</body>
</html>

web.xml

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
</web-app>

=============================================================

接口:

首页:http://localhost:8090/jsp/SelectAllServlet

新增:http://localhost:8090/jsp/addBrand.jsp

修改:http://localhost:8090/jsp/selectOneBrandByIdServlet?id=4 

 删除:http://localhost:8090/jsp/deleteOneBrandServlet

演示效果:

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值