XnMatrix datetime security github dart tfs cassandra pyqt jboss UIkit vue响应式布局 bootstrap后台模版 郑州普通话考试 jquery通过class获取元素 mac虚拟打印机 oracle数据库版本 monkey安装 string转16进制 matlab求向量的模 python随机整数 python获取时间戳 python安装程序 java环境 java遍历集合 java数组 java判断文件是否存在 java数据类型转换 linux基础教程 网络电视软件下载 不寻常的指南针 popen phpqrcode msdev 彻底删除mysql python封装 整站系统 unity3d下载 混沌世界隐藏英雄密码 催眠魔蛙 bz2解压命令
当前位置: 首页 > 学习教程  > 编程语言

浩浩学编程JavaWeb-01Servlet

2020/10/8 20:06:10 文章标签:

JavaWeb笔记 1.servlet篇JavaWeb笔记1.tomcat2.servlet生命周期3.ServletConfig4. ServletContext1.tomcat tomcat 目录架构 bin: 存放各个文件下启动和停止 Tomcat 服务脚本文件 conf:存放各种 Tomcat 服务器配置文件 lib:存放 Tomcat 服务器所需要的 j…

JavaWeb笔记

1.servlet篇

  • JavaWeb笔记
    • 1.tomcat
    • 2.servlet生命周期
    • 3.ServletConfig
    • 4. ServletContext

1.tomcat

  1. tomcat 目录架构

    bin: 存放各个文件下启动和停止 Tomcat 服务脚本文件

    conf:存放各种 Tomcat 服务器配置文件

    lib:存放 Tomcat 服务器所需要的 jar

    logs:存放Tomca 服务运行日志

    temp:Tomcat 运行时临时文件

    webapps:存放允许客户端访问的资源

    work:存放 Tomcat 将 JSP 转换后的 Servlet 文件

  2. Servlet 简介

    1 servlet:

    Servlet 是 Java Web 开发的基⽯,与平台⽆关的服务器组件,它是运⾏在 Servlet 容器/Web 应⽤服务器/Tomcat,负责与客户端进⾏通信。

    2 servlet 功能:

    1. 创建并返回基于客户端 请求 HTML 页面。
    2. 与数据进行通信

    3 如何使用servlet:

    Servlet 本身是⼀组接⼝,⾃定义⼀个类,并且实现 Servlet 接⼝,这个类就具备了接受客户端请求以及
    做出响应的功能

package com.hou.myservlet;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;

public class ServletTset implements Servlet { //实现Servlet 接⼝
    @Override
    public void init(ServletConfig var1) throws ServletException{

    };
    @Override
    public ServletConfig getServletConfig(){
        return null;
    };
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException{
      String id=servletRequest.getParameter("id");
      //在网页地址栏后面输入  ?id=100
      System.out.println("我是Servlet,我已经接收到客户端发来的请求,参数是:"+id);//在控制台输出
      servletResponse.setContentType("text/html;charset=UTF-8");//使中文可以正常显示/GBK
      servletResponse.getWriter().write("我是中文,页面上有显示吗?");//写到页面上
    };
    @Override
    public String getServletInfo(){
        return null;
    };
    @Override
    public void destroy(){
        
    };
}

浏览器不能直接访问 Servlet ⽂件,只能通过映射的⽅式来间接访问 Servlet,映射需要开发者⼿动配置,有两种配置⽅式。

  1. 基于 XML ⽂件的配置⽅式。
<?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>com.lut.myservlet.myservlet</servlet-class>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>myServlet</servlet-name>
        <url-pattern>/demo02</url-pattern>
    </servlet-mapping>
</web-app>
  1. 基于注解的方式
@WebServlet("/demo01")
public class myservlet implements Servlet {
    
}

上述两种配置⽅式结果完全⼀致,将 demo2 与 HelloServlet 进⾏映射,即在浏览器地址栏中直接访问demo 就可以映射到 HelloServlet。

地址栏后面输入: /demo01 或 /demo02

2.servlet生命周期

  1. 当浏览器访问 Servlet 的时候, Tomcat 会查询当前 Servlet 的实例化对象是否存在,如果不存在,则通过反射机制动态创建对象,如果存在,直接执⾏第 3 步。
  2. 调用 init 初始化方法
  3. 调用 service 方法完成业务操作
  4. 关闭 Tomcat 会调用destory 方法 释放当前对象所占用的资源

servlet 生命周期方法: 无参构造函数,init,service,destory

  1. 无参构造只调用一次,用于创建对象(最先执行)
  2. init 只调用一次 用于初始化对象
  3. service 调用N次,执行N次业务方法
  4. destory 只调用一次,用于销毁当前资源
@WebServlet("/demo01")
public class myservlet implements Servlet {

    public myservlet(){
        System.out.println("构造函数:创建了Servlet对象");
    }


    public void init(ServletConfig servletConfig) throws ServletException{
        System.out.println("对Servlet对象完成初始化操作...");
    };

    public ServletConfig getServletConfig(){
        return null;
    };

    public void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException{
        System.out.println("执行了Servlet对象的业务方法...");
    };

    public String getServletInfo(){
        return null;
    };


    public void destroy(){
        System.out.println("释放了Servlet对象...");
    };

}

3.ServletConfig

该接⼝是⽤来描述 Servlet 的基本信息的。

getServletName() 返回 Servlet 的名称,全类名(带着包名的类名)

getInitParameter(String key) 获取 init 参数的值(web.xml)

getInitParameterNames() 返回所有的 initParamter 的 name 值,⼀般⽤作遍历初始化参数

4. ServletContext

getServletContext() 返回 ServletContext 对象,它是 Servlet 的上下⽂,整个 Servlet 的管理者

ServletConfig 和 ServletContext 的区别:⼀个是局部对象,⼀个是全局对象

ServletConfig 作⽤于某个 Servlet 实例,每个 Servlet 都有对应的 ServletConfig,

ServletContext 作⽤于整个 Web 应⽤,⼀个 Web 应⽤对应⼀个 ServletContext,

多个 Servlet 实例对应⼀个ServletContext。

//实现 doGet 和 doSet
    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
       response.getWriter().write("helloGet");
    }

    @Override
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException{
        response.getWriter().write("HelloPost");
    }

本文链接: http://www.dtmao.cc/news_show_250191.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?