JavaWeb核心、综合案例(详细!Web开发流程)

这篇具有很好参考价值的文章主要介绍了JavaWeb核心、综合案例(详细!Web开发流程)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

案例说明

一、创建MavenWeb项目

二、导入相关依赖

1、导入maven编译插件

2、导入tomacat插件

3、导入servlet依赖

4、导入druid数据库连接池依赖

5、导入mysql依赖

6、导入mybatis依赖

7、导入junit依赖

8、导入mybatis核心配置文件mybatis-config.xml

三、使用Mapper代理

导入MySql映射文件 XXXMapper.xml

 创建mapper接口

四、IDEA配置tomcat

五、创建数据库

六、开始编码

1、创建实体类User

 2、在mapper接口中定义用户操作

3、在mapper接口对应的SQL映射文件创建SQL语句

4、创建一个工具类

5、创建servlet包,处理登陆注册的业务逻辑

登陆操作:

注册操作:

七、项目展示


个人博客欢迎访问 ---  猿客栈

案例说明

完成用户登录和用户注册逻辑,与后端数据库联系

javaweb项目案例,JavaWeb笔记,java,servlet,mybatis,mysql

一、创建MavenWeb项目

点击新建模块,勾选使用骨架快速搭建。

javaweb项目案例,JavaWeb笔记,java,servlet,mybatis,mysql

二、导入相关依赖

在pom.xml文件中删除无用的代码,导入项目需要的依赖。设置打包方式位war包

javaweb项目案例,JavaWeb笔记,java,servlet,mybatis,mysql

1、导入maven编译插件

 声明编译的jdk版本,如果不导入插件,会报不支持发行版本5的错误

<build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
</build>

2、导入tomacat插件

使maven可以直接编译tomcat的项目插件,选择性安装,只能支持到tomcat7

<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <port>80</port>
     </configuration>
</plugin>

3、导入servlet依赖

<dependencies>

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

4、导入druid数据库连接池依赖

<dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>druid</artifactId>
     <version>1.1.12</version>
   </dependency>

5、导入mysql依赖

<dependency>
     <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
     <version>5.1.34</version>
   </dependency>

6、导入mybatis依赖

<dependency>
     <groupId>org.mybatis</groupId>
     <artifactId>mybatis</artifactId>
     <version>3.5.9</version>
   </dependency>

7、导入junit依赖

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

8、导入mybatis核心配置文件mybatis-config.xml

放入resources资源文件夹下。

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

<!--Mybatis核心配置文件-->
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

    <!--
    使用typeAliases再进行包扫描,给该包下的所有实体类起别名,直接使用不区分大小写的类名
    例如SQL映射文件下的返回值类型可以直接使用user,而不是com.itheima.pojo.user
    -->
    <typeAliases>
        <package name="com.itheima.pojo"/>
    </typeAliases>

    <!--environments:配置数据库连接环境信息,可以配置多个environment,通过default属性切换不同的environment-->
    <environments default="development">
        <environment id="development">
            <!--事物的管理方式-->
            <transactionManager type="JDBC"/>
            <!--数据库连接池,默认为POOLED-->
            <dataSource type="POOLED">
                <!--数据库连接信息-->
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/users?useSSL=false&amp;userServerPrepStmts=true"/>
                <property name="username" value="root"/>
                <property name="password" value="12345"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <!--加载SQL映射文件,使用包扫描-->
        <package name="com.itheima.mapper"/>
    </mappers>
</configuration>

三、使用Mapper代理

导入MySql映射文件 XXXMapper.xml

文件名称为(操作的pojo实体类对象名称+Mapper).xml  放入resources资源文件夹下。

<?xml version="1.0" encoding="UTF-8" ?>
<!--SQL映射文件-->
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!--mapper根标签  namespace必须要指定名称-->
<mapper namespace="com.itheima.mapper.UserMapper">

</mapper>

 创建mapper接口

在java文件夹下创建一个mapper包,包下创建与SQL映射文件同名的mapper接口,在接口中声明操作数据库的方法,可以安装MyBatisX插件,实现方法与映射文件间的快速跳转。

javaweb项目案例,JavaWeb笔记,java,servlet,mybatis,mysql

 同时要在resource文件夹下创建一个与mapper接口包名 同名的文件夹,将SQL映射文件放入。

javaweb项目案例,JavaWeb笔记,java,servlet,mybatis,mysql

 完成Mapper代理

四、IDEA配置tomcat

在 Web核心 中有明确说明,注意要配置Deployment,导入war包。

五、创建数据库

id user_name password tel

javaweb项目案例,JavaWeb笔记,java,servlet,mybatis,mysql

六、开始编码

1、创建实体类User

public class User {
    private Integer id;
    private String username;
    private String password;
    private String tel;

    public User() {
    }

