总的功能实现图如下所示:
1.下载和配置tomcat
在网上下载好tomacat服务器,然后按照下面的方式去配置tomacat服务器。
在pom.xml中配置servlet的依赖,可以在https://mvnrepository.com/ 网站中去搜索下载。依赖如下:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
创建的目录结构如下所示:
编写index.jsp文件,代码和页面显示图如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="/demo" method="get">
菜品:<input type="text" name="dish"><br>
价格:<input type="text" name="price"><br>
说明:<input type="text" name="desc"><br>
<button>提交</button>
</form>
</body>
</html>
2.创建数据库和数据表,这里我创建的是一个类似于菜单的表,如下所示.
3.编写三层结构
在编写servlet层的代码,接受页面传递的请求,代码如下:
package com.its.servlet;
import com.its.entity.Demo;
import com.its.service.DemoService;
import javax.jws.WebService;
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;
@WebServlet("/demo")
public class DemoServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 接收数据
String dish = request.getParameter("dish");
String price = request.getParameter("price");
String desc =request.getParameter("desc");
// 封装数据
Demo demo = new Demo();
demo.setDish(dish);
demo.setPrice(Integer.parseInt(price));
demo.setDesc(desc);
// 传递到下一层进行逻辑处理
DemoService demoService = new DemoService();
//插入一条数据
int result = demoService.saveDish(demo);
if(result > 0){
System.out.println("插入成功");
}else {
System.out.println("插入失败");
}
}
}
再编写service代码进行逻辑处理,代码如下:
package com.its.service;
import com.its.dao.DemoDao;
import com.its.entity.Demo;
public class DemoService {
DemoDao demoDao = new DemoDao();
public int saveDish(Demo demo) {
return demoDao.saveDish(demo);
}
}
最后编写Dao层代码,将数据存放到数据库中,这里需要用到jdbc技术对数据库进行操作,代码如下:
package com.its.dao;
import com.its.entity.Demo;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class DemoDao {
public int saveDish(Demo demo) {
// 持久化处理
try {
//注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//建立连接
Connection connection = DriverManager.getConnection("jdbc:mysql:///demo_test", "root", "root");
//创建编译器,执行sql语句
String sql = "insert into menu(dish, price, `desc`) values(?,?,?) ";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, demo.getDish());
preparedStatement.setString(2, String.valueOf(demo.getPrice()));
preparedStatement.setString(3, demo.getDesc());
int i = preparedStatement.executeUpdate();
//释放连接
connection.close();
return i;
} catch (Exception e) {
e.printStackTrace();
return -1;
}
}
}
执行成功之后就可以看到数据库中就会增加一条数据,控制台上也打印出插入成功。