J2EE搭建之九 写第一个servlet
2013-01-07 11:26
309 查看
按理来说,JSP和Servlet,应该把servlet排在第一位,因为它才是本质性的东西,但是无论怎样JSP,在view层的范围内,先讲也不为过。
1. 什么是servlet?
它生成动态的Web页面。 它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。 Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。【百度百科】
2. 如何写一个servlet?
一個Servlet基本上必須繼承javax.servlet.http.HttpServlet,如果你要處理的是GET請求,則重新定義doGet()方法。当然你也可以重写doPost()。关于Get和Post的区别,和客户端是如何触发这两种不同的方法的呢?
① 浏览器地址栏显示不同
② 向服务器端请求时发送的消息格式不同
③ get请求消息格式为:
④ post请求消息格式为:
通过浏览器进行文件上传时,一定要使用post方法。
通过浏览器地址栏输入网址的方式访问服务器资源,使用的都是get方法请求。
【转载自:http://www.itzhai.com/servlet-get-and-post-methods-in-the-http-protocol-to-achieve-the-distinction.html】
当然,更加具体的Servlet的写法,可以参阅
http://caterpillar.onlyfun.net/Gossip/ServletJSP/FirstServlet.html
其中,值得注意的是,关于容器对servlet的加载方法或者说策略方面的知识:
摘自文章:
當你的應用程式啟動後,事實上並沒有載入所有的Servlet。容器會在你請求時,才將對應的Servlet類別載入、實例化、進行初始動作,然後再處理 你的請求。這意謂著第一次請求該Servlet的客戶端,必須等待Servlet類別載入、實例化、進行初始動作所必須花費的時間,才真正得到請求的處 理。
如果你希望應用程式啟動時,就先將Servlet類別載入、實例化並作好初始化動作,則可以使用loadOnStartup設定。設定大於0的值(預設值-1),表示在啟動應用程式後就要初始化Servlet(而不是實例化幾個Servlet)。數字代表了Servlet的初始順序,容器必須保證有較小數字的Servlet先初始化,如果有多個Servlet在設定loadOnStartup時使用了相同的數字,則容器實作廠商可以自行決定要如何載入哪個Servlet。
1. 什么是servlet?
它生成动态的Web页面。 它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。 Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。【百度百科】
2. 如何写一个servlet?
一個Servlet基本上必須繼承javax.servlet.http.HttpServlet,如果你要處理的是GET請求,則重新定義doGet()方法。当然你也可以重写doPost()。关于Get和Post的区别,和客户端是如何触发这两种不同的方法的呢?
① 浏览器地址栏显示不同
② 向服务器端请求时发送的消息格式不同
③ get请求消息格式为:
GET /HelloWorld/loginServlet?username=abc&password=abc HTTP/1.1
④ post请求消息格式为:
POST /HelloWorld/loginServlet HTTP/1.1 Connection:keep-Alive username=abc&password=abc
通过浏览器进行文件上传时,一定要使用post方法。
通过浏览器地址栏输入网址的方式访问服务器资源,使用的都是get方法请求。
【转载自:http://www.itzhai.com/servlet-get-and-post-methods-in-the-http-protocol-to-achieve-the-distinction.html】
当然,更加具体的Servlet的写法,可以参阅
http://caterpillar.onlyfun.net/Gossip/ServletJSP/FirstServlet.html
其中,值得注意的是,关于容器对servlet的加载方法或者说策略方面的知识:
摘自文章:
當你的應用程式啟動後,事實上並沒有載入所有的Servlet。容器會在你請求時,才將對應的Servlet類別載入、實例化、進行初始動作,然後再處理 你的請求。這意謂著第一次請求該Servlet的客戶端,必須等待Servlet類別載入、實例化、進行初始動作所必須花費的時間,才真正得到請求的處 理。
如果你希望應用程式啟動時,就先將Servlet類別載入、實例化並作好初始化動作,則可以使用loadOnStartup設定。設定大於0的值(預設值-1),表示在啟動應用程式後就要初始化Servlet(而不是實例化幾個Servlet)。數字代表了Servlet的初始順序,容器必須保證有較小數字的Servlet先初始化,如果有多個Servlet在設定loadOnStartup時使用了相同的數字,則容器實作廠商可以自行決定要如何載入哪個Servlet。
<servlet> <servlet-name>helloworld</servlet-name> <servlet-class>cc.openhome.HelloWorld</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>helloworld</servlet-name> <url-pattern>/helloworld.view</url-pattern> </servlet-mapping>
相关文章推荐
- J2EE环境搭建(二)安装Eclipse插件和第一个Eclipse项目
- J2EE:Servlet项目搭建以及简单实现
- J2EE搭建之八 运行第一个JSP
- 我的第一个Servlet(一)——搭建环境
- J2EE环境搭建(二)安装Eclipse插件和第一个Eclipse项目
- J2EE搭建之十 servlet 和 web容器的关系
- SSM搭建-Maven创建第一个web项目(22-2)servlet演示
- 使用struts2代替servlet开发j2ee,快速搭建struts2开发环境
- 「后台之路第1篇」Ubuntu上利用Eclipse搭建第一个Servlet工程
- 搭建第一个web项目:实现用户的增删改查
- 手动创建Servlet--J2EE学习笔记
- Ubuntu12.04系统下写你的第一个Django1.5应用(一)--环境搭建--数据库,时区,语言,配置
- Android基础之用Eclipse搭建Android开发环境和创建第一个Android项目(Windows平台)
- Android学习笔记一:Android开发环境搭建和第一个应用程序
- Mac上搭建Go语言环境及第一个hello.go程序
- 【Java框架型项目从入门到装逼】第四节 - 编写第一个Servlet程序
- 【springboot 入门篇】第1篇 第一个spring-boot程序(多种搭建方式)
- Android学习笔记一:Android开发环境搭建和第一个应用程序
- J2EE性能优化(三)Servlet
- java环境搭建(及安装问题“No repository found containing”解决) 并创立第一个java程序