1. BS

| BS | 浏览器/服务器 架构模式
优点:
1. 客户端不需要安装;
1. 维护成本较低;
缺点:
1. 计算和存储都是在服务器端,在服务器端计算完成之后,把结果传给客户端,需要频繁在客户端-服务端通信,从而网络负荷较重。
| | —- | —- | | CS | 客户端/服务器 架构模式
优点:
充分利用客户端机器的资源,减轻服务器的负荷(安全要求不高的计算任务/存储任务; 可以减轻服务器压力和网络压力)
缺点:
需要安装; 升级维护成本很高。 |

2. Tomcat

02.server_Tomcat_deploy(1).png

2.1 传统方式新建webapp

注: 因为是基于tomcat框架而搭建的项目,所以项目需要在tomcat安装目录中的webapps目录下,
项目示例:
D:\java_related\base_package_install\tomcat_7.0.79\apache-tomcat-7.0.79-windows-x64\apache-tomcat-7.0.79\webapps\selfapp\WEB-INF
selfapp: 自己的项目名称(即 context root),
访问:localhost:8080/selfapp/index.html
WEB-INF: 固定写法

02.server_Tomcat_deploy.png

2.2 idea中webapp

2.2.1 新建modle,勾选web

image.png

2.2.1 配置该module的tomcat

image.png
image.png
image.png

2.2.3 流程分析

03.第一次使用Servlet(1).png

2.2.4 在当前web中添加tomcat依赖

image.png

2.3 webapp的代码实现

2.3.1 index.html 中发送post请求

  1. <form method="post" action="add">
  2. 名称:<input type="text" name="fname"/><br>
  3. 价格:<input type="text" name="fprice"/><br>
  4. 库存:<input type="text" name="fcount"/><br>
  5. 备注:<input type="text" name="remark"/><br>
  6. <input type="submit" value="添加" />
  7. </form>

2.3.2 项目web.xml配置文件分配处理请求的servlet类

    <!--
        1. 服务器发送post 请求到服务器 add地址
        2. 项目中web.xml配置文件中解析/add地址, 分配到AddServlet类进行处理
        3. AddServlet是extend  HttpServlet类的, 期中实现了doPost()方法,处理post请求
    -->

    <servlet>
        <servlet-name>AddServlet</servlet-name>
        <servlet-class>com.atguigu.servlets.AddServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>AddServlet</servlet-name>
        <url-pattern>/add</url-pattern>
    </servlet-mapping>

2.3.3 servlet类中的方法处理请求

public class AddServlet extends HttpServlet {
  /**
   * 处理浏览器发送的post请求
   *
   * @param request 浏览器发送给服务器的所有内容,封装成request对象
   * @param response
   * @throws ServletException
   * @throws IOException
   */
  @Override
  protected void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    String fname = request.getParameter("fname");
    String fpriceStr = request.getParameter("fprice");
    int price = Integer.parseInt(fpriceStr);
    String fcountStr = request.getParameter("fcount");
    int fcount = Integer.parseInt(fcountStr);
    String remark = request.getParameter("remark");
    System.out.println(fname);
    System.out.println(price);
    System.out.println(fcount);
  }
}