    public User(String username, String password,String tel) {
        this.username = username;
        this.password = password;
        this.tel = tel;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Integer getId() {
        return id;
    }

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

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getTel() {
        return tel;
    }

    public void setTel(String tel) {
        this.tel = tel;
    }
}

 2、在mapper接口中定义用户操作

public interface UserMapper {
    //根据用户名和密码查询用户对象
    User select(@Param("username") String username, @Param("password") String password);

    //注册用户
    int add(User user);

    //根据用户名查找是否存在
    User selectByName(@Param("username") String username);
}

3、在mapper接口对应的SQL映射文件创建SQL语句

<?xml version="1.0" encoding="UTF-8" ?>
<!--SQL映射文件-->
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!--mapper根标签  namespace必须要指定名称-->
<mapper namespace="com.itheima.mapper.UserMapper">

    <resultMap id="userResultMap" type="user">
        <!--resultMap有两个常用属性 id:设置主键字段的映射  result:设置一般字段的映射-->
        <!--column表的列名 property实体类的属性名-->
        <result column="user_name" property="username"></result>
    </resultMap>

    <!--根据用户名和密码登录-->
    <select id="select" resultMap="userResultMap">
        select * from login where user_name=#{username} and password=#{password};
    </select>


    <!--用户注册-->
    <insert id="add" >
        insert into login(user_name,password,tel) values(#{username},#{password},#{tel});
    </insert>

    <!--根据用户名判断账户是否存在-->
    <select id="selectByName" resultMap="userResultMap">
        select * from login where user_name=#{username};
    </select>
</mapper>

4、创建一个工具类

由于整个的会话工厂只需要一个,避免代码冗余,创建会话工厂工具类用来得到会话工厂。

public class SqlSessionFactoryUtils {

    //静态代码块随着类的创建而创建,且只创建一次,由于会话工厂只需要一个,所以用静态代码块
    //登录与注册的代码逻辑相同,采用工具类获取会话工厂,避免冗余
    private static SqlSessionFactory sqlSessionFactory;
    //静态代码块不能抛异常,使用异常捕获
    static {
        try {
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static SqlSessionFactory getSqlSessionFactory(){
        return sqlSessionFactory;
    }
}

5、创建servlet包,处理登陆注册的业务逻辑

登陆操作:

@WebServlet("/loginServlet")
public class LoginServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1、接收用户名和密码
        String username = req.getParameter("username");
        String password = req.getParameter("password");

        //2、使用Mybatis操作数据库
        //1、加载mybatis核心配置文件获取SqlSessionFactory
        SqlSessionFactory sqlSessionFactory = SqlSessionFactoryUtils.getSqlSessionFactory();

        //2、开启SqlSession对象
        //SqlSession不能写在工具类,因为SqlSession代表用户与数据库的连接,如果放在工具类,则所有用户共用同一个连接
        //这样无法管理事务,使多个用户之间产生影响
        SqlSession sqlSession = sqlSessionFactory.openSession();

        //3、获取Mapper接口的代理对象
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

        //4、执行接口方法(执行SQL语句)
        User user = userMapper.select(username,password);

        //5、释放资源
        sqlSession.close();

        //3、查看输出结果响应给用户
        resp.setContentType("text/html;charset=utf-8");
        PrintWriter writer = resp.getWriter();
        if (user != null){
            writer.write("<h1>登陆成功</h1>");
        }else {
            writer.write("<h1>登录失败</h1>");
        }

    }

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

注册操作:

@WebServlet("/addServlet")
public class AddServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //解决post获取请求数据中文乱码问题
        req.setCharacterEncoding("UTF-8");

        //1、接收用户名、密码和手机号
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        String tel = req.getParameter("tel");
        User user1 = new User(username,password,tel);

        //2、使用Mybatis操作数据库
        //1、加载mybatis核心配置文件获取SqlSessionFactory
        SqlSessionFactory sqlSessionFactory = SqlSessionFactoryUtils.getSqlSessionFactory();

        //2、开启SqlSession对象
        SqlSession sqlSession = sqlSessionFactory.openSession();

        //3、获取Mapper接口的代理对象
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

        //4、执行接口方法(执行SQL语句)
        //先检查账户是否被注册
        int i = 0;
        User user = userMapper.selectByName(username);
        if (user == null){
             i = userMapper.add(user1);
            sqlSession.commit();
        }

        //5、释放资源
        sqlSession.close();

        //3、查看输出结果响应给用户
        resp.setContentType("text/html;charset=utf-8");
        PrintWriter writer = resp.getWriter();
        if (i > 0){
            writer.write("<h1>注册成功</h1>");
        }else {
            writer.write("<h1>注册失败,账户已存在</h1>");
        }
    }

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

七、项目展示

javaweb项目案例,JavaWeb笔记,java,servlet,mybatis,mysql

javaweb项目案例,JavaWeb笔记,java,servlet,mybatis,mysql

 javaweb项目案例,JavaWeb笔记,java,servlet,mybatis,mysql

需要前端资源请私信文章来源地址https://www.toymoban.com/news/detail-765377.html

到了这里,关于JavaWeb核心、综合案例(详细!Web开发流程)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Javaweb之SpringBootWeb案例开发规范的详细解析

    1.2 开发规范 了解完需求也完成了环境搭建了,我们下面开始学习开发的一些规范。 开发规范我们主要从以下几方面介绍: 1、开发规范-REST 我们的案例是基于当前最为主流的前后端分离模式进行开发。 在前后端分离的开发模式中,前后端开发人员都需要根据提前定义好的接

    2024年02月02日
    浏览(45)
  • JavaWeb(7)——前端综合案例1(面向对象)

    目录 一、实例需求 ❗ 二、 实现 🎯  三、代码优化 💂 + 💻 = 👴🏽 四、继续优化和总结 🌕👍 五、需要注意的 ❌ JS进阶-day3-184-综合案例-模态框构造函数写法             实现了注册、登录和删除按钮的事件监听器,并在点击按钮时弹出相应的模态框。对源代码

    2024年02月14日
    浏览(43)
  • JavaWeb综合案例——商品后台管理系统

    目录 1.功能介绍 2.工程准备 2.1pom.xml 2.2mybatis-config.xml 2.3SqlSessionFactoryUtils 2.4CheckCodeUtil 3.注册页面 3.1User 3.2UserMapper.xml 3.3UserMapper 3.4UserService 3.5register.html 3.6RegisterServlet 3.7CheckCodeServlet 4.登录页面 4.1login.html 4.2LoginServlet 4.3LoginFilter 5.后台主页面 5.1Brand 5.2BrandMapper 5.3BrandMapper.xml

    2024年02月07日
    浏览(44)
  • 【javaWeb+tomcat+MySQL】综合案例-完整步骤

    目录 一、前提 二、创建一个普通的java项目 三、添加Web Application 四、添加tomcat 五、测试tomcat是否连接成功  六、在src目录下创建四个package 七、在WEB-INF下创建文件夹lib,导入两个jar包  八、把druid.properties粘贴在src目录下 八、实体类、方法类、测试类、连接类(代码部分)

    2024年02月07日
    浏览(46)
  • JavaWeb(9)——前端综合案例3(悬停显示下拉列表)

            实现类似百度首页的“一个简单的鼠标悬停显示的下拉列表效果”。 思路分析和代码解释:  这个标签 是一个包裹下拉列表的容器。它使用 CSS 中的 position: relative; 和 display: inline-block; 属性来控制其在页面中的位置和显示方式。         当鼠标悬停在   .dr

    2024年02月13日
    浏览(44)
  • JavaWeb(10)——前端综合案例4(购物车示例)

           购物车需要展示一个已加入购物车的商品列表,包含商品名称、商品单价、购买数量和操作 等信息,还需要实时显示购买的总价。其中购买数量可以增加或减少,每类商品还可以从购物车中移除。最终实现的效果大致如图所示。 基础版 plus版              先在

    2024年02月05日
    浏览(47)
  • 黑马程序员最新版JavaWeb综合案例(前后端完整版)

    学习视频链接: 黑马程序员最新版JavaWeb基础教程,Java web从入门到企业实战完整版 完整代码链接: https://github.com/HaiLei-Fly/JavaWeb-brand 1、功能介绍 案例功能: 用户登录(账号密码登录) 用户注册(新用户注册账号) 查询所有(查询所有品牌数据) 新增品牌(增加新的品牌数

    2024年02月03日
    浏览(39)
  • Javaweb之SpringBootWeb案例新增部门的详细解析

    2.3 删除部门 查询部门的功能我们搞定了,下面我们开始完成 删除部门 的功能开发。 2.3.1 需求 点击部门列表后面操作栏的 \\\"删除\\\" 按钮,就可以删除该部门信息。 此时,前端只需要给服务端传递一个ID参数就可以了。 我们从接口文档中也可以看得出来。 2.3.2 接口文档 删除部

    2024年01月21日
    浏览(48)
  • JavaWeb开发(后端Web开发【一】)

    此文档来源于网络,如有侵权,请联系删除! 什么是Maven Maven是apache旗下的一个开源项目,是一款用于管理和构建java项目的工具。 Apache Apache 软件基金会,成立于1999年7月,是目前世界上最大的最受欢迎的开源软件基金会,也是一个专门为支持开源项目而生的非盈利性组织。

    2024年02月15日
    浏览(48)
  • 【JavaWeb后端开发-第六章(2)】SpringBootWeb案例

    前面我们已经实现了员工信息的条件分页查询以及删除操作。 关于员工管理的功能,还有两个需要实现:     ♦ 新增员工     ♦ 修改员工     首先我们先完成\\\"新增员工\\\"的功能开发,再完成\\\"修改员工\\\"的功能开发。而在\\\"新增员工\\\"中,需要添加头像,而头像需

    2024年01月16日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包