Servlet(一)

目录

1.什么是Servlet

2.servlet程序

2.1 创建项目

2.2 引入依赖

2.3 创建目录

2.4 编写代码

2.5 打包程序

2.6 部署程序

2.7 验证程序

3.更简单的部署方法

3.1 安装

3.2配置

4.访问出错怎么办

4.1 404

4.2 405

4.3 500

4.4 空白页面

4.5 无法访问此页面

 5.servlet工作模式

6.Servlet调用过程


1.什么是Servlet

Servlet 是一种实现动态页面的技术. 是一组 Tomcat 提供给程序猿的 API, 帮助程序猿简单高效的开发一个 web app.
 

2.servlet程序

2.1 创建项目

 

Servlet(一)_第1张图片

2.2 引入依赖


    
    
        javax.servlet
        javax.servlet-api
        3.1.0
        provided
    

2.3 创建目录

Servlet(一)_第2张图片

 web.xml中代码




    Archetype Created Web Application

2.4 编写代码

@WebServlet("/hello")//Tomcat类调用HelloServlet类处理
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //要删掉,不能调用父类的doGet
        //super.doGet(req, resp);

        //服务器在控制台打印
        System.out.println("hello world!");
        //页面打印:把hello world字符串,放到http响应的body中
        resp.getWriter().write("hello");
        //resp是响应对象,getWriter()返回一个writer对象,write是真正干活的
    }
}

1.重写父类方法

do:处理 Get:http的get方法 回调函数

HttpServletRequest :代表一个http请求 Tomcat已经收到,已经解析成对象

HttpServletResponse:代表一个HTTP响应 resp是一个空的响应对象,要在代码中给对象设置一些属性

doGet方法要做的工作,就是根据请求,计算响应

2.步骤:

        1.接收请求并解析

        2.根据请求计算响应

        3.构造响应数据,并返回给客户端

        1.3tomcat完成,2要编写

@WebServlet("/hello")是第二路径

2.5 打包程序

没有main不能单独运行,要打包部署到Tomcat上,由Tomcat来调用

在pom.xml中编写


    war

    
        hello1
    

双击

Servlet(一)_第3张图片

 Servlet(一)_第4张图片

 打包成功

Servlet(一)_第5张图片

2.6 部署程序

war包拷贝到tomcat的webapps目录下

打开tomcat

Servlet(一)_第6张图片

 会把war包解压

2.7 验证程序

通过浏览器访问

127.0.0.1:8080/hello1/hello

hello1是Context Path 第一级路径是hello1,war包是hello1

hello是Servlet Path 和注解匹配

Servlet(一)_第7张图片

 一个Tomcat可以同时部署多个网站,一个网站有多个页面,一个请求中第一级路径,就是告诉Tomcat要访问的是哪个网站,第二级路径是告诉Tomcat,要访问的页面是哪个

如果要修改代码:

七个步骤中,前三个不用重复

不一定要重启tomcat(理论不用重启,windows可能会有问题)

3.更简单的部署方法

通过idea插件

3.1 安装

Servlet(一)_第8张图片

 

3.2配置

 Servlet(一)_第9张图片

 

 点击会完成打包部署,重启tomcat

 成功

4.访问出错怎么办

4.1 404

访问资源不存在

1.原因:

  1. URL 的路径写的不正确
  2. 路径正确,服务器没有把正确把资源加载出来

2.典型例子:

1.少写第一级路径,context path

Servlet(一)_第10张图片

 2.少写第二级路径,servlet path

Servlet(一)_第11张图片

 3.Servlet Path 写的和 URL 不匹配==>修改 @WebServlet 注解的路径

Servlet(一)_第12张图片

 

4.web.xml没有写正确

tomcat发现目录中有web.xml且内容正确,才能加载webapp

4.2 405

HTTP请求方法没有实现

1.没有实现 doGet 方法, 就会出现上述现象

Servlet(一)_第13张图片

 

在浏览器地址栏直接输入 URL , 会发送一个 HTTP GET 请求.

此时就会根据 路径找到类. 并且尝试调用HelloServlet 的 doGet 方法.

2.如果没有屏蔽掉父类

Servlet(一)_第14张图片

 

4.3 500.4 4 空白页面

不给响应对象设置任何内容,就会出现空白页面

4.5 无法访问此页面

tomcat没有正常启动

Servlet(一)_第15张图片

 5.servlet工作模式

  • 客户端发送请求到服务器
  • 服务器启动并调用servlet,Servlet根据客户端的请求生成响应内容并传给服务器
  • 服务器把响应返回给客户端

6.Servlet调用过程

1.通过请求头得到是哪个主机

生命周期:

  • servlet被第一次访问时创建,会立即调用init方法进行初始化操作
  • 此后会一直留在服务器中,只要有请求访问就会调用service方法
  • 直到服务器关闭或web应用程序被移除,servlet实例会被销毁,销毁前服务器会调用destroy( )方法进行处理

你可能感兴趣的:(servlet,java)