说明:该链接以水果库存系统为例。
一、链接流程及注意事项
-
新建项目 – 新建模块
-
在模块中添加web
-
创建artifact – 部署包
-
lib – artifact
先有artifact,后来才添加的mysql.jar。此时,这个jar包并没有添加到部署包中
那么在projectSettings中有一个Problems中会有提示的,我们点击fix选择add to…
另外,我们也可以直接把lib文件夹直接新建在WEB-INF下。
这样不好的地方是这个lib只能是当前这个moudle独享。如果有第二个moudle我们需要再次重复的新建lib。 -
在部署的时候,修改application Context。然后再回到server选项卡,检查URL的值。
URL的值指的是tomcat启动完成后自动打开你指定的浏览器,然后默认访问的网址。
启动后,报错404.404意味着找不到指定的资源。
如果我们的网址是:http://localhost:8080/pro01/ , 那么表明我们访问的是index.html.
我们可以通过<welcome-file-list>
标签进行设置欢迎页(在tomcat的web.xml中设置,或者在自己项目的web.xml中设置) -
405问题。当前请求的方法不支持。比如,我们表单method=post , 那么Servlet必须对应doPost。否则报405错误。
-
空指针或者是NumberFormatException 。因为有价格和库存。如果价格取不到,结果你想对null进行Integer.parseInt()就会报错。错误的原因大部分是因为 name=”price”此处写错了,结果在Servlet端还是使用request.getParameter(“price”)去获取。
-
<url-pattern>
中以斜杠开头
二、需要使用的数据库
CREATE DATABASE fruitdb;
USE fruitdb;
CREATE TABLE t_fruit(
fid INT PRIMARY KEY AUTO_INCREMENT,
fname VARCHAR(20),
price int,
fcount VARCHAR(20),
remark VARCHAR(30)
);
三、具体流程
3.1、创建项目
创建项目时,可以先创建普通的java项目,之后再添加web模块。也可以在创建项目时就选择添加web模块。
(此处先创建项目,后添加模块)
创建项目后,可以删除src文件夹,把FruitDemo当做总文件夹使用。
在项目中创建Module
3.2、为项目添加web模板
步骤一:File ——> Project Structure
步骤二:Facets ——> “+”号 ——> Web
步骤三:选择需要添加web模块的module
步骤四:确认路径是否正确,Create Artifact点击生成web部署包,点击ok完成操作
步骤五:在Module中出现带蓝点的web文件夹即为操作成功
3.3、为项目添加MySQL驱动
步骤一:在当前工程下创建lib文件夹,用来存放驱动
步骤二:“Add as Library” ,把lib文件夹设置为库
步骤三:在项目中引用lib(添加依赖)
步骤四:为部署包添加lib依赖
3.4、为项目部署tomcat服务器
注意:第一次部署tomcat服务器时,需要在此处添加相应配置
步骤一:
步骤二:
步骤三:Application context表示访问时链接的后缀
3.5、创建前端文件
步骤一:在web文件夹下创建index.html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Fruit</title>
</head>
<body>
<!--
action属性 :当表单提交时向何处发送表单数据
method属性: 指定如何发送表单数据
-->
<form action="add" method="post">
名称:<input type="text" name="fname"/><br/>
价格:<input type="text" name="price"/><br/>
库存:<input type="text" name="fcount"/><br/>
备注:<input type="text" name="remark"/><br/>
<input type="submit" value="添加"/>
</form>
</body>
</html>
步骤二:创建AddServlet类
步骤三:在web ——> WEB-INF ——> web.xml 文件中添加代码,使html和java建立链接
<servlet>
<servlet-name>AddServlet</servlet-name>
<servlet-class>com.AddServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AddServlet</servlet-name>
<url-pattern>/add</url-pattern>
</servlet-mapping>
3.6、为项目添加tomcat依赖
3.7、在AddServlet类中对数据进行处理
该部分只有代码,粘贴到idea中,会自动导包
public class AddServlet extends HttpServlet {
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//为request设置编码方式,避免接受的前端数据中汉字变为乱码
request.setCharacterEncoding("utf-8");
//接受前端提交的数据
String fname = request.getParameter("fname");
String priceStr = request.getParameter("price");
Integer price = Integer.parseInt(priceStr);
String fcountStr = request.getParameter("fcount");
Integer fcount = Integer.parseInt(fcountStr);
String remark = request.getParameter("remark");
//调用FruitDAO,向数据库中添加数据
FruitDAO fruitDAO = new FruitDAOImpl();
boolean flag = fruitDAO.addFruit(new Fruit(0, fname, price, fcount, remark));
System.out.println(flag ? "添加成功!" : "添加失败!");
}
}