我的学习之路_第三十章_servlet
servlet:小服务程序
servlet是JavaWeb体系中的三大核心(servlet/Filter/Listener)之一,而且是最主要的那个.
作用:接受请求,处理请求,做出响应
继承体系:servlet(接口)-->GenericServlet(抽象类)-->HttpServlet(抽象类)
servlet(接口):
init:初始化:servlet是第一次被访问时初始化的,在服务器运行期间,servlet都只有一个对象
多个访客使用的是多条线程.
destroy:销毁:只有正常关闭服务器时才会调用此方法.
servlet:服务:被访问时调用此方法
在运行过程中某一个类的对象永远只有一个,叫单例模式
service( ServletRequest , ServletResponse ):服务,接收请求
Request对象代表的是浏览器发送到服务器的请求*
Response对象代表的是服务器向浏览器发送的响应*
getServletConfig:取得servletConfig
getServletinfo:取得servletinfo
【Servlet的生命周期】
创建:
第一次被访问(默认),只初始化一次
通过修改web.xml配置文件把servlet的创建改为项目启动即初始化
web.xml的servlet标签中添加一个 load-on-startup 标签,值为整数,一般设置为2(0-4,是一个优先级),
其中0和1是系统使用的,所以尽量不要用.
销毁:项目关闭(并不是服务器的启动和停止)
【servlet的路劲设置】 : url-pattern(过滤器也使用)
完全匹配:不含通配符的
/aaa/bbb 访问目标为/aaa/bbb的请求,运行此servlet
路径匹配:
/aaa/* /* /ab* ,前半段匹配即可
后缀匹配:
*.xxx 后半段匹配即可
默认: / 执行默认servlet(不用)
原则:
1.*要么开头,要么结尾,不能在中间.
2.路径如果不以*开头,则必须以/开头.(也就是说必须是绝对路径)
3.配置文件中的路径/aa/bb不带项目名的
4.页面中的超链接 表单提交的路径,绝对路径是要项目名的
原因:1.配置文件是属于某一个WEB项目的,所以不需要项目名
2.而对于页面来说,浏览器面对的WEB服务器,而服务器中是可以有多个项目的,所以
页面中的绝对路径的根代表的是服务器,所以以后要带项目名
例如:http://localhost:8080/day34/hello.servlet
程序 配置文件中的路径,服务端的WEB路径:
配置文件:<url/pattern> /hello.servlet</url-pattern>,开头的/代表的是当前项目的根
页面中的路径,客户端的WEB路径:
页面:<a href="day34/hello.servlet">aaa</a> 开头/代表的是服务器
特列:重定向
【servlet如何接受请求】
servlet的核心方法(servlet接口 servlet,HttpServlet : doGet doPost)接受两个参数:请求和响应对象,这两个对象是WEB服务器在接收到Http的请求
后,封装的两个JavaBean.请求和响应相关的信息都封装在这两个对象中
如果浏览器在发送请求是提交的表单的参数,则找Request对象来取得:
String getParameter(String name) <input type="" name="" value="">
【servlet如何发送响应:】
resp.getWriter().write("响应内容") 响应对象的输出流(向浏览器输出内容的流)
代码分层:
servlet:负责流程,接受请求,调用哪个service,响应什么信息
service:负责实现功能(业务逻辑),涉及底层的数据时,调用dao层
dao:只负责数据的操作(CURD),不参与业务
代码分层的总结:
1.为了让程序结构更加清楚
2.后续的维护和扩展工作中,变的更简单
3.工程性(后续的可维护性和可扩展性)
我的学习之路_第三十章_servlet的更多相关文章
- 我的学习之路_第三十四章_jsp
jsp 在只有servlet时,输出页面内容比较麻烦(成本高,java代码中输出HTML标签),所以需要一种技术,主要是HTML页面的代码(HTML,css,js),可以嵌入java代码,来实现动态页 ...
- mysql学习之路_事物_存储过程_备份
数据备份与还原 备份:将当前已有的数据保留. 还原:将已经保留的数据恢复到对应表中 为什么要做数据备份 1,防止数据丢失,被盗,误操作 2,保护数据记录 数据备份还原方式有多种:数据表备份 单表数据备 ...
- 我的学习之路_第五章_Data,正则
Date 类 (时间类) 所属包:java.util.Date 构造方法: public Date() 返回的是当前时间 也就是1970-1-1到电脑目前的时间值,用毫秒来表示 public Date ...
- 我的学习之路_第二十章_JDBC
JDBC 使用JDBC技术,通过mysql提供的驱动程序,操作数据库 ● 1. 注册驱动 告知jvm 使用的是什么驱动程序(mysql,oracle) 使用API中的类 DriverManager中的 ...
- 我的学习之路_第二十三章_HTML
Html : 超级文本语言 ( Hyper text Markup Language ) HTML 文件扩展名是 * .html HTML 结构都是有标签组成 通常情况下标签有开始标签和结束标签组成 ...
- 我的学习之路_第二十五_javaScript
Javascript 作用:可以对表单数据进行校验,可以对页面实现一些动态效果 定义: JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型. 它的解释器被称为 ...
- mysql学习之路_高级数据操作
关系 将实体与实体的关系,反应到最终数据表的设计上来,将关系分为三种,一对多,多对多,多对多. 所有关系都是表与表之间的关系. 一对一: 一张表的一条记录一定只对应另外一张表的一条记录,反之亦然. 例 ...
- mysql学习之路_字段类型与属性2
字段属性: 主键,唯一键,自增长. 主键: Primary key 主要的键,一张表只能有一个字段能使用对应的键,用来唯一约束该字段里面的数据不能重复,称之为主见. 一张表最多只有一个主键. 增加主键 ...
- mysql学习之路_字段类型与属性
回顾 数据库基本知识:关系型数据库与非关系型数据库 关系型数据库:安全(磁盘) 非关系型数据库:高效(内存) 关系型数据库:建立在关系模型上的数据库, 数据结构:二维表(浪费空间) 数据库操作指令:s ...
随机推荐
- springboot 1.5.2 集成kafka 简单例子
添加依赖 compile("org.springframework.kafka:spring-kafka:1.1.2.RELEASE") 添加application.propert ...
- Redis 小白指南(二)- 基础命令和五大类型:字符串、散列、列表、集合和有序集合
Redis 小白指南(二)- 基础命令和五大类型:字符串.散列.列表.集合和有序集合 引言 目录 基础命令 字符串类型 散列类型 列表类型 集合类型 有序集合类型 基础命令 1.获得符合规则的键名列表 ...
- javascript基础-BOM原理
图解: 1. Loction: 拼接参数时,应编码decodeURIComponent/encodeURIComponent(). 2. History: pushState+replaceStat ...
- 今天重装系统后,Wdows更新提示“windows update当前无法检查更新,因为未运行服务。您可能需要重新启动计算机”
到百度搜了常用的解决方法,就是用命令提示符,但对我的情况不管用,提示“拒绝访问”.后来在08绿软站的一篇文章中找到了解决办法.原文如下(我本人也是用的第四种方法解决的): 试了下面几种解决方法,第四种 ...
- 在linux下利用信号量实现一个写者线程多个读者线程
#include<pthread.h> #include<string.h> #include<stdlib.h> #include<stdio.h> ...
- js背景自适应,学到了
最近在做一个项目,要求实现背景自适应,何为背景自适应呢? 1.如果背景图高度不够,背景height是100%,background-size就应该是 100% auto 2.如果背景图宽度不够,背景w ...
- mybatis在mysql和oracle批量插入不同
两者不同 1,批量插入 2,主键自增 3,分页不同 4,......待补充 批量插入 mysql: <insert id="batchinsertSelective" par ...
- javascript痛点之三闭包
先来看看第一节的例子 'use strict'; function num(){ //用var声明一个变量num1 var num1 = 15; } alert(num1);//num1 is not ...
- 【Selenium】idea的selenium环境配置
1.maven配置 下载地址:http://maven.apache.org/download.cgi# 下载内容:apache-maven-3.5.0-bin.zip 环境变量:M2_HOME:E: ...
- MySql数据库基础操作——数据库、用户的创建,表的制作、修改等
MySql 是一款使用便捷.轻量级的数据库.因为他体积小.速度快.安装使用简单.开源等优点,目前是使用最广泛的数据库.目前位于Oracle甲骨文公司旗下.那今天我们就来介绍一下数据库的基本操作.具体介 ...