Servlet入门「建议收藏」

Servlet入门「建议收藏」Servlet什么是servlet?Servlet 是JavaEE规范之一,规范就是接口Servlet是javaWeb三大组件之一,三大组件分别是:Servlet Filter过滤器 Listener监听器Servlet是运行在服务器上的一个java小程序,他可以接受客户端发送过来的请求手动实现Servlet编写一个类实现Servlet接口实现service方法,处理请求,并相应数据到web.xmlzhong peizhi servlet程序的访问地址…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Servlet


什么是servlet?

  1. Servlet 是JavaEE规范之一,规范就是接口
  2. Servlet是javaWeb三大组件之一,三大组件分别是:Servlet Filter过滤器 Listener监听器
  3. Servlet是运行在服务器上的一个java小程序,他可以接受客户端发送过来的请求

手动实现Servlet

  1. 编写一个类实现Servlet接口
  2. 实现service方法,处理请求,并相应数据
  3. 到web.xmlzhong peizhi servlet程序的访问地址
<?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>HelloServlet</servlet-name>
        <servlet-class>com.atguigu.servlet.HelloServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>HelloServlet</servlet-name>
        <url-pattern>/hello/</url-pattern>
    </servlet-mapping>
</web-app>

servlet生命周期

  1. 构造Servlet构造器
  2. 执行init方法
  3. 执行service方法
  4. 执行destroy方法

1,2只是在被访问的第一次执行,3会在背刺被访问的时候执行,4在web工程停止的时候执行


一般在实际项目中,都是使用继承HttpServlet类的方式去实现servlet程序。

  1. 编写一个类去继承HttpServlet
  2. 根据业务需要重写doGet方法和doPost方法
  3. 到web.xml中的配置Servlet程序的访问地址

ServletConfig类
ServletConfig类从类名上来看,就知道是Servlet程序的配置信息
三大作用

  1. 可以获取Servlet程序的别名servlet-name的值
  2. 获取初始化参数init-param
  3. 获取ServletContext对象

Servlet程序和Servlet对象都是Tomcat负责创建,我们负责使用
Servlet程序默认是第一次访问的时候创建,ServletConfig是每个Servlet程序创建的时,就创建一个对应的ServletConfig对象

<servlet>
        <servlet-name>HelloServlet</servlet-name>
        <servlet-class>com.atguigu.servlet.HelloServlet</servlet-class>
        <init-param>
            <param-name>root</param-name>
            <param-value>123456</param-value>
        </init-param>
    </servlet>

ServletContext类

  1. ServletContext是一个接口,他表示Servlet上下文
  2. 一个web工程,只有一个ServletContext对象实例
  3. ServletContext对象是一个域对象
  4. ServletContext是在web工程部署启动的时候创建,在web工程停止的时候销毁

域对象
是可以像Map一样存取数据的对象,叫做域对象,这里域指的是存取数据的操作范围。

作用

  1. 获取web,xml中配置文件的上下文参数context-param
  2. 获取当前工程路径,格式:/工程路径
  3. 获取工程署后在服务器硬盘上的绝对路径
  4. 像Map一样存取数据

请求转发
getRequestDispatcher(’/servlet’);
特点:

  1. 浏览器地址栏没有变化
  2. 是一次请求
  3. 他们共享Request域中的数据
  4. 可以访问WEB-INF目录下的文件(浏览器不能直接访问WEB-INF下的文件)

base标签设置页面相对工作时参照的路径

<base href="http://localhost:8080/07_servlet/a/b/">

web中斜杠的不同意义
/斜杠如果被浏览器解析,得到的地址是:http://ip:port/
情况

  • /serlvet
  • servletContext.getRealPath(“/”)
  • request.getRequestDispatcher(“/”)
    特殊情况
    response.sendRediect(“/”);把斜杠发送给浏览器解析得到http://ip:port/

请求重定向

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 
   
        //方式1
        resp.setStatus(302);
        resp.setHeader("Location","http://localhots:8080/07_sservlet/response2");
        
        //方式2
        resp.sendRedirect("\"http://localhots:8080/07_sservlet/response2\"");
    }

javaweb三层架构
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168817.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何检测网站有没有被挂黑链_检测平台

    如何检测网站有没有被挂黑链_检测平台 网页挂马及暗链检测&nbsp;什么是网页挂马&nbsp;网页挂马是指恶意攻击者攻击WEB网站后,在网页中嵌入一段代码或脚本,用于自动下载带有特定目的木马程序,而恶意攻击者实施恶意代码或脚本植入的行为通常称为“挂马”。&nbsp;&nbsp;什么是SEO暗链&nbsp;SEO暗链是SEO黑帽手法中相当普遍的一种手段。笼统地说,它就是…

    2022年9月26日
    0
  • Android Deeplink配置

    Android Deeplink配置Deeplink启动应用配置注意事项1.Deeplink格式说明  Deeplink是目前使用广告跟踪非常热门的一种方式,Deeplink的链接类型一般是schema://host/path?params样式。2.为接收Deeplink配置intent-filter  在Android设备中,点击Deeplink后可以打开指定应用,为了能够正确定位到需要打开的应用,并正…

    2022年6月15日
    61
  • 基于android的_android studio创建activity

    基于android的_android studio创建activityAndroid如何判断一个应用在运行 在一个应用中,或一个Service、Receiver中判断一个应用是否正在运行,以便进行一些相关的处理。这个时候我们需要得到一个ActivityManager,这个Manager顾名思意就是管理Activity的,它有一个方法叫getRunningTasks,可以得到当前系统正在运行的Task的列表,代码如下:  A

    2022年9月6日
    4
  • Python自动化测试面试题及答案(持续更新中)

    1、自动化代码中,用到了哪些设计模式?单例设计模式工厂模式PO设计模式数据驱动模式面向接口编程设计模式2、什么是断言(Assert)?断言Assert用于在代码中验证实际结果是不是符合预期结果,如果测试用例执行失败会抛出异常并提供断言日志3、什么是web自动化测试Web自动化测试是从UI(用户界面)层面进行的自动化测试测试人员通过编程自动化程序(测试用例脚本)来打开浏览器测试网站的业务逻辑4、什么是seleniumSelenium是一个开源的web自动化测试框架,支持

    2022年4月8日
    127
  • SDL2来源分析3:渲染(SDL_Renderer)

    SDL2来源分析3:渲染(SDL_Renderer)

    2022年1月11日
    46
  • COM、COM+和DCOM的定义和区别

    COM、COM+和DCOM的定义和区别解释 COM COM 和 DCOM 的定义和区别 COM 是组件对象模型 是实现 3 N 层应用的基础 它的目的就是组件化 应用程序分层 DCOM 是分布式的 COM 也就说可以远程的创建 最初它利用远程自动化来实现 用注册 VBR 的方法来配置客户端 来适应 DCOM 服务器 COM 现在的概念不很清楚 因为它是一个扩展集 MS 现在的 MTS 取代了远程自动化这种原始的功能很弱的方法后 他们似乎已经都是一个集合体

    2025年7月9日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号