Servlt入门
Servlt入门
java的两种体系结构
C/S (客户端/服务器)体系结构 通讯效率高且安全,但系统占用多
B/S (浏览器/服务器)体系结构 节约开发成本
C/S (客户端/服务器)体系结构 通讯效率高且安全,但系统占用多
B/S (浏览器/服务器)体系结构 节约开发成本
http协议
http请求
请求行 请求头请求正文
请求行包括:请求类型路径协议(http1.1)
get无请求正文,内容直接拼接在请求头中
http响应
状态行、响应头、响应正文
状态行包括:协议响应码(200) 响应说明(OK/notfund)
请求头中 Referer字段值为上一输入的地址
响应头中 Location字段用于跳转页面
Refresh字段用于自动跳转, html页面中 meta 标签实现
<meta http-equiv=” Refresh” content=”3”;url=”地址”>
servlet实现
1创建web项目
创建Dynamic Web project项目
设置项目名 选择Dynamic web module version为2.5版本
2次next后设置context root(外部访问名) (外部访问名前面不需要/)
注: 修改对项目外部访问名的方法:
右键Properties->Web Project Settings->Context root
2实现servlet实现
1 创建class文件,文件的类继承HttpServlet类,重写service方法
@Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { ……处理代码 } |
2 Servlet类实现类是无主方法的,根据服务器进行调用
3 设置webContent\web-INF目录下的web.xml配置文件(web-app标签内)
<servlet>
<servlet-name>资源名</servlet-name>
<servlet-class>class类路径</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>资源名同上</servlet-name>
<url-pattern>/资源外部访问名</url-pattern>
</servlet-mapping>
注:
1 <url-pattern>的值前面要加"/"
2 若存在多个同资源名的<servlet-mapping>则都指向相同的<servlet>
3 <servlet>标签中的<servlet-name>不可重复
4 <url-pattern>资源外部访问名不能重名
5 修改xml需要重启服务器
6 url-pattern可以设置多个访问路径
"*"通配符,匹配所有
只能放在最前面或者最后面,不能单独使用,不能放在中间,不能和字母拼接
越精准,优先级越高
/路径/* : 只要访问的路径中包含"路径",都可以访问
*.后缀 : 只要是以指定后缀结尾的路径,都可以访问
/* : 任意路径,都可以访问
7 <servlet>标签中设置servlet启动优先级
<load-on-startup>3</load-on-startup> 值越小优先级越高,先执行
8 <servlet>标签中设置初始化参数(可设多个<init-param>,结构key-value)
<init-param>
<param-name>encode</param-name>
<param-value>UTF-8</param-value>
</init-param>
9 同一个<servlet-mapping>可设置多个<url-pattern>路径
<!-- 配置多个路径 -->
<url-pattern>/ser005</url-pattern>
<!-- 访问指定目录 -->
<url-pattern>/test/*</url-pattern>
<!-- 以指定后缀结尾的路径 -->
<url-pattern>*.do</url-pattern>
<!-- 访问所有路径 -->
<url-pattern>/*</url-pattern>
servlet实现类
1继承HttpServlet类,重写service方法
2实现Servlet接口
重写全部接口方法
init() 初始化时执行的代码(只在初始化时执行一次)
destroy() 在servlet销毁时执行的方法(销毁时执行一次)
getServletConfig() 配置信息
getServletInfo() 服务器版本信息
service() 执行的功能代码
3继承GenericServlet类
重写service()方法
4多个实现类的关联
(HttpServlet) extends (GenericServlet) implements (Servlet)
3外部servlet访问
外部访问: http://域名(主机名,ip,自定义名):端口/项目访问名/资源访问名
Servlt入门的更多相关文章
- Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求
上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...
- ABP入门系列(1)——学习Abp框架之实操演练
作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...
- Oracle分析函数入门
一.Oracle分析函数入门 分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计 ...
- Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数
上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...
- Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数
上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...
- Angular2入门系列教程4-服务
上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...
- wepack+sass+vue 入门教程(三)
十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...
- wepack+sass+vue 入门教程(二)
六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...
- wepack+sass+vue 入门教程(一)
一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...
随机推荐
- 关于“教室派”APP的使用报告和相关建议
教室派APP能够很好的解决学生查询各教室占用情况这一问题,使用起来非常方便.用户可根据需要选取星期来查询不同教学楼教室使用情况. 编辑课表是其附带功能,但通过使用发现手动编辑课表效率太低,建议开发者加 ...
- 创建JDBC六个步骤
JDBC库中所包含的API通常与数据库使用于: 连接到数据库 创建SQL或MySQL语句 在数据库中执行SQL或MySQL查询 查看和修改数据库中的数据记录 创建JDBC应用程序 建立一个JDBC应用 ...
- 题解 【洛谷P1332】血色先锋队
题面:https://www.luogu.org/problemnew/show/P1332 很容易看出,这是一个典型的广度优先搜索,也就是众多OIer口中的bfs. 先给各位普及一下bfs(部分来自 ...
- bootstrap图片上传控件 fileinput
前端 1.要引用的js fileinput.js fileinput.css <link type="text/css" rel="stylesheet& ...
- linux异常 - 无法分配内存
解决方案: 删除虚拟机上不必要的东西 重启开虚拟机的电脑
- RS-232C
RS-232C标准(协议)的全称是EIA-RS-232C标准,定义是"数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准".它是在1970年由美国电子 ...
- 第三十九篇 入门机器学习——Numpy.array的基础操作——合并与分割向量和矩阵
No.1. 初始化状态 No.2. 合并多个向量为一个向量 No.3. 合并多个矩阵为一个矩阵 No.4. 借助vstack和hstack实现矩阵与向量的快速合并.或多个矩阵快速合并 No.5. 分割 ...
- Python | 字符串拆分和拼接及常用操作
一.字符串拆分 str = "hola ha1 ha2 china ha3 " # partition 从左侧找到第一个目标,切割成三组数据的[元组] str1 = str.par ...
- Linux - Shell - find - 进阶: 范围
概述 继续昨天的 find 背景 还有一些 过滤条件 1. 约束: 目录层数 概述 约束目录的层级 选项 -maxdepth 作用 约束最大目录层级 相对路径 -mindepth 作用 约束最小目录层 ...
- Rabbitmq consumer端超时报错
0x01 应用场景: 使用rabbitmq的exchange模式,type为direct,消费端不需要向生产端返回结果no_ack=True 其中某个consumer任务耗时较长(5min以上),结果 ...