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入门的更多相关文章

  1. Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求

    上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...

  2. ABP入门系列(1)——学习Abp框架之实操演练

    作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...

  3. Oracle分析函数入门

    一.Oracle分析函数入门 分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计 ...

  4. Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数

    上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...

  5. Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数

    上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...

  6. Angular2入门系列教程4-服务

    上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...

  7. wepack+sass+vue 入门教程(三)

    十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...

  8. wepack+sass+vue 入门教程(二)

    六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...

  9. wepack+sass+vue 入门教程(一)

    一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...

随机推荐

  1. ASP.NET MVC 用户权限-1

    MVC框架的开发网站的利器,MVC框架也开始越来越流行了.对于.NET ,微软也发布了MVC框架,做网站通常要涉及到用户的权限管理,对于.NET MVC 框架的用户权限管理又应该怎样设置呢?下面通过示 ...

  2. 洛谷P1583 魔法照片

    https://www.luogu.org/problem/P1583 话不多说,其实就是模拟,然后,各种繁琐 #include<bits/stdc++.h> using namespac ...

  3. [Codechef CHSTR] Chef and String - 后缀数组

    [Codechef CHSTR] Chef and String Description 每次询问 \(S\) 的子串中,选出 \(k\) 个相同子串的方案有多少种. Solution 本题要求不是很 ...

  4. 完整安装IIS服务

    此文主要是针对前面提到的 IIS支持json.geojson文件 添加脚本映射时,提示找不到asp.dll时的解决方法. 主要参考了此文:http://www.kodyaz.com/articles/ ...

  5. 二、ZigBee无线网络

    概述 ZigBee是基于IEEE802.15.4标准的低功耗局域网协议.根据国际标准规定,ZigBee技术是一种短距离.低功耗的无线通信技术.这一名称(又称紫蜂协议)来源于蜜蜂的八字舞,由于蜜蜂(be ...

  6. mybatis(六):设计模式 - 责任链模式

  7. 5.Mybatis--解决属性名和字段名不一致的问题(起别名+resultMap)

    我们看一下数据库中的字段 新建一个项目(我们拷贝之前的)来测试实体类字段跟数据库不一致  看看看,实体类中的属性是不是跟数据库表中的名不一样了 好,我们查询一下: 出现问题了:空值 为什么为空? 因为 ...

  8. 牛客网刷题总结—Day1

    1.关于哈夫曼树 哈夫曼树也称最优二叉树,其n个叶子节点都是带有权值的,其节点的带权路径长度(n个叶子节点的权值*其到根节点的路径之和)最小的二叉树即为哈夫曼树. 一般的哈夫曼树不存在度为1的节点(除 ...

  9. js函数防抖和函数节流

    参考链接:https://juejin.im/post/5b651dc15188251aa30c8669 参考链接:https://www.jb51.net/article/158818.htm 在我 ...

  10. SpringBoot获取http请求参数的方法

    SpringBoot获取http请求参数的方法 原文:https://www.cnblogs.com/zhanglijun/p/9403483.html 有七种Java后台获取前端传来参数的方法,稍微 ...