重磅来袭!不愧是京东内部的Servlet学习笔记,这细节讲解神了

201 阅读2分钟

Hello,今天给各位童鞋们分享Servlet,赶紧拿出小本子记下来吧!

image.png

servlet定位图以及核心作用

当用户输入url的时候,他的访问步骤依次如下

image.png Servlet标准 API核心包

Servlet API有以下3个Java包:

javax.servlet(重点):其中包含定义Servlet和Servlet容器之间的类和接口

javax.servlet.http(重点):其中包含定义HTTP Servlet和Servlet容器之间的类和接口

javax.servlet.annotation:其中包含标注Servlet,Filter,Listener的注解

servlet客户端HTTP请求

image.png 客户端Request常见报头当浏览器请求网页时,它会向 Web 服务器发送特定信息,这些信息不能被直接读取,因为这些信息是作为 HTTP请求的头的一部分进行传输的

操作HTTP Request头的方法下面的方法可用早servlet程序读取HTTP头,这些方法通过 HttpServletRequest 对象使用

代码示例1.首先在webapp下创建一个静态文件requestTest.html文件

image.png 2.写动态的servlet,那么就需要在两个地方进行写入

创建一个servlet后端类

在web.xml配置一组路由信息

2.1首先写后端类requestServlet

image.png 2.2 在web.xml配置一组路由信息

image.png 验证结果

image.png

Servlet服务器HTTP响应

服务器端Response常见报头

image.png 操作HTTP Response头的方法

image.png

代码案例:如拿到当前的时间,然后每隔一秒进行一次刷新操作步骤:1.创建一个servlet后端类2.在web.xml配置一组路由信息后端类代码

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

import java.io.PrintWriter;

import java.util.Date;

public class MyResponseServlet extends HttpServlet {

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    //刷新操作,设置成1s刷新一次

    resp.setIntHeader("Refresh",1);

    //设置响应类型

    resp.setContentType("text/html");

    //设置编码格式,如果不设置会出现乱码

    resp.setCharacterEncoding("utf-8");

    //写入body信息

    PrintWriter writer = resp.getWriter();

    writer.println(String.format("<h1>当前时间: %s</h1>",new Date()));

}

@Override

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    this.doGet(req, resp);

}

}

配置web.xml

<servlet-name>myResponseServlet</servlet-name>

<servlet-class>MyResponseServlet</servlet-class>
<servlet-name>myResponseServlet</servlet-name>

<url-pattern>/response</url-pattern>

然后进行打包部署到Tomcat上,进行访问

image.png 简单实现一个404页面

image.png 在当我们访问一个页面的时候,输入的url是无效的就会出现404错误,比如最简单的就是出现一个

比如上图中右边的404页面如何显示在我们的servlet中呢?

步骤:

因为这张图面是一个静态页面,而所有静态的资源都放在webapp下,那么我们就在webapp下创建一个包(imgs)来存放你的这张静态页面

然后创建一个servlet后端类

配置web.xml文件

打包部署到Tomcat上

1.首先将这张静态页面保存在webapp下

image.png 2.创建一个servlet后端类

image.png 3.配置web.xml文件

<servlet-name>notFountServlet</servlet-name>

<servlet-class>NotFountServlet</servlet-class>
<servlet-name>notFountServlet</servlet-name>

<url-pattern>/404</url-pattern>

4.打包部署,然后验证结果

image.png 感兴趣的话可以通过抓包工具进行抓包查看

好啦,今天的文章就到这里,希望能帮助到屏幕前迷茫的你们