JavaWeb - 多模块maven项目---前端录入显示信息

JavaWeb - 多模块maven项目---前端录入显示信息,第1张

多模块maven项目—前端录入显示信息 一.要求 1.创建一个名为servlet_Exam的多模块maven项目, 其中有三个子模块分别为

​ 1) 基础模块servlet_pojo
​ 2) 基础模块servlet_dao
​ 3) web模块servlet_web

2.设置其依赖关系:

servlet_web 依赖 servlet_dao

​ servlet_dao 依赖 servlet_pojo

3.子模块功能实现说明

1) 基础模块servlet_pojo
在该模块内定义一个bean,名称为User;
其相应的属性: id(整型) name(字符串) age(整型) gender(字符) birthday(日期) hobbies(字符串数组)

2) 基础模块servlet_dao
说明: 1. 数据库使用mysql数据库

​ 2.创建一张User表, 表中的字段分别为:

​ 1.id 序号

​ 2.name 姓名

​ 3.age 年龄

​ 4.gender 性别

​ 5.birthday 生日

​ 6.hobbies 兴趣爱好

​ 7.createtime 创建时间(日期类型)

​ 8.updatetime 修改时间(日期类型)

该模块主要用于定义数据库相关 *** 作类与方法
该模块分别创建两个类: a. DBUtil b. UserDao
a. DBUtil
在该类中封装jdbc连接mysql数据库方法(1. 数据库驱动获取方法 2.数据库关闭方法)

b. UserDao
在该类中封装:

​ 1) 一个插入User对象到数据表的方法
​ 实现要求:

​ 1.createtime与updatetime两个字段值为当前时间,使用字符串固定值

​ 2.插入的数据字符串类型使用中文

​ 3.id为自动生成(对顺序无要求)

​ 2) 一个通过id来得到相应User对象的方法

3) web模块servlet_web
该模块用于前台展示信息

​ 1.在index.jsp页面中定义一个form表单,该表单需要向后台传递
​ 用户信息
​ 要求: 1)使用post方式
​ 2)action: “insert.do”

​ 2.创建一个InsertServlet类,继承HttpServlet类
​ 在该类相关方法中实现从前台获取数据,传递给Dao层进行插入
​ 备注: a. 请求路径: http://localhost:8088/insert.do
b. 需要处理中文问题
​ c. 插入成功,向前台返回"数据已成功录入!"

​ 3.创建一个home.jsp页面
​ 该页面定义一个form表单,用于输入用户id查询相应用户信息
​ 要求: 1)使用get方式
​ 2)action: “update.do”

​ 4.创建一个UpdateServlet类,继承HttpServlet类
​ 该类用于返回用户信息
​ 要求: 1) 如果查询到了用户,就将信息返回至前台
​ 2) 如果查询不到用户,就向前台返回"该用户不存在"

4.git提交

1) 在码云创建名为"Servlet_Exam"的仓库,仓库设置为公开仓库而非私有;
2) 并使用remote方式将本地仓库与远程仓库进行连接;
3) 在本地创建.gitignore文件并对其进行配置;
.gitignore配置要求:
只允许上传 “.java” “.xml” “.jsp” “.html”
4) 将本地项目上传至远程仓库

二.创建项目 首先创建servlet_Exam的maven项目(我的项目名字是Exam)


接着创建子模块项目

servlet_pojo 和 servlet_dao 模块和创建servlet_Exam一样
servlet_web创建时有所区别

创建完成后的项目

注意: 要把主项目也就是Exam项目里的src文件删除

三.设置其依赖关系

包括所需的jar包地址

包含的jar包有

Exam的pom.xml

<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.0modelVersion>

    <groupId>com.huaweigroupId>
    <artifactId>ExamartifactId>
    <version>1.0-SNAPSHOTversion>
    <modules>
        <module>servlet_pojomodule>
        <module>servlet_daomodule>
        <module>servlet_webmodule>
    modules>

    <packaging>pompackaging>
    <name>Examname>

    <dependencies>
        <dependency>
            <groupId>junitgroupId>
            <artifactId>junitartifactId>
            <version>4.12version>
            <scope>testscope>
        dependency>
        
        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
            
            <version>8.0.26version>
        dependency>
        <dependency>
            <groupId>javax.servletgroupId>
            <artifactId>javax.servlet-apiartifactId>
            <version>3.1.0version>
            <scope>providedscope>
        dependency>
    dependencies>
project>
servlet_pojo的pom.xml


<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">
  <parent>
    <artifactId>ExamartifactId>
    <groupId>com.huaweigroupId>
    <version>1.0-SNAPSHOTversion>
  parent>
    
  <modelVersion>4.0.0modelVersion>
  <artifactId>servlet_pojoartifactId>
  <name>servlet_pojoname>
project>
servlet_dao的pom.xml


