Servlet
web相关概念
软件架构:
1、C/S :客户端/服务器端
2、B/S :浏览器/服务器端 —>浏览器向服务器发起请求,服务器端中包含:一类是静态资源、另一类是动态资源.
资源分类:
1、静态资源 :所有用户访问后,得到的结果都是一样的,称为静态资源
eg: html, css,javascript…
2、动态资源: 每个用户访问相同资源后,得到的结果可能不一样,称为动态资源.
eg: servlet/jsp,php,asp…
注: 动态资源先转为静态资源再返回给浏览器.
静态资源可以直接被浏览器解析.
java相关:
JavaSE :java的基础
JavaEE:java语言在企业级开发中使用的技术规范的总和.
JavaME:java 迷你版
Servlet:
定义:
概念: 运行在服务器端的小程序.
配置Servlet
在web.xml中
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!-- 配置Servlet -->
<servlet>
<servlet-name>demo1</servlet-name>
<servlet-class>com.cy.web.servlet.ServletDemo1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>demo1</servlet-name>
<url-pattern>/demo1</url-pattern>
</servlet-mapping>
</web-app>
配置:
1、tomcat将全类名对应的字节码文件(.class)加载进内存.
Class.forName();
2、创建对象
class.newInstance();
3、调用service方法;
—原理:
1、 当服务器接收到浏览器端的请求后,会解析请求URL路径,获取访问的Servlet的资源路径.
2、查找web.xml文件,是否有对应的 <url-pattern>
标签体内容.
3、如果有,则再找到对应的<servlet-class>
全类名
4、tomcat会将字节码文件加载进内存,并创建其对象
5、调用方法.
生命周期:
Servlet:
1、被创建(执行init方法),只执行一次
* 默认情况下,第一次被访问时,Servlet被创建
指定Servlet的创建时机(在
<servlet>
标签下配置)
a、第一次被访问时,创建
*<load-on-startup>
值为负数
b、在服务器启动时,创建
*<load-on-startup>
值为0或正整数
说明:一个Servlet在内存中只存在一个对象,Servlet是单例的.
-
多个用户同时访问时,可能存在线程安全问题.
-
解决方法:尽量不要在Servlet中定义成员变量.即使定义了成员变量,也不要对其修改值.
2、提供服务:执行service方法,执行多次
3、被销毁:执行destroy方法,只执行一次.(服务器正常关闭时,Servlet被销毁)
新特性
Servlet3.0: 支持注解配置,可以不需要web.xml配置
在类上使用@WebServlet注解,进行配置.
@WebServlet("资源路径")