Servlet & JSP : web.xml 配置学习

简介:

一.定义

定义时注意:xml元素是区分大小写的,以下必须小写:

<web-app></web-app>

二.url-pattern

1)url-pattern 的值必须以/或者*.开头

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
   <servlet>
     <servlet-name>TestName</servlet-name>
     <servlet- class >sedion.jeffli.servlet.AServlet</servlet- class >
   </servlet>
   <servlet-mapping>
     <servlet-name>TestName</servlet-name>
     <url-pattern>/UrlTest1</url-pattern>
   </servlet-mapping>
<!--
  <servlet-mapping>
       <servlet-name>TestName</servlet-name>
       <url-pattern>*.urlTest1</url-pattern>
     </servlet-mapping>
-->

2)匹配模式的规则

①优先处理完全匹配

/test1/aa 和 /test1/* 都是一个url-pattern访问路径,则优先请求 http://localhost/webAppTest/test1/aa

②目录映射优先于扩展名映射

/test1/aa 和 /test1/*.html 都是合法的url-pattern访问路径,则优先请求 http://localhost/webAppTest/test1/aa/test.html

③对于重复映射,越长路径越优先

/test1/aa/* 和 /test1/* 都是一个url-pattern访问路径,则优先请求 http://localhost/webAppTest/test1/aa/test.html

三.过滤器

在web.xml文件中使用 filter元素和 filter-name(任意名),filer-class(完全限定类名)声明:

<filter>
<filter-name>
TestFilterName
</filter-name>
<filter-class>
sedion.jeffli.testFilter
</filter-class>
</filter>

通过filter-mapping与

①【servlet-name】一个元素或者多个servlet关联

<filter-mapping>
    <filter-name>TestFilterName</filter-name>
    <servlet-name>SomeServletName</servlet-name>
</fitler-mapping>

【url-pattern】jsp页面关联

<filter-mapping>
    <filter-name>TestFilterName</filter-name>
    <url-pattern>/*</url-pattern>
</fitler-mapping>

四、配置jsp页面

jsp-config 中有两个子元素【taglib】【jsp-property-group】,注意,前者必须出现在后者之前。

【taglib】替代jsp页面中taglib指令

<jsp-config>
    <taglib>
        <taglib-uri>/taglibtest</taglib-uri>
        <taglib-location>/WEB-INF/tlds/test-tags.tld</taglib-location>
    </taglib>
</jsp-config>

配置后,在页面可以用下面简单方式调用标签库

<% taglib uri="/taglibtest" prefix="somePrefix">

五、面向群集环境的开发

例如,tomcat自带一个软件负载器,存在Web应用的tomcat_dir/weapps/blalancer中。

开发一个应用于群集环境的Web应用注意以下几点:

①避免创建实例化变量和静态数据来共享数据。

②不要将数据存储在 ServletContext

③存储在HttpSession中的对象需要实现Serializable接口

如果HttpSession保存的对象不实现Serializable接口,容器便不能迁移会话。

④尽量少在HttpSession中存储信息

在HttpSession中存储大量数据,会降低Web应用性能,特别是请求量相当高时。

相关文章
|
1月前
|
算法 Java Go
【GoGin】(1)上手Go Gin 基于Go语言开发的Web框架,本文介绍了各种路由的配置信息;包含各场景下请求参数的基本传入接收
gin 框架中采用的路优酷是基于httprouter做的是一个高性能的 HTTP 请求路由器,适用于 Go 语言。它的设计目标是提供高效的路由匹配和低内存占用,特别适合需要高性能和简单路由的应用场景。
216 4
|
安全 关系型数据库 测试技术
学习Python Web开发的安全测试需要具备哪些知识?
学习Python Web开发的安全测试需要具备哪些知识?
280 61
|
4月前
|
存储 Linux Apache
在CentOS上配置SVN至Web目录的自动同步
通过上述配置,每次当SVN仓库中提交新的更改时,`post-commit`钩子将被触发,SVN仓库的内容会自动同步到指定的Web目录,从而实现代码的连续部署。
185 16
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
197 4
|
10月前
|
安全 Java 数据安全/隐私保护
springSecurity学习之springSecurity过滤web请求
通过配置 Spring Security 的过滤器链,开发者可以灵活地管理 Web 请求的安全性。理解核心过滤器的作用以及如何配置和组合这些过滤器,可以帮助开发者实现复杂的安全需求。通过具体的示例代码,可以清晰地了解 Spring Security 的配置方法和实践。
499 23
|
SQL 安全 前端开发
Web学习_SQL注入_联合查询注入
联合查询注入是一种强大的SQL注入攻击方式,攻击者可以通过 `UNION`语句合并多个查询的结果,从而获取敏感信息。防御SQL注入需要多层次的措施,包括使用预处理语句和参数化查询、输入验证和过滤、最小权限原则、隐藏错误信息以及使用Web应用防火墙。通过这些措施,可以有效地提高Web应用程序的安全性,防止SQL注入攻击。
439 2
|
JavaScript 前端开发 开发工具
web项目规范配置(husky、eslint、lint-staged、commit)
通过上述配置,可以确保在Web项目开发过程中自动进行代码质量检查和规范化提交。Husky、ESLint、lint-staged和Commitlint共同作用,使得每次提交代码之前都会自动检查代码风格和语法问题,防止不符合规范的代码进入代码库。这不仅提高了代码质量,还保证了团队协作中的一致性。希望这些配置指南能帮助你建立高效的开发流程。
642 5
|
小程序 前端开发 中间件
ThinkPHP 配置跨域请求,使用TP的内置跨域类配置,小程序和web网页跨域请求的区别及格式说明
本文介绍了如何在ThinkPHP框架中配置跨域请求,使用了TP内置的跨域类`\think\middleware\AllowCrossDomain::class`。文章还讨论了小程序和web网页在跨域请求格式上的区别,并提供了解决方案,包括修改跨域中间件源码以支持`Origin`和`token`。此外,还介绍了微信小程序跨域请求的示例和web网页前端发送Axios跨域请求的请求拦截器配置。
ThinkPHP 配置跨域请求,使用TP的内置跨域类配置,小程序和web网页跨域请求的区别及格式说明
|
监控 Apache
HAProxy的高级配置选项-Web服务器状态监测
这篇文章介绍了HAProxy的高级配置选项,特别是如何进行Web服务器状态监测,包括基于四层传输端口监测、基于指定URI监测和基于指定URI的request请求头部内容监测三种方式,并通过实战案例展示了配置过程和效果。
332 8
HAProxy的高级配置选项-Web服务器状态监测
|
机器学习/深度学习 移动开发 JavaScript
Web实时通信的学习之旅:SSE(Server-Sent Events)的技术详解及简单示例演示
Web实时通信的学习之旅:SSE(Server-Sent Events)的技术详解及简单示例演示
5415 0

热门文章

最新文章