<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.0modelVersion>

  <groupId>com.huaweigroupId>
  <artifactId>servlet_daoartifactId>
  <version>1.0-SNAPSHOTversion>
  <name>servlet_daoname>

  <dependencies>
    <dependency>
      <groupId>com.huaweigroupId>
      <artifactId>servlet_pojoartifactId>
      <version>1.0-SNAPSHOTversion>
    dependency>
      <dependency>
          <groupId>junitgroupId>
          <artifactId>junitartifactId>
          <version>4.12version>
          <scope>testscope>
      dependency>
  dependencies>
project>

servlet_web的pom.xml


<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.0modelVersion>
  <parent>
    <artifactId>ExamartifactId>
    <groupId>com.huaweigroupId>
    <version>1.0-SNAPSHOTversion>
      
  parent>
  <artifactId>servlet_webartifactId>
  <version>1.0-SNAPSHOTversion>
  <packaging>warpackaging>
    
  <dependencies>
    <dependency>
      <groupId>com.huaweigroupId>
      <artifactId>servlet_daoartifactId>
      <version>1.0-SNAPSHOTversion>
    dependency>
  dependencies>
project>
四.编写servlet_pojo模块

bea层 User
package com.huawei.bean;
import com.huawei.util.Tools;
import java.util.Arrays;
import java.util.Date;

/**
 * model 或bean  模型类  一般和数据库表一致
 * @date 2022/5/7 14:05
 */

public class User {
    private int id;
    private String name;
    private int age;
    private char gender;
    private Date birthday;
    private String[] hobbies;

    public User() {
    }

    public int getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public char getGender() {
        return gender;
    }

    public void setGender(char gender) {
        this.gender = gender;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public String[] getHobbies() {
        return hobbies;
    }
    
    public String getHobbie(){
        String str= Tools.arrayToString(this.hobbies);
        return str;
    }

    public void setHobbies(String[] hobbies) {
        this.hobbies = hobbies;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", gender=" + gender +
                ", birthday=" + birthday +
                ", hobbies=" + Arrays.toString(hobbies) +
                '}';
    }
}
util层 Tools
package com.huawei.util;

/**
 * 工具类
 * 数组转为字符串
 * @date 2022/5/9 11:37
 */

public class Tools {
    public static String arrayToString(String[] strs){
        String str="";
        for (String s:strs) {
            str+=s+",";
        }
        str=str.substring(0,str.length()-1);
        return str;
    }
}
五.编写servlet_dao模块

建表 首先在mysql数据库选择一个库,然后创建一个user表
create table user (
	id int primary key not null auto_increment,
	name varchar(10) not null,
	age int(3) ,
	gender char(2),
	birthday date,
	hobbies varchar(50),
	createtime datetime,
	updatetime datetime
	);
util层 DBUtil
package com.huawei.util;

import java.sql.*;

/**
 * jdbc连接数据库工具类
 * @date 2022/5/9 9:48
 */

public class DBUtil {
	//注意:test_0507为数据库名
    public static String url = "jdbc:mysql://localhost:3306/test_0507";
    //注意:高版本的JDBC驱动, mysql-connector-java 8以上版本
    //JDBC driver 由"com.mysql.jdbc.Driver"改为"com.mysql.cj.jdbc.Driver"
    public static String drive = "com.mysql.cj.jdbc.Driver";

