当前位置: 首页 > news >正文

Java Web:项目结构和web.xml

结构:
在这里插入图片描述

web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns="http://java.sun.com/xml/ns/javaee"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  id="WebApp_ID" version="3.0
  
  
  <display-name>test</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>

  <servlet>
    <servlet-name>test</servlet-name>
    <servlet-class>servlet.Controller</servlet-class>
    <!-- 配置servlet为jsp编译后的servlet而非java类 -->
        
    <jsp-file>/pages/test.jsp</jsp-file>
    <!-- servlet初始化参数 -->
    <init-param>
      <param-name>test_initParam</param-name>
      <param-value>initParam--163.com</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>test</servlet-name>
    <url-pattern>/test</url-pattern>
  </servlet-mapping>

  <!-- 应用初始化参数 -->
  <context-param>
    <param-name>test-contextParam</param-name>
    <param-value>contextParam--hotmail.com</param-value>
  </context-param>

  <!-- 监听类需要继承指定接口 -->
  <listener>
    <listener-class>listener.TestListener</listener-class>
  </listener>
</web-app>

每一个web应用只有一个ServletContext(分布式环境中,每个JVM有一个ServletContext),
每一个servlet有一个ServletConfig

获取初始化参数:

  • getInitParameter(无set,参数在web.xml中定义,返回String,只有ServletContextServletConfig可调用)

  • getParameter(无set,请求到来时候传来的,一般是get和post内容,返回String,只有Request可调用)

  • set/getAttribute(返回类型为Object,除了Request可调用,SessionServletContext都可以调用)

监听者类:

import javax.servlet.ServletContextListener;

public class TestListener implements ServletContextListener {
    @Override
    public void contextDestroyed(ServletContextEvent arg0) {
    }

    @Override
    public void contextInitialized(ServletContextEvent arg0) {
        System.out.println("...listener run");
    } // tomcat 启动中就执行
}

还可以继承:

//上下文增加、删除、替换属性时执行
ServletContextAttributeListener
//跟踪会话
HttpSessionListener
//每次请求到来时候执行
ServletRequestListener
//改变请求属性时执行
ServletRequestAttributeListener
//属性类本身被绑定到会话时的到通知
HttpSessionBindingListener
//会话属性改变时执行
HttpSessionAttributeListener
//创建、撤销上下文时执行
ServletContextListener
//属性类本身被绑定的会话被迁移到另一个JVM时得到通知
HttpSessionActivationListener

转载于:https://www.cnblogs.com/xuejianbest/p/10284940.html

相关文章:

  • 调查:澳门96%打工者称奖金、薪酬决定工作去留
  • 前端技术周刊 2019-01-14:客户端存储
  • 前端工程化的理解
  • 公安部发2019年春运交通安全预警 道路客运量将达24.6亿人次
  • WebSocket 协议 5~10 节
  • javascript从右向左截取指定位数字符的3种方法
  • 利用openpyxl模块处理excel表格
  • mysql索引使用like的时候出现的问题
  • Abp中使用可视化的日志面板
  • Vue PC端图片预览插件
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 全局变量与局部变量
  • 拜腾全球首家体验店南京西路落成,接下来这家新造车势力要怎样卖车?
  • webpack.config.js====CSS相关:postcss-loader加载器,自动添加前缀
  • 【转】Java基础之—反射
  • ES6指北【2】—— 箭头函数
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • android图片蒙层
  • canvas 绘制双线技巧
  • CentOS7 安装JDK
  • Debian下无root权限使用Python访问Oracle
  • Django 博客开发教程 8 - 博客文章详情页
  • GraphQL学习过程应该是这样的
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • Node + FFmpeg 实现Canvas动画导出视频
  • SpiderData 2019年2月23日 DApp数据排行榜
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • Xmanager 远程桌面 CentOS 7
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 后端_ThinkPHP5
  • 基于webpack 的 vue 多页架构
  • 前言-如何学习区块链
  • 小程序开发中的那些坑
  • 一、python与pycharm的安装
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • Hibernate主键生成策略及选择
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • 选择阿里云数据库HBase版十大理由
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (31)对象的克隆
  • (BFS)hdoj2377-Bus Pass
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • ******IT公司面试题汇总+优秀技术博客汇总
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • @ModelAttribute使用详解
  • [ vulhub漏洞复现篇 ] Apache APISIX 默认密钥漏洞 CVE-2020-13945
  • [20161101]rman备份与数据文件变化7.txt
  • [android]-如何在向服务器发送request时附加已保存的cookie数据
  • [ASP.NET 控件实作 Day7] 设定工具箱的控件图标