1、Tomcat是啥
web容器。用来运行web应用。
2、目录结构说明
bin 可执行文件目录
conf 配置文件目录
lib 存放lib文件的目录
logs 日志文件目录
webapps 项目部署目录
work 项目工作目录
temp 临时目录
运行Tomcat之前,首先需要配置JAVA_HOME环境变量,因为tomcat也是一个java和c写的程序。
启动tomcat
3、利用idael创建并部署web应用步骤
step1: 新建工程,并选择Java Enterprise下的web Application
step2:新建工程目录如下所示
step3: 配置tomcat
a、配置
先选择tomcat安装路径后,再对url等其他参数进行配置。
b、配置部署参数和URL
step4: 创建html文件,用来展示页面创建的表单
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<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>
form : 表单
action: 动作
method:类型,包含post和get两种,严格输入值为post和get,不能包含空格等任意字符;
<br : 换行
submit: 提交按钮
step4:通过web.xml建立前台页面和后台服务之间的关系
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>AddServlet</servlet-name>
<servlet-class>com.lucky.servlets.AddServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AddServlet</servlet-name>
<url-pattern>/add</url-pattern>
</servlet-mapping>
<!--
配置服务和客户端之间的关系
1、用户发请求,也就是html中配置的action=add;
2、服务器在在web.xml中,通过servlet-mapping中配置的url-pattern, 找到action add在服务器中的servlet-name;
3、servlet-name找到servlet-class
4、用户发送的post请求,因为html中配置的是method="post",因此Tomcat容器会执行步骤4中servlet-class下对应的doPost方法
-->
</web-app>
step5: 后台服务中AddServlet doPost函数实现
doPost函数需要完成的事情:
1、接收前台参数;
2、解析参数;
3、入库参数。
Tomcat 中的 servlet-api.jar中HttpServlet已对doPost和doGet方法做了封装,我们只需在后台自己的服务中继承这个类,实现业务相关部分即可。
package com.lucky.servlets;
import com.lucky.dao.FruitDao;
import com.lucky.dao.impl.FruitDAOImpl;
import com.lucky.pojo.Fruit;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class AddServlet extends HttpServlet {
FruitDao fruitDAO = new FruitDAOImpl();
@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// post方法下, 设置编码,防止中文乱码
// get不用设置编码,tomcat8之后
req.setCharacterEncoding("UTF-8");
String name = req.getParameter("fname");
/**
*
* 之前版本get方法设置编码
* byte[] bytes = fname.getBytes("ISO-8859-1");
* String newName = new String(bytes, "UTF-8");
*
*/
int price = Integer.parseInt(req.getParameter("price"));
int fcount = Integer.parseInt(req.getParameter("fcount"));
String remark = req.getParameter("remark");
System.out.println("name:"+ name);
System.out.println("price:"+ price);
System.out.println("fcount:"+ fcount);
System.out.println("remark:"+remark);
// 调用DAO
fruitDAO.addFruit(new Fruit(0, name, price, fcount, remark));
}
}
遇到的一些问题: