【Java web第三章】

第三章:Servlet

一,Servlet技术
1.Servlet概述:它是运行在web服务器端的一个java小程序,简单来说,它就是一个java类
在使用servlet时,需要导入javax.servlet下的jar包。比如:tomcat服务器提供了
servlet的servlet-api.jar包,所以在开发时用tomcat服务器就不需要再导入servlet的jar包。
Servlet它是一个资源,是用来被用户访问的资源,同时是一个动态资源,它是由sun指定的servlet规范。
Servlet的作用:它是基于Http协议的,主要是用来接收客户端发送的请求,处理请求,把数据响应给客户端。

2.Servlet的入门
Servlet的接口和实现类:
Servlet它是一个接口,在javax.servlet 包下面。

3.五个方法:
destroy():执行这个方法,销毁了servlet对象
init(ServletConfig config):在web服务器创建servlet对象以后,执行这个初始化方法。
service(ServletRequest req, ServletResponse res) :服务方法,用来接收客户端发送的请求,并且响应数据到客户端
getServletInfo():servlet 的信息,比如作者、版本和版权,这个方法在开发中不用。
GenericServlet,它是一个类,实现了Servlet接口
HttpServlet,它是一个类,实现了Servlet接口,同时继承了GenerciServlet

4.创建servlet三种方式
直接实现Servlet接口。
继承GenericServlet类
继承HttpServlet类。
在开发中,创建servlet,通常去继承这个HttpServlet.
例:class MyServlet extends HttpServlet{ }

5.实现第一个Servlet程序
1.自己手动创建Servlet,通过Dos命令窗口编译Servlet,把编译好的class文件部署到tomcat服务器运行。
2.通过Eclipse创建Servlet,部署到tomcat服务器,然后就可以访问咱们所需要的Servlet。
步骤:
1.创建HelloWordServlet,继承GenericServlet
2.重写父类GenerciServlet的service方法。
3.在服务方法里面,处理客户端的请求后,把数据响应给客户端。

6.Servlet的生命周期:
生命周期:自然界人从出生到最终走向西方极乐世界,这个周期过程就是人的生命周期,
其实servlet的生命周期和人的一样,从servlet对象被创建,经过使用servlet对象,
到最终servlet对象被销毁,整个过程就是servlet的生命周期。
与生命周期相关的三个方法:
初始化阶段:
init(ServletConfig config) 初始化方法:首次访问这个Servlet,servlet对象会被创建,执行初始化方法,执行一次。
运行阶段:
service(ServletRequest req, ServletResponse res) 服务方法:每次访问servlet时,服务方法都会被执行,执行多次
销毁阶段:
destroy()销毁方法:在服务器正常关闭时。会执行销毁方法,执行一次

7.Servlet应用-HttpServlet
在开发中,通常浏览器访问web服务器端的资源,是带有协议的访问,比如说http协议、https协议等,所以说
在创建servlet时。需要使用带有协议的servlet,那么咱们程序员在创建servlet时,通常用继承HttpServlet的
方式来实现。
查看HttpServlet源码得到的结论:
在HttpServlet里面重写service方法时,因为在service方法里面,最终调用doGet或者doPost方法,
所以说在重写服务方法时,一般情况下不会重写service方法,而是直接重写doGet和doPost方法
在客户端发送get请求,在服务器端就用doGet方法接收、
在客户端发送Post请求,在服务器端就用doPost方法来接收
8. 使用Eclipse工具开发servlet
通过开发工具创建servlet有两种方式:
1.先创建一个普通的java类,需要去实现Servlet接口,或者继承对应的HttpServlet(GenericServlet)类,
咱们普通的java类就具有了servlet功能,所以需要手动在web.xml配置文件中添加访问servlet的路径信息。
2.直接创建servlet,会自动在web.xml文件中添加访问servlet的路径信息。
步骤:
1.新建web项目:
比如说:创建一个web项目名称:chapter03
2.创建一个servlet程序:
比如说:先创建一个包,名称cn.itcast.servlet ,servlet的名称:TestServlet01
3.部署和访问servlet:
通过开发工具部署web项目,如chapter03,访问它下面的servlet资源:

9.实现Servlet的虚拟路径映射
1.Servlet的多重映射:一个Servlet,可以对应多个访问路径。

### 电影《哪吒2票房数据爬取方法 为了实现对电影《哪吒2》从上映至今的票房数据爬取,可以通过以下方式完成: #### 数据源的选择 通常情况下,电影票房数据可以从公开网站上获取,例如猫眼电影、淘票票或豆瓣等平台。这些网站提供了详细的票房统计信息,包括每日票房、累计票房以及分地区票房等。 #### 使用Python进行网页爬虫开发 以下是基于Python的一个基本流程来爬取目标数据[^1]: 1. **发送HTTP请求** 需要向目标网站发起GET请求并模拟浏览器行为以避免被反爬机制阻止。这一步骤中需设置合适的User-Agent和其他必要的头部字段。 ```python import requests headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36' } url = "https://www.maoyan.com/films?showType=3" response = requests.get(url, headers=headers) ``` 2. **解析HTML页面** 利用`BeautifulSoup`库或者正则表达式提取所需的信息。这里假设我们已经定位到了具体的影片链接地址,并进一步访问其详情页抓取票房相关内容。 ```python from bs4 import BeautifulSoup soup = BeautifulSoup(response.text, 'html.parser') movie_links = [] for link in soup.find_all('a', href=True): if "/films/" in link['href']: full_url = f"https://www.maoyan.com{link['href']}" movie_links.append(full_url) ``` 3. **处理动态加载的内容** 如果遇到JavaScript渲染后的数据,则可能需要用到Selenium或其他自动化测试框架驱动真实浏览器运行脚本后再读取DOM树中的节点值[^2]。 4. **存储结构化数据** 将收集来的原始资料转化为易于操作的形式存入数据库表单里供后续分析调用。 ```python import pandas as pd dataframe = pd.DataFrame({ 'date': dates, 'box_office': box_offices }) dataframe.to_csv('./nezzar_boxoffice.csv', index=False, encoding='utf_8_sig') ``` 以上就是关于如何利用编程手段自动采集网络资源的一般思路概述[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值