javaweb学习第二天servlet笔记

Servlet

一、什么是servlet?
servlet就是一个普通类,比较特殊,可以再浏览器上运行

二、开发一个servlet的三种方法

1、实现javax.servlet.Servlet接口重写里面的方法
②、配置web.xml,注册和映射servlet

<!--配置web全局初始化参数-->
<context-param>
    <param-name>username</param-name>
    <param-value>root</param-value>
</context-param>

<context-param>
    <param-name>pwd</param-name>
    <param-value>123456</param-value>
</context-param>
<!--配置和映射servlet-->
<!--注册一个servlet-->
<servlet>
    <!--注册名-->
    <servlet-name>hello</servlet-name>
    <!--servlet的原路径-->
    <servlet-class>com.hpe.servlet.HellloServlet</servlet-class>
    <!--初始化参数(一般定义在全局变量而不是servlet,在servlet定义一定要放在指定创建时机前面)-->
<init-param>
		<param-name>username</param-name>
		<param-value>root</param-value>
</init-param>
	<!--指定servlet的创建时机-->
	<load-on-startup>1</load-on-startup>
	<!--正数或0在Tomcat加载当前项目的时候创建,数值越大,创建顺序越靠后servlet-->
	<!--负数在第一次请求servlet的时候创建servlet和初始化-->
</servlet>
<!--映射-->
<servlet-mapping>
    <!--映射名,必须和注册名一致-->
    <servlet-name>hello</servlet-name>
    <!--浏览器访问地址url路径     /:代表当前web应用的根目录-->
    <url-pattern>/hello</url-pattern>

运行方式:根据url地址找<url-pattern配对映射,配对成功再根据映射名找对应的注册名,找到注册名再根据他给的原路径找到文件

2:继承javax.servlet.GenericServlet
1)是一个抽象类,这个类同时实现servlet和servletConfig方法
(2)其中Service方法是抽象方法,在GenericServlet里面定义了一个全局变量servletConfig(Private ServletConfig config),并且在init方法里面对全局变量进行初始化(this.config =servletConfig;)
(3)使用全局变量servletConfig实现了servletConfig接口里面的所有方法
(4)还单独定义了一个重载的init方法,他不是生命周期相关的方法,如果子类想在初始化的时候完成一些特殊的操作,子类可以重写init方法

3:继承javax.servlet.http.HttpServlet(推荐使用) (针对HTTP请求)
enericServlet再进行封装,封装了dopost doget),封装成了HttpServlet(针对http请求中的post、get做了分开处理,不是全部放在service中)
(1)继承GenericServlet,重写service方法
(2)在重写的
service(ServletRequest request,ServletResponse response)里面把request和response强转成Http ServletRequest和HttpServletResponse类型,这两个对象是针对于处理http请求和响应的
(3)在重载的service里面获取用户请求方式,并对请求方式进行判断,根据判断的结果去调用doGet和doPost方法(每次请求获取不同,doGet和doPost为抽象方法)(必须重写至少一个doXXX方法,否则会报405错误)

三、servlet生命周期
Servlet生命周期都是由servlet容器进行调用和执行的
重写方法{
构造方法:当第一次加载servlet的时候执行,执行一次,创建servlet实例,说明servlet是单例的
**Init()方法(初始化)**当第一次加载servlet的时候执行,执行一次,作用是初始化servlet
**service方法(接受请求,接受响应结果)**每次请求servlet都会调用该方法,获取用户请求(request)和响应结果(response)
destroy()方法放web项目卸载或者服务器关闭时执行,执行一次,释放servlet资源
}
浏览器发送请求给Tomcat,Tomcat判断是不是第一次请求,根据请求的url去xml中找映射的url,就找到了注册的servlet。找到相应的servlet 调用相应的构造方法(一次),调用init方法完成初始化(一次),然后调用service方法,service处理以后,将结果响应给Tomcat,Tomcat发送给浏览器。
如果不是第一次请求,就直接调用service方法,最后项目卸载或者关闭资源时调用destroy方法(一次)
四、什么是servlet容器
就是tomcat服务器,负责管理一组servlet、jsp等的生命周期

在这里插入图片描述

五、servlet和客户的通信方式:HTTP协议的请求/响应模型:
request接受客户端发送过来的请求,
response接受服务器响应活来的结果(html页面)

六、请求方式get post
默认为get,超链接为get方式
二者区别:
①在客户端,get以地址栏(url)的方式提交,post以表单的方式提交
②get的参数会显示在地址栏,而post不会,post的安全性相对较高
③get传送的数据量非常小,每次只能1k;post传送的数据量较大,默认不受限制
④ post可以进行文件的提交,而用get则不可以

七、常用状态码
200:成功
302:请求重定向,你访问我,我通知你访问另一个资源
304:如果再次访问的页面没有经过修改,通知浏览器去读缓存
404:找不到资源(第一种没有找到servlet,第二种没有找到servlet中相应的方法)
500:服务器程序出错(如空指针)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值