jsp之认识 servlet (基础、工作原理、容器请求处理)
Tomcat 的安装:
eclipse 需要自行安装tomcat,这是web 项目运行的服务器。如果用的是MyEclipse,里面自带tomcat,方便清除部署垃圾,利于项目运行。
Tomcat的安装详细步骤: 自行百度!
1、什么是servlet?
Sun公司制定的用于拓展web服务器功能的组件规范。
a) Web服务器只能处理静态的请求,不能够处理动态资源请求。这时需要servlet来对web服务器进行功能拓展。(web服务收到请求之后,如果需要计算,调用servlet容器来处理,再次调用servlet来计算)。
b) 组件规范:
组件:符合规范的,实现部分功能的,需要部署到相应的容器里面才能运行的软件模块。
容器:符合规范的,能够提供运行环境的程序。
2、servlet 的内部结构以及运行原理
a) 内部结构
(1)Service 服务:doget/dopost(请求方式) ... 为请求服务。
问题:什么时候执行?
访问一次执行一次
(2)构造方法:创建servlet 对象。
问题:什么时候执行?
第一次访问时执行,并且执行一次。
(3)初始化方法:init()
问题: 什么时候执行?
第一次访问时执行, 之后执行一次。
(4)销毁方法 :destroy() : 从内存中清除掉。。
问题: 什么时候执行?
停止服务时执行,并且只执行一次
面试题 : 请讲述servlet 内部结构以及访问次数。
b) 运行原理:
(1) servlet 容器:读取到web.xml文件
(2) 当某个 Servlet 被访问到时(URL),解析路径,获取到Servlet对应的类。
(3) 容器加载实现并实例化一个 servlet 的对象,放入到servlet 容器中。
(4) 执行服务。第二次开启服务器直接到容器中找到对应的servlet 服务。
(5) 当服务停止或者服务器重启时,调用destory 方法,销毁servlet 对象。
c) servlet 的生命周期:
实例化 --> 初始化--> 服务--> 销毁
(1) 创建 servlet 对象
(2) servlet 通过调用 init() 方法 进行初始化。 / 只执行一次
(3) servlet 调用 service 方法来处理客户端的请求。 // 处理请求
(4) servlet 调用destory () 终止服务。
(5) 最后,servlet 是由 JVM 的垃圾回收器回收。
面试题:解释servlet的生命周期?
d) 访问路径:
localhost:8080/DaiN/hello
解析: locallost 是本机地址,等同于 127.0.0.1
8080 是默认的端口号;
DaiN 是项目名称
hello 是web.xml 文件中提供的外部访问路径。
错误的常见形式:
404错误: 服务器找不到对应的请求资源 。(检查路径)
405错误: 服务器找不到 service 方法的请求。(检查 service 方法)
500错误: 程序在运行过程中出错。(检查servlet方法、web.xml 文件)
解决中文乱码的问题 :
系统默认的解析编码集:ios-8859-1
Request.setCharacterEncoding("UTF-8");
Response.setContentType("text/html;charset=utf-8"); //前是类型,后是编码集
3、请求方式
Doget
public class doGet_servlet extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException {
request.setCaracterEncoding(“gb2312”);//汉字转码
PrintWriter out = response.getWriter();
out.println("The Parameter are :"+request.getParameter("name1"));
}
}
Dopost
public class doPost extends HttpServlet {
public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException {
request.setCaracterEncoding(“gb2312”);//汉字转码
PrintWriter out = response.getWriter();
out.println("The Parameter are :"+request.getParameter("name2"));
}
}
Get:请求指定的资源(参数显示在地址栏上,不安全)只能提交少量数据给服务器。
Post:向指定的资源提交需求处理数据。(参数不会显示在地址栏上,相对安全)
获取请求参数信息
public class RequestInfo extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Enumeration e = request.getHeaderNames(); //获取所有元素的消息头
while(e.hasMoreElements()) { //查看元素
String headerName = e.nextElement().toString();//便利所有元素的消息头
System.out.println(headerName+":"+request.getHeader(headerName));
}
System.out.println("请求方式:"+request.getMethod());
System.out.println("请求的协议种类:"+request.getPathInfo());
System.out.println("请求的资源路径"+request.getRequestURI());
System.out.println("请求的路径信息"+request.getRequestURL());
System.out.println("Servlet的路径"+request.getServletPath());
}
}
请求方式:GET
请求的协议种类:null
请求的资源路径/DaiN/Info
请求的路径信息http://localhost:8080/DaiN/Info
Servlet的路径/Info
jsp之认识 servlet (基础、工作原理、容器请求处理)的更多相关文章
- Servlet的工作原理和生命周期
Servlet的工作原理 . Web服务器加载Servlet:Web服务器启动后,它会根据每个工程的web.xml文件去查找该工程的Servlet,并且找到这些Servlet的Class文件所在的地址 ...
- servlet其工作原理和例子证明
servlet简单介绍 当我们在地址栏里面输入www.baidu.com,终于呈如今我们面前的是百度搜索的页面.在这些訪问过程中,都会有一个webserver来处理这些请求以及訪问处理后的结果. 而s ...
- JSP 和 Servlet 的工作原理和生命周期
JSP的英文名叫Java Server Pages,翻译为中文是Java服务器页面的意思,其底层就是一个简化的Servlet设计,是由sum公司主导参与建立的一种动态网页技术标准.Servlet 就是 ...
- java servlet的工作原理
servlet本质上就是java类嘛.不过是有特殊规范的java类而已.下面就说一说为什么servlet要有特殊规范. 首先,考虑一下什么地方用servlet,WEB应用,而且是需要servlet容器 ...
- Servlet 工作原理解析
转自:http://www.ibm.com/developerworks/cn/java/j-lo-servlet/ Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 J ...
- [转]Servlet 工作原理解析
Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础.因而掌握 Servlet 的工作原理是成为一名合格的 Java Web 技术开发人员的 ...
- Servlet 工作原理解析--转载
原文:http://www.ibm.com/developerworks/cn/java/j-lo-servlet/index.html?ca=drs- Web 技术成为当今主流的互联网 Web 应用 ...
- 【Java】Servlet 工作原理解析
Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础.因而掌握 Servlet 的工作原理是成为一名合格的 Java Web 技术开发人员的 ...
- 【Tomcat】Servlet 工作原理解析
Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础.因而掌握 Servlet 的工作原理是成为一名合格的 Java Web 技术开发人员的 ...
- Java web每天学之Servlet工作原理详情解析
上篇文章中我们介绍了Servlet的实现方式以及Servlet的生命周期,我们这篇文章就来介绍一下常用对象. 点击回顾:<Java Web每天学之Servlet的工作原理解析>:<J ...
随机推荐
- nyoj 113 字符串替换 (string中替换函数replace()和查找函数find())
字符串替换 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 编写一个程序实现将字符串中的所有"you"替换成"we" 输入 ...
- [NOIP2004]FBI树
题目描述 我们可以把由“0”和“1”组成的字符串分为三类:全“0”串称为B串,全“1”串称为I串,既含“0”又含“1”的串则称为F串. FBI树是一种二叉树,它的结点类型也包括F结点,B结点和I结点三 ...
- cpus Vs cpu period and cpu quota
1. https://docs.oracle.com/cd/E37670_01/E75728/html/section-zb1_wqw_gt.html To control a container' ...
- Ubuntu 16.04安装搜索拼音输入法
Linux下唯一一款大厂出的输入法 1.下载 http://pinyin.sogou.com/linux/?r=pinyin 2.安装 sudo dpkg -i sogoupinyin_2.1.0.0 ...
- php apc缓存以及与redis的对比
apc缓存用户数据这个会用, apc_store() 和apc_fetch()函数. 那apc 缓存php 代码,这个怎么用呢? 原文: http://blog.csdn.net/w187046226 ...
- iOS截取视频某一帧图片(关键帧,AVAssetImageGenerator)
获取第一帧图片 导入 AVFoundation.Framework.CoreMedia.Framework 实现代码例如以下: + (UIImage*) thumbnailImageForVideo: ...
- Android studio 解决setText中文乱码问题
我在用Android Studio编译器的时候,总会遇到非常多乱码的问题.第一个乱码问题是在Layout文件中面定义了EditText.在代码中须要将获取到的内容填充到EditText里面,这时候假设 ...
- shell学习三十七天----引用
引用 案例,假设我想输出一个星号(*),使用echo怎样做? echo * 这是肯定不行的,须要将*转移,即:echo \* 这样就引出了引用的概念.所为引用,是用来防止shell将某些你想要的东西解 ...
- 通达OA 小飞鱼老师OA工作流设计课程教学网络公开课之HTML基础(一)
通达OA网络教学公开课開始了.有须要的小伙伴们抓住机会奥. 8月29号晚8点不见不散.本次课程的主要内容是通达OA工作流设计课程中须要用到的Html部分学习. 帮忙转发的朋友加送一节VIP课程.
- luogu3379 【模板】最近公共祖先(LCA) Tarjan
LCA的Tarjan算法是一个离线算法,复杂度$O(n+q)$. 我们知道Dfs搜索树时会形成一个搜索栈.搜索栈顶节点cur时,对于另外一个节点v,它们的LCA便是v到根节点的路径与搜索栈开始分叉的那 ...