第二篇 基础篇
第三章 深入Servlet技术
1 浏览器的request http数据报中包含一些关键信息,如访问方式、所用的http版本、所用的浏览器、当前的页面地址等信息
2 http查询数据方式
- get 方式: 提交的内容是显示在浏览器的地址栏中的,并且用get方式提交的网址不可以超过256个字符
- post 方式: 较get方式严格,不会将信息显示在地址栏中。需要提供数据类型和长度信息。数据类型分为普通文本数据(ASCII数据 application/x-www-form-urlencoded)和文件数据(二进制数据 multipart/form-data). Post方式常用于提交表单、用户资料以及上传数据。
3 Sevlet 概述
原理:Tomcat收到客户端发来的http request, tomcat对数据进行解析并封装成HttpServletRequest类型的request对象和HttpServletResponse类型的response对象。客户端的输入可以通过request对象获得,而通过对response对象的设置来完成对客户端的发送信息设置。根据浏览器采用的数据查询方式(get/post),server端程序在doGet()或者doPost()程序中进行response的设置即可。
4 编写servlet
多种方式实现,如:继承HttpServlet 类,并实现其doGet() 和doPost()方法
5 关于Servlet配置
web.xml
NOTE:以下均为一个servlet的设置,包含在一个<servlet></servlet>标签中
- <servlet-name>,<servlet-class> 分别对应了要配置的servlet 名字以及对应类
- <init-param>标签中可以配置初始化参数,一个servlet可以配置多个初始化参数,分别在<servlet-name> <servlet-value>中设置名字和值。 servlet中使用getSevletContext().getInitParam(String paramName)来获取配置的初始化参数值
- <load-on-startup>标签中配置servlet的加载方式,有0,1两种。若设置为1,则tomcat在启动时就加载该servlet,否则在第一次请求时加载。一般核心sevlet设置此项设置为1.
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> 3 <display-name>helloWorldServlet</display-name> 4 <welcome-file-list> 5 <welcome-file>index.html</welcome-file> 6 <welcome-file>index.htm</welcome-file> 7 <welcome-file>index.jsp</welcome-file> 8 <welcome-file>default.html</welcome-file> 9 <welcome-file>default.htm</welcome-file> 10 <welcome-file>default.jsp</welcome-file> 11 </welcome-file-list> 12 <servlet> 13 <description></description> 14 <display-name>HelloWorld</display-name> 15 <servlet-name>HelloWorld</servlet-name> 16 <servlet-class>com.ibm.HelloWorld.HelloWorld</servlet-class> 17 18 <!-- 第一个参数 --> 19 <init-param> 20 <param-name>helloween</param-name> 21 <param-value>password </param-value> 22 </init-param> 23 <!-- 第二个参数 --> 24 <init-param> 25 <param-name>admin</param-name> 26 <param-value>admin </param-value> 27 </init-param> 28 <!-- 第一个参数 --> 29 <init-param> 30 <param-name>babyface</param-name> 31 <param-value>babyface </param-value> 32 </init-param> 33 </servlet> 34 <servlet-mapping> 35 <servlet-name>HelloWorld</servlet-name> 36 <url-pattern>/HelloWorld</url-pattern> 37 </servlet-mapping> 38 </web-app>
- 最后在标签<servlet-mapping>中配置servlet和url的映射关系。其中<servlet-name>为之前声明的某servlet,<url-pattern>中为对应的客户端URL。注意:在<url-pattern>中可以设置多个路径名来隐藏server端实现的语言方式
6 可以从request对象中获得的信息包括:服务器IP、服务器名称、本地端口号、用户的语言环境、get/post方法、协议类型、客户端IP、客户端端口、远程用户、客户端session ID、用户请求的URL、浏览器类型、操作系统类型、从何页面单击链接到本页