servlet笔记

Servlet基础与开发

一、概念

1.servlet 是一种动态web资源  ; 需要放在servlet容器中(web应用),由容器调用才可以执行  ;

扩展:动态web资源:根据输入不同输出也不同;  静态web资源:输出都是相同的 ;

2.作用:

   处理请求  ---  获取请求参数、类型转换、编码处理、参数封装  ;

   创建响应  ---  响应的编码、响应头设置、数据转换xml/json   ;

二、servlet开发步骤

1.手动开发一个servlet程序

1)写一个类,实现(或间接实现)Servlet接口,并添加未实现的方法;

2)将编译后的class文件,放在web应用中 ; 并在web应用的web.xml中配置servlet对外访问的虚拟路径 ;

具体看word文档 ;

2. 开发一个servlet程序流程:

1)创建dynamic project

2)  创建servlet模板(见word笔记)

3)按照模板创建一个servlet

4)将dynamic project添加给Tomcat服务器

5)启动服务器

注意: 只有将servle在web.xml中配置,才能访问该servlet

3. 开发实例:

需求:开发一个servlet程序,通过浏览器来访问这个servlet ; servlet接收浏览器的请求并将代表时间的字符串发送给浏览器 ;

1)创建dynamic project ; 

2) 创建FirstServlet, 实现 Servlet接口(或继承GenericeServlet),并添加未实现的方法 ;

3)实现service(), 将代表当前时间的字符串发送给浏览器 ;

public class FirstServlet extends GenericServlet{
	public void service(ServletRequest req, ServletResponse res) throws ServletException, java.io.IOException{
		/* send time string */
		String dateStr = new Date().toLocaleString();
		res.getWriter().write("time: "+dateStr);
	}
}

4)将编译后的FirstServlet.class 文件 放入一个web应用中 ;

a. 手动创建classes,lib目录 ;将编译后的文件复制到classes目录下 ;

b. 在web应用的web.xml中,配置servlet对外访问的虚拟路径,如下:

<servlet></servlet>  配置一个servlet
<servlet-mapping></servlet-mapping>   配置一个servlet映射的URL路径,即访问该servlet的虚拟路径
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"version="3.0">

    <servlet>
        <servlet-name>FirstServlet</servlet-name>
        <servlet-class>com.tedu.servlet.FirstServlet</servlet-class>
    </servlet>

    <servlet-mapping>         
        <servlet-name>FirstServlet</servlet-name>
        <url-pattern>/FirstServlet</url-pattern>
    </servlet-mapping>
  
</web-app>

c.  重启服务器 ; 重启浏览器 ; 访问FirstServlet  ;

三、servlet继承关系

Servlet接口

   |-- GenericServlet抽象类

          |--  HttpServlet抽象类 : 实现了service(), 在service()判断请求方式,根据不同的请求方式来调用不同的doxxx方法

               |-- 自定义servlet类,继承HttpServlet , 并覆盖doGet()和doPost()方法,来处理GET请求和POST请求

public class ServletDemo2 extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request,
			HttpServletResponse response)
			throws ServletException, IOException {

	}

	protected void doPost(HttpServletRequest request,
			HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
	}
}

四、servlet调用过程

例如访问  http://localhost/servlet/FirstServlet

1. 通过host请求头获知浏览器访问的是哪一个主机;   Host:localhost

2. 通过请起行中的请求资源路径获知浏览器访问的是哪一个web应用、哪一个资源 ;   /day13/SecondServlet

3. 根据获取到的资源路径到web.xml文件中匹配真实的路径 cn.tedu.Servlet.RequestDemo1 ; 如下图:

           

4. 访问对应的servlet 

a. servlet在第一次被访问时创建servlet实例 ;

b.创建之后,服务器立即调用init()进行初始化操作 ;

c.之后servlet的实例会一直驻留在服务器的内存中   为后续请求服务 ;

   只要有请求访问该servlet,服务器就会调用service()来处理请求,直到服务器关闭或web应用被移除web容器中 ;

d. 随着web应用的销毁,servlet实例也会销毁 ; 在销毁前服务器会调用destory() ;

5.service()执行完之后,服务器负责将response缓冲器的数据取出来,按照http响应的格式发送给浏览器

五、servlet实例

六、.虚拟路径配置

1. 虚拟路径的配置方式

1)固定的路径    ,  <url-pattern>/FirstServlet</url-pattern>

2)通过星号(*)配置一个路径

a.  以 /  开头 , 以 /*结尾

b.   *.后缀  

2. 匹配的优先级

问题:可能会导致一个URL被多个mapping所匹配

规则1:哪一个更详细哪一个就起作用

规则2:*.后缀   的优先级永远最低 

乐播投屏是一款简单好用、功能强大的专业投屏软件,支持手机投屏电视、手机投电脑、电脑投电视等多种投屏方式。 多端兼容与跨网投屏:支持手机、平板、电脑等多种设备之间的自由组合投屏,且无需连接 WiFi,通过跨屏技术打破网络限制,扫一扫即可投屏。 广泛的应用支持:支持 10000+APP 投屏,包括综合视频、网盘与浏览器、美韩剧、斗鱼、虎牙等直播平台,还能将央视、湖南卫视等各大卫视的直播内容一键投屏。 高清流畅投屏体验:腾讯独家智能音画调校技术,支持 4K 高清画质、240Hz 超高帧率,低延迟不卡顿,能为用户提供更高清、流畅的视觉享受。 会议办公功能强大:拥有全球唯一的 “超级投屏空间”,扫码即投,无需安装。支持多人共享投屏、远程协作批注,PPT、Excel、视频等文件都能流畅展示,还具备企业级安全加密,保障会议资料不泄露。 多人互动功能:支持多人投屏,邀请好友加入投屏互动,远程也可加入。同时具备一屏多显、语音互动功能,支持多人连麦,实时语音交流。 文件支持全面:支持 PPT、PDF、Word、Excel 等办公文件,以及视频、图片等多种类型文件的投屏,还支持网盘直投,无需下载和转格式。 特色功能丰富:投屏时可同步录制投屏画面,部分版本还支持通过触控屏或电视端外接鼠标反控电脑,以及在投屏过程中用画笔实时标注等功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值