[Java Web 王者归来]读书笔记2

第二篇 基础篇

第三章 深入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>
View Code

  - 最后在标签<servlet-mapping>中配置servlet和url的映射关系。其中<servlet-name>为之前声明的某servlet,<url-pattern>中为对应的客户端URL。注意:在<url-pattern>中可以设置多个路径名来隐藏server端实现的语言方式

6 可以从request对象中获得的信息包括:服务器IP、服务器名称、本地端口号、用户的语言环境、get/post方法、协议类型、客户端IP、客户端端口、远程用户、客户端session ID、用户请求的URL、浏览器类型、操作系统类型、从何页面单击链接到本页

原文地址:https://www.cnblogs.com/stephen-init/p/3564436.html