Servlet学习(一)

1.web修改项目名称和项目访问名称(项目->myeclipse->web下修改)
2.<servlet-mapping>
	<servlet-name>anyName</servlet-name>
	<url-pattern>可以书写的形式(1:/anyName 2:/XX.html 3:/*(任意的请求都访问该servlet) 4:*.html(无论哪个html都访问该servlet) 5:/(缺省Servlet,处理servlet请求中所有servlet都不处理的请求))</url-pattern>
</servlet-mapping>
3.为什么web.xml文件发生改动web服务器不需要重新restart,而修改了java类中的某段代码却要重新restartweb服务器呢?
	这是因为我们在做开发的时候会给tomcat配置reload属性,当tomcat容器检测到web.xml文件发生改变的时候,tomcat
	服务器会自动从新加载,而java中的某段代码的改动不会引起web.xml文件的改变。所以必须要手动重启tomcat

4.针对客户端的多次Servlet请求,通常情况下,Servlet只会创建一个Servlet实例对象,也就是说,sevlet对象一旦被创建,就会驻留在内存中
	为后续的其他服务提供请求服务,直至web容器退出,servlet实例才会被销毁。

5.在servlet的整个生命周期里面。servlet只会调用一次init方法。而对servlet的每次请求访问,servlet都会导致servlet引起调用一次其service方法。
	对于每次请求访问,Servlet引擎都会创建一个HttpServletRequest对象,携带了客户端的请求信息,还会创建一个新的HttpServletResponse相应对象
	然后将这两个对象作为参数传递给它调用的service方法,service方法再根据请求的类型调用doxxx方法进行处理。

6.缺省Serlvet,我们在浏览器中输入http://localhost:8081/1.html此请求时,该请求仍然被转发到web容器serlvet下
	web容器会默认的给该资源配置一个缺省servlet,而去查找是否存在该页面,存在则发送该请求的资源给浏览器(tomcat自带缺省servlet)。

7.注意:浏览器请求的任何资源都要经程序(servlet处理)返回(程序发送资源文件)得到。

8.如果某个Servlet涉及到了线程安全问题,可以实现SingleThreadModel接口来实现其单例模式(变为线程安全:每次请求都创建新的对象。所以同一对象中的共享数据不被共享)

9.java还存在一些接口:Cloneable(克隆接口:实现该接口的对象,允许被克隆)、Serializable(序列化接口:内存中的对象可以存储在文件中,和网络中传输)

10.tomcat服务器收到浏览器请求后,会创建httpServletRequest,httpServletResponse,servletConfig(封装了servlet的配置信息),servletContext(代表当前应用),session,cookie对象,然后把这些对象传递给
	相应的Servlet进行处理

11.<servlet>
	<servlet-name></servlet-name>
	<servlet-class></servlet-class>
	<init-param>
		(可以给每个servlet配置初始化参数.配置完成后,服务器会自动把该参数封装到servletConfig对象中,并且在调用init方法时,该参数被初始化,被封装在ServletConfig中。String name = this.getServletConfig().getInitServletParamter("name"))
		<param-name>data</param-name>
		<param-data>XXX</param-data>
	</init-param>
</servlet>

12.servletContext对象:代表当前整个web应用(用于管理整个web应用)。
	可以通过servletContext实现servlet之间的数据传递,所有的servlet都共享一个servletContext对象
	获取:this.getServletConfig().getServletContext();或this.getServletContext();

13.ServletContext域对象的应用:(这是一个容器)
	通常被称为Context域对象(四大域对象:Context , request , Session , page)。
	作用:
		1.获取WEB应用的初始化参数
		2.实现Servlet的转发
		3.利用ServletContext对象读取资源文件(1.得到文件路径 2.读取资源文件 的三种方式 3.properties文件(属性文件))
		4.实现Servlet之间的数据共享(聊天室)
		*:单一页面之间的数据传递不适用servletContext于来进行实现,而采用request域来进行
	  <!-- 为所有的Context对象配置初始化参数 -->
	  <context-param>
	  	<param-name>name</param-name>
	  	<param-value>lijun</param-value>
	  </context-param>

	servletContext管理WEB资源:(常用做配置文件:1.xml文件(数据和数据之间存在关系) 2.properties(数据和数据之间为平行关系)
			1.//读取文件,原文件路径:/src/db.properties(这是apache封装的读取默认路径为本资源应用下的文件,根路径为:/ServletStu/webroot/)
			InputStream in = this.getServletContext().getResourceAsStream("/WEB-INF/classes/db.properties");	

			2.//采用传统文件形式也是能读的。(通常下载的时候时候,能获取到资源文件的名称)
			String path = this.getServletContext().getRealPath("/WEB-INF/classes/db.properties");
			FileInputStream fin = new FileInputStream(new File(path));

			3.如果读取该资源文件的类不是Servlet就只能通过类装载器去读了(因为管理资源的是ServletContext对象,但是ServletContext是属于Action层。)
			

时间: 2024-11-05 06:49:56

Servlet学习(一)的相关文章

测试servlet学习笔记

操作方法: 1.新建工程: File-->new-->Java Project-->TestServlet(工程名称)-->Finish. 2.加载servlet-api.jar类包: TestServlet(右键)-->Build Path-->Configure Build Path-->Library -->Add External JAR Selection-->(浏览在tomcat的lib目录下找到servlet-api.jar选中后点击打开

SERVLET 学习笔记

SERVLET 学习笔记 一.Servlet基本定义 Servlet是服务器端上面运行的一段小的java程序,一个servlet就是一个简答的java类.通常servlet都是通过请求和返回的模式来被访问的,客户端通过resuest请求,servlet则通过response来返回需要的内容. 二.Tomcat容器等级 Tomcat容器等级分为四个等级,由内向外分别是:context容器àSERVLET容器àHOST(主机)容器àENGINE(引擎)容器.其中,CONTEXT容器,一个CONTEX

Servlet学习笔记(八)—— 自定义过滤器的编写改进:自定义实现FilterChain

笔记六中实现了三种过滤器:字符编码过滤.登录权限过滤.敏感词过滤,但是有个缺陷就是,限定了过滤顺序,而不能实现先进行request过滤,最后response过滤,并且中间几项过滤的顺序不能动态改变.所以这里做个改进,实现一个过滤顺序的FilterChain. 多个Filter的执行顺序在这篇博文中得到很仔细的讲解,总结一点,多个过滤器的执行顺序是根据web.xml中不同<filter-mapping>的顺序来先后执行的,比如: <?xml version="1.0"

JavaWeb 后端 &lt;二&gt; 之 Servlet 学习笔记

JavaWeb 后端 <二> 之 Servlet 学习笔记 一.Servlet概述 1.什么是Servlet Servlet是一个运行在服务器端的Java小程序,通过HTTP协议用于接收来自客户端请求,并发出响应. 2.Servlet中的方法 public void service(ServletRequest req,ServletResponse res) throws ServletException,java.io.IOException ServletRequest req:代表着请

servlet学习(1)

1.Servlet是sun公司提供的一门用于开发动态web资源的技术. 2.Servlet在web应用的位置: 3.创建Servlet的三种方式: (1)实现servlet的接口 (2)继承GenericServlet,覆写service方法 (3)继承HttpServle,覆写doGet()或者doPost()等方法 注意: 1>GenericServlet实现了 Servlet 和ServletConfig接口. GenericServlet可以直接被一个servlet扩充,尽管它更为一般的

Servlet学习(2)

1.Servlet的生命的周   (1)当浏览器第一次访问Servlet时,服务器会根据浏览器访问的路径,在web.xml文件中找到该Servlet的全路径,然后利用反射去调用方法. (2)调用init()为Servlet作初始化工作 (3)调用doXxxxx()为浏览器响应 (4)如果浏览器再次访问相同的Servlet,直实现从服务端维护的Servlet实例集合中取得对应的实现,为浏览器响应 (5)同一个Servlet实例,在服务端只有一个 (6)服务器在决定销毁Servlet实例之前,调用d

Servlet学习笔记(七)—— JSP概述

1.Servlet两个缺陷: ①所有HTML标签必须包在Java字符串中,使得发送HTTP响应十分繁琐: ②所有文本和HTML标签都必须进行硬编码,即使对表示层做极其微小的修改,也需要重新编译. 2.注释: (1)JSP备注:<% %>,不会发送到浏览器,不能嵌套 (2)HTML备注:<!-- -->,不被容器处理,直接发送到浏览器,用途之一是标识JSP页面.在处理带有许多JSP片段的应用程序时,开发者通过查看HTML源代码,可以轻松查出某个HTML代码部分生成了那个JSP页面.

Servlet学习(三)Servlet编程实例-网站登录(修改版-增加数据库-附源码)

我们为刚才的那个示例Servlet学习(二)Servlet编程实例-网站登录添加上数据库,组成一个较为完整的登录功能. 在开始之前我们得首先了解下一些常用的java术语: PO(persistant object) 持久对象 在o/r 映射的时候出现的概念,如果没有o/r映射,就没有这个概念存在了. 通常对应数据模型(数据库),本身还有部分业务逻辑的处理. 可以看成是与数据库中的表相映射的java对象. 最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合. PO中应该不包含

第一个servlet学习

First Servlet(Servlet 学习日记) 前期准备 IDE: MyEclipse 2014 详细步骤 新建一个web project 右键新建servlet 3.代码详细如下 import java.io.DataOutputStream; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.H

Servlet学习的两个案例之网站访问次数的统计

一.统计次数的Servlet源码 package com.shanrengo; import java.io.IOException; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.