    /**
     * 初始化
     */
    static {
        try {
            Class.forName(drive);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    /**
     * 建立数据库连接
     * @return
     */
    public static Connection getConnection() {
        try {
            return DriverManager.getConnection(url, "root", "123456");
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 关闭资源方法
     * @param rs
     * @param st
     * @param conn
     */
    public static void close(ResultSet rs,Statement st,Connection conn){
        if (rs!=null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (st!=null) {
            try {
                st.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (conn!=null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    /**
     * 测试是否能够成功连接
     * @param args
     */
    public static void main(String[] args) {
        Connection connection=getConnection();
        System.out.println(connection);
    }
}
Tools
package com.huawei.util;

/**
 * 工具类
 * 数组转为字符串
 * @date 2022/5/9 11:37
 */

public class Tools {
    public static String arrayToString(String[] strs){
        String str="";
        for (String s:strs) {
            str+=s+",";
        }
        str=str.substring(0,str.length()-1);
        return str;
    }
}
dao层 UserDao
package com.huawei.dao;

import com.huawei.bean.User;
import com.huawei.util.DBUtil;
import com.huawei.util.Tools;

import java.sql.*;

/**
 * 对User类进行插入和查询 *** 作
 * @date 2022/5/9 10:23
 */

public class UserDao {
    /**
     * 插入方法
     * @param user
     * @return
     */
    public int insert(User user) {
        int n = 0;
        //sql语句
        String sql = "insert into user(name,age,gender,birthday,hobbies,createtime) 					  values(?,?,?,?,?,now())";
        //初始化连接
        Connection conn = DBUtil.getConnection();
        PreparedStatement pst = null;
        try {
            pst = conn.prepareStatement(sql);
            pst.setString(1, user.getName());
            pst.setInt(2, user.getAge());
            pst.setString(3, user.getGender() + "");
            pst.setDate(4, new Date(user.getBirthday().getTime()));
            pst.setString(5, Tools.arrayToString(user.getHobbies()));
            n = pst.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(null, pst, conn);
        }
        return n;
    }

    /**
     * 查询方法
     * @param id
     * @return
     */
    public User findUserById(int id) {
        User user = null;
        String sql = "select * from user where id=?";
        Connection conn = DBUtil.getConnection();
        PreparedStatement pst = null;
        ResultSet rs = null;
        try {
            pst = conn.prepareStatement(sql);
            pst.setInt(1, id);
            rs = pst.executeQuery();
            while (rs.next()) {
                user = new User();
                user.setId(rs.getInt("id"));
                user.setName(rs.getString("name"));
                user.setAge(rs.getInt("age"));
                user.setGender(rs.getString("gender").charAt(0));
                user.setBirthday(rs.getDate("birthday"));
                user.setHobbies(rs.getString("hobbies").split(","));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(rs, pst, conn);
        }
        return user;
    }
}
六.编写servlet_web模块

servlet层 InsertServlet
package com.huawei.servlet;

import com.huawei.bean.User;
import com.huawei.dao.UserDao;
import com.huawei.util.DateTools;

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;


/**
 * 从前台获取数据,传递给Dao层进行插入
 * @date 2022/5/9 13:59
 */
//insert.do必须和index.jsp的action值一致
@WebServlet("/insert.do")
public class InsertServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");
        resp.setContentType("text/html; charset=UTF-8");
        User user = new User();
        //获取姓名并设置User对象姓名
        String name = req.getParameter("name");
        user.setName(name);
        //获取年龄并设置年龄
        String age = req.getParameter("age");
        if (age != null && !age.equals("")) {
            //如果有值就设置获取的值
            int age1 = Integer.parseInt(age);
            user.setAge(age1);
        } else {
            //如果没有则设置为18
            user.setAge(18);
        }
        //获取性别并设置User对象性别
        char gender = req.getParameter("gender").charAt(0);
        user.setGender(gender);
        //获取生日并判断处理
        String birthday =req.getParameter("birthday");
        user.setBirthday(DateTools.dateStrToDate(birthday));
        //获取爱好并设置User对象爱好
        String[] hobbies = req.getParameterValues("hobbies");
        user.setHobbies(hobbies);
        UserDao userDao=new UserDao();
        if (userDao.insert(user)>=1) {
            resp.getWriter().println("数据已成功录入");
        } else {
            resp.getWriter().println("数据录入失败");
        }
    }
}
UpdateServlet
package com.huawei.servlet;

import com.huawei.bean.User;
import com.huawei.dao.UserDao;

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;

/**
 * 查询返回用户信息
 * @avthor HuangJun
 * @date 2022/5/9 14:46
 */
//update.do必须和home.jsp的action值一致
@WebServlet("/update.do")
public class UpdateServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");
        resp.setContentType("text/html; charset=UTF-8");
        //获取id值
        String idStr=req.getParameter("id");
        int id=0;
        //如果不为空,就转为int类型
        if (idStr!=null&&!idStr.equals("")){
            id=Integer.parseInt(idStr);
        }
        UserDao userDao=new UserDao();
        User user=userDao.findUserById(id);
        //如果不为空值, 就将数据返回给show.jsp
        if (user!=null){
            req.setAttribute("User",user);
            req.getRequestDispatcher("/show.jsp").forward(req,resp);
        }else{
            resp.getWriter().println("该用户不存在!!");
        }
    }
}
util层 DateTools
package com.huawei.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 时间处理工具类
 * @date 2022/5/9 14:20
 */

public class DateTools {
    /**
     * 将时间字符串转为时间对象
     * @param dt
     * @return
     */
    public static Date dateStrToDate(String dt){
        Date date=new Date();
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        try {
            date =sdf.parse(dt);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return date;
    }
}
webapp index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>


    
    用户注册


用户注册
请输入姓名:
请输入年龄:
请输入性别:
请输入生日:
请输入爱好:看书 踢足球 玩游戏

home.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>


    
    查询


    
请输入编号:
show.jsp
<%@ page import="com.huawei.bean.User" %>
<%@ page import="java.util.Arrays" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
                                 <%-- 注意: isELIgnored="false"表示页面不忽略EL表达式--%>
								  <%-- isELIgnored是默认为true的, EL表达式会被忽略--%>


    
    用户信息



    <%--普通获取值的写法--%>
    <%
        User user = (User) request.getAttribute("User");
    %>
    用户名:<%=user.getName()%>
年龄:<%=user.getAge()%>
性别:<%=user.getGender()%>
生日:<%=user.getBirthday()%>
爱好:<%=Arrays.toString(user.getHobbies())%>

<%--EL表达式写法--%> 用户名:${User.name}
年龄:${User.age}
性别:${User.gender}
生日:${User.birthday}
爱好:${User.hobbie}
配置tomcat服务器





七.git提交项目 创建远程仓库 在gitee上创建一个远程仓库


配置过虑文件

项目关联git



项目与远程仓库建立连接


提交项目 add文件

commit文件


push文件



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/883611.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-14
下一篇 2022-05-14

发表评论

登录后才能评论

评论列表(0条)

保存