接着上一个博客,有几个小问题需要解决一下

1.没有Tomcat自带的lib

网页浏览word文件 java_java

解决方法

网页浏览word文件 java_xml_02


网页浏览word文件 java_ide_03


网页浏览word文件 java_网页浏览word文件 java_04


应用,ok,问题解决

2. 出现乱码的现象

在idea中Tomcat启动出现乱码问题 照着做就完事

3.无法访问localhost:8080

idea中tomcat启动但是访问不了localhost:8080页面在csdn真是太幸福了,前人种树后人乘凉


Tomcat 和网页的简单交互

学习视频:https://www.bilibili.com/video/BV1BJ411L7NR?p=2

1.现在src目录底下建立文件夹,并在里面建立一个java class类

网页浏览word文件 java_客户端_05

2.在test里插入implements Servlet

package fun.btcs.MyServlet;

import javax.servlet.Servlet;

public class test implements Servlet {
}

插入后IDEA会提示有问题,点小灯泡然后选第一个

网页浏览word文件 java_java_06


网页浏览word文件 java_ide_07


接下来代码变成了这样

package fun.btcs.MyServlet;

import javax.servlet.*;
import java.io.IOException;

public class test implements Servlet {
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        
    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {

    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {

    }
}

init——创建
service——运行
destroy——删除

接下来在service里写一条文本(我是服务端,我已经接受到了客户端的请求)

@Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("我是服务端,我已经接收到了客户端的请求");

但是做完这一步并不能看到这一条文本。首先要搞清楚

网页浏览word文件 java_xml_08


这里的东西相当于本地的文件,还没有被打包的,最终客户端看到的所有的数据都是经过打包后的,在out文件夹底下(下面test用MyServlet代替)

网页浏览word文件 java_xml_09


在tomcat_war_exploded底下的文件是不能被客户端所访问到的,所以我们需要做一个映射,在web文件夹底下的web.xml里面写

网页浏览word文件 java_xml_10

<?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>MyServlet</servlet-name>
        <servlet-class>fun.btcs.MyServlet.MyServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>MyServlet</servlet-name>
        <url-pattern>/MyServlet</url-pattern>
    </servlet-mapping>
</web-app>

看着很绕,其实不然

网页浏览word文件 java_ide_11


看做4条代码互相关联

  1. 写需要映射的文件名称
  2. 写需要映射的文件地址
  3. 抄1
  4. 写在客户端访问时的地址
    只要遵守1和3 一样,24就会关联

下面我们访问http://localhost:8080/MyServlet

网页浏览word文件 java_xml_12


虽然网页上空白,但是我们服务端收到了请求

还是在server里添加

servletResponse.getWriter().write("hello world");

再次访问

网页浏览word文件 java_java_13


好了,这下就完成了一次基本的交互,客户端发送请求,服务端接受数据。网页大多都是这样子的交互java web真简单

客户端发送数据,客户端接收是怎么玩的呢

还是在server里面写

String id = servletRequest.getParameter("id");
        System.out.println("我是servlet,我已经接收到了客户端发送的请求" + id);
        servletResponse.getWriter().write("hello world");

好了,在网页端,网址后打上?id=1

网页浏览word文件 java_ide_14

服务端也收到了客户端发送的1。交互完成