DRP——Servlet(一)
Servlet
Servlet是用java语言编写的程序,执行在Webserver上,用来处理来自client的请求;通常会把处理的结果以HTML的形式返回,在client形成动态网页。事实上能够理解成一个中间层。负责连接前后。用三层理解的话相当于是业务逻辑层。
那么,Servlet有什么长处呢?Servlet执行在server中。能够扩展server的功能。能够和其它资源交互,从而生成返回client响应的内容,由于是用java编写的,所以能够跨平台;Servlet也非常安全,由于訪问Servlet的唯一途径就是通过server;Servlet使用也非常方便,仅仅要是符合Servlet规范的Servlet容器都能够执行Servlet。比方Tomcat啊等。
Servlet体系结构:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva2FuZ2xpeDFhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
Servlet的生命周期:
1.创建Servlet对象。通过server反射机制创建Servlet对象,第一次请求时才会创建。(默认)
2.调用Servlet对象的init()方法,初始化Servlet的信息。init()方法仅仅会在创建后被调用一次
3.响应请求,调用service()或者是doGet(),doPost()方法来处理请求。这些方法是执行的在多线程状态下的。
4.在长时间没有被调用或者是server关闭时,会调用destroy()方法来销毁Servlet对象。
Servlet容器
事实上,Servlet本身就是普通的java类。在须要的时候被实例化,在不须要的时候被销毁。而Servlet的实例化和销毁工作谁来负责呢?Servlet容器来完毕。所以用要Servlet,则Servlet容器不可缺少。Servlet在Servlet容器内执行。Servlet容器负责调度Servlet,并控制Servlet的生命周期。我们经常使用的有Tomcat等。。。
以下分析一下Servlet容器调用Servlet的流程;首先client使用浏览器提交对Servlet的调用的Get或Post请求,server接到请求后,假设Servlet是第一次调用就实例化这个Servlet。之后server调用Servlet的service()方法,Servlet产生动态回复内容;server发送回复内容给client的浏览器。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva2FuZ2xpeDFhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
配置文件
要想容器能正确识别Servlet。须要配置web.xml文件,以下我们看一下怎样配置:
一般格式:
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>test.HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<servlet>标签内的name写Servlet的名称;class写Servlet的路径;<Servlet-mapping>标签帮助找到Servlet。url-pattern是訪问时的路径。Servlet-mapping与Servlet标签下的servlet-name要一致。
当然除了主要的配置。还能够进行其它配置,比方优先级、显示名称等等。
比較:
大家看到servlet能想到.NET中的什么呢?没错。好像是不太能想到什么。就勉强联想到一般处理程序吧。
当然他们有非常多不同的地方,但还是有类似的地方,事实上Servlet相当于是.NET中的一个详细的handler。能够对指定的请求进行处理。一般处理程序实现IHandler接口。
总结:
Servlet事实上就是执行在server端的小应用程序;Servlet容器负责调度Servlet,并控制着他们的生命周期。一般通过继承HttpServlet的方式来实现Servlet。依据client请求的方式,仅仅需重写doGet或doPost方法就可以,假设是Get提交须要在Servlet中重写doGet方法,假设是Post提交须要重写doPost方法;要使容器正确识别Servlet,则必须填写配置文件web.xml(tomcat7.0支持Servlet3.0注解定义,无需配置web.xml)。
ps:不足之处,敬请指正~~~
DRP——Servlet(一)的更多相关文章
- 【drp 9】Servlet生命周期
一.基本概念 Servlet(Server Applet):全称Java Servlet,是用Java编写的服务器端程序.其主要功能在于交互式地浏览和修改数据,生成动态Web内容.狭义的Servlet ...
- 【DRP】-完成物料修改页面Servlet和JSP开发
本系列博客内容为:做DRP系统中的常用功能. 该项目采用MVC架构 C(Controller)控制器,主要职责;1.取得表单参数:2.调用业务逻辑:3.转向页面 M(Model)模型,主要职责:1.业 ...
- Java Drp项目实战——Servlet
由来 在解说Servlet之前须要先介绍一个词语CGI即Common GatewayInterface是通用网关接口的意思.它提供一个计算机程序同HTTP协议或者WWW服务的接口,也就是人机交互接口的 ...
- [drp 7]转发和重定向的区别
导读:类似于response.sendRedirect(request.getContextPath()+"/servlet/item/SearchItemServlet");和r ...
- DRP PK 牛腩新闻发布系统
一.JSP与ASP (1)Web服务器的支持:大多数通用的Web服务器如:Apache.Netscape和Microsoft IIS都支持JSP页面,只有微软本身的Microsoft IIS和Pers ...
- DRP学习进化模型
曾经做的就是按照思维做的三级制,这是U .B ,D .坐在坐,开始增加设计模式,增加sqlhelper ,逐渐了解系统可分为只三层,层的,随着学习的不断深入明确了"为什么会出现分层" ...
- DRP项目总结
DRP项目在6号就已经完工了,总共花费了一个半月的时间,从对java的懵懵懂懂,到现在的略微熟悉,对整个java web开发的认知,清晰了很多.涉及到的web项目开发的必备知识,也都有一次得到锻炼和提 ...
- 深入浅出Java MVC(Model View Controller) ---- (JSP + servlet + javabean实例)
在DRP中终于接触到了MVC,感触是确实这样的架构系统灵活性不少,现在感触最深的就是使用tomcat作为服务器发布比IIS好多了,起码发布很简单,使用起来方便. 首先来简单的学习一下MVC的基础知识, ...
- JAVA Drp项目实战—— Unable to compile class for JSP 一波三折
交代下背景.电脑系统是64位的,用的是64位的Tomcat.安装是32位的Myeclipse10,java环境也是32位的.Tomcat在開始启动时会报这样一个错误,"Can't load ...
随机推荐
- JavaScript 高级程序设计(第3版)笔记——chapter4:变量、作用域和内存问题
Chapter4 变量.作用域和内存问题 l 理解基本类型和引用类型的值 l 理解执行环境 l 理解垃圾收集 4.1基本类型和引用类型的值 l ECMAScript变量包含两种不同数据类型的值 ...
- ASP.NET站点安全
<configuration> <appSettings/> <connectionStrings> <add name="MyBookShop&q ...
- BZOJ 1004: [HNOI2008]Cards( 置换群 + burnside引理 + 背包dp + 乘法逆元 )
题意保证了是一个置换群. 根据burnside引理, 答案为Σc(f) / (M+1). c(f)表示置换f的不动点数, 而题目限制了颜色的数量, 所以还得满足题目, 用背包dp来计算.dp(x,i, ...
- ZOJ 3879 Capture the Flag 15年浙江省赛K题
每年省赛必有的一道模拟题,描述都是非常的长,题目都是蛮好写的... sigh... 比赛的时候没有写出这道题目 :( 题意:首先输入4个数,n,q,p,c代表有n个队伍,q个服务器,每支队伍的初始分数 ...
- 【STL__set_的应用】
1.关于set C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器, 更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结 ...
- POJ2395 最小生成树 - Prime算法
题目: Out of Hay Time Limit: 1000MS Memory Limit: 65536K Total Submissions: Accepted: Description The ...
- Ajax 实现无刷新分页
Ajax 实现无刷新分页
- gradle项目与maven项目相互转化(转)
根据build.gradle和setting.gradle文件生成idea项目: gradle idea gradle这几年发展迅猛,github越来越多的项目都开始采用gradle来构建了,但是并不 ...
- eclipse处理长字符串拼接快捷方法类
情景: 你在后台写sql文访问数据库时是不是要这样写 String sql="select a," +"b," +"c " +"f ...
- oracle dg坏境主库redolog改动大小
--备库standby 主库四个redolog 曾经都是50M大小 SQL> alter database recover managed standby database cancel; ...