JavaWeb中Tomcat配置、问题以及小Demo

1.CS、BS优缺点

  • CS:客户端服务器架构模式
    优点:充分利用客户端机器的资源,减轻服务器的符合(一部分安全要求不高的计算存储任务放在客户端执行)
    缺点:需要安装、升级维护成本较高
  • BS:浏览器服务器架构模式
    优点:客户端不需要安装,维护成本较低
    缺点:所有的计算和存储任务都是放在服务器端,服务器的负荷较重;在服务端计算完成之后把结果传给客户端,导致频繁的数据通信,从而网络负荷较重。

2.Tomcat

Tomcat的安装和配置:
1、下载tomcat
2、配置环境变量,让Tomcat能够运行
因为Tomcat也是用java和C来写的,因此需要JRE,所以需要配置JAVA_HOME(配置方法和IDEA配置一样)

3、新建Web项目,并在Tomcat中部署
javaweb案例
将网页数据传入服务器并读取文件:

3.web文件的创建

1、新建项目------------新建模块
2、在模块中添加web
file --------project structure ------- module -------- 找到对应要创建web文件的模块添加web即可
3、创建artifact — 部署包
4、Libh和artifact的关系
先有artifact,后来才添加的mysql.jar。此时jar包并没有添加到部署包中,那么在project setting中有一个problems中会有提示,点击fix 选择add to …。另外,也可以将lib文件夹直接新建在WEB-INF下,缺点是该lib只能是当前的module独享,如果有第二个module需要再次重复的新建lib。
5、Tomcat配置与启动
可能遇到的问题:
启动后报错404意味着找不到指定资源,如果网址是:http://localhost:8080/,那么表明我们访问的是index.html,可以通过< welcome-file-list> 标签设置欢迎页(在Tomcat的web.xml中设置,或者在自己项目的web.xml中设置)
405问题。当前请求的方法不支持。比如表单method=post,那么servlet必须对应doPost。否则报405错误。
空指针或者NumberFormatException。因为由价格和库存,如果价格娶不到,结果想对null进行Integer.parseInt()就会报错。错误的原因大部分是因为name="price "此处写错了(多空格或拼写错误),结果在Serlvet端还是使用request.getParameter(“price”)去获取。
在这里插入图片描述
------ 点击add configuration
------ 添加Tomcat(选择Tomcat serve–local)
------ 添加Tomcat版本—修改URL(URL的地址是Tomcat启动后打开默认访问的网址)
-----将Update cation 和 frame deactivation选择如图所示。
在这里插入图片描述
------- 点击deployment
------点击+号(将要配置Tomcat文件模块选中)

package com.lyy.servlets;

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 {
    @Override
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String fname = request.getParameter("fname");
        String priceStr = request.getParameter("price");
        Integer price = Integer.parseInt(priceStr);
        String numberStr = request.getParameter("number");
        Integer number = Integer.parseInt(numberStr);
        String remark = request.getParameter("remark");
        System.out.println("fname="+fname);
        System.out.println("price="+price);
        System.out.println("number="+number);
        System.out.println("remark="+remark);
    }
}

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="number"/><br/>
            备注:<input type="text" name="remark"/><br/>
            <input type="submit" value="添加" />
        </form>
    </body>
</html>

配置文件

<?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.lyy.servlets.AddServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>AddServlet</servlet-name>
        <url-pattern>/add</url-pattern>
    </servlet-mapping>
</web-app>
<!--
1、用户发请求 action = add
2、项目中 web.xml找到url-pattern = /add  ->第十二行
3、找第十一行的 servlet-name = AddServlet
4、找和 servlet-mapping 中 servlet-name一致的servlet,找到第七行
5、找第八行的servlet-class就能找到com.lyy.servlets.AddServlet
6、用户发送的是post请求(method=post),因此Tomcat会执行AddServlet中的doPost方法
-->
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值