1. 什么是servlet:servlet是服务端的applet,能够被服务器端加载并执行。响应处理客户端发送的请求,从而将处理结果返回给客服端
2. Tomcat的配置:
JAVA_HOME=/XXX/XXX/(JDK路径,bin的上一层目录)
CATALINA_HOME=/XXXX/XXX(tomcat的绝对路径 windows 中 X:\xxx\xxx)
3. 使用servlet的基本流程:
·客户端(很可能是Web浏览器)通过HTTP提出请求。
·Web服务器接收该请求并将其发给servlet。如果这个servlet尚未被加载,Web服务器将把它加载到Java虚拟机并且执行它。
·servlet将接收该HTTP请求并执行某种处理。
·servlet将向Web服务器返回应答。
·Web服务器将从servlet收到的应答发送给客户端。
由于servlet是在服务器上执行,通常与applet相关的安全性的问题并不需实现。servlet使相当数量的不可能或者至少是很难由applet实现的功能的实现成为可能。与现有系统通过CORBA,RMI,socket和本地(native)调用的通信就是其中的一些例子。另外,一定要注意:Web浏览器并不直接和servlet通信,servlet是由Web服务器加载和执行的。这意味着如果你的Web服务器有防火墙保护,那么你的servlet也将得到防火墙的保护。
4. servlet独特优点:(servlet是用java语言编写的)
servlet是持久的
servlet是与平台无关的
servlet是可扩展的
servlet是安全的
setvlet可以在多种多样的客户机上使用
5. get请求和post请求的区别:
get请求在发出请求时会把参数写在地址栏上,而post请求不会把要发送的参数显示在地址栏上
在浏览器的地址栏操作按
回车键,或者是热连接,都是get请求,form的method属性如果不指定,默认为get请
求。
6. 我们可以通过ServletRequest对象的方法来获取请求中传送的参数
getParameter(String name)方法,可以获得form表单中指定名字的参数,多参数同名时,只取一个。
getParameterNames(),可以获得一个迭代器Enumeration,通过这个迭代器,来获得
form表单中参数的名字。
getParameterValues(String name)获得指定的所有同名参数的值。
7. Servlet
servlet接口的实现类中的service()方法,在继承HttpServlet类时,如果没有覆盖父类
的service()方法,那么父类的service()方法会根据请求类型不同的会分别调用覆盖的
doGet(),doPost()方法,如果响应两种请求的动作相同,那么可以直接覆盖service()方
法。如果覆盖了
8. ServletConfi对象是由服务器生成,也就是由系统提供的,通过他可以获得启动信息。servletConfign对象和servlet是一一对应的
public void init(ServletConfig config) throws ServletException {
this.config=config;
}
8. Servlet的生命周期分为四个阶段:
1,创建Servlet对象,通过服务器反射机制创建Servlet对象,第一次请求时才会创建。
(默认)
2,调用Servlet对象的init()方法,初始化Servlet的信息,init()方法只会在创建后被
调用一次
3,响应请求,调用service()或者是doGet(),doPost()方法来处理请求,这些方法是运行
的在多线程状态下的。
4,在长时间没有被调用或者是服务器关闭时,会调用destroy()方法来销毁Servlet对象。
可以通过web.xml文件可以配置Servlet对象的创建时间,
<load-on-startup>数字</load-on-startup>,表示服务器启动时创建,并依照数字大小
按顺序创建,只用重要的Servlet才会是用这个设置。
9. 如何初始化参数:
可以在web,xml配置文件中通过<init-param>标签来配置初始化参数,可以用ServletConfig对象的getInitParameter(String name)方法来得到参数
<init-param>
<param-name>...</param-name>
<param-value>...</param-value>
</init-param>
10.lib文件夹下,服务器启动时就会被加载。
11.MVC框架:
Model,模型层,这一层一般是进行数据库访问,并且封装对象,这一层中也存放在访问
数据库取出信息封装成对象的类,也就是实体类的信息,可以使用JDBC或者Hibernate
实现这一层的功能。
Ctrl,控制曾,用来相应请求和调用写好的相应的访问数据库的方法,这一层是用来控
制请求的响应的,现在我们是使用Servlet来实现这一层,不过一般是会用开源的MVC
框架来实现这层,例如struts,或者是Spring的MVC框架。
View,表现层,他只用来显示数据和收集必要数据,收集数据的一般是form表单,不过要保证数据的正确性要是用JavaScript验证信息,以后我们会学 到的JSP(java serverpage)就是用来表现、显示数据的。
12.Service控制流转
ServiceContext,是Servlet上下文对象。在每个Service中都会有一个ServiceContext的引用,这个ServletContext是一个全局对象,每个应用中只有一个ServletContext对象