Java Servlet基础——JSP

Java Servlet基础

目录
servlet的部署、创建与运行
servlet的工作原理
通过JSP页面访问servlet
doGet和doPost方法
重定向与转发
使用session

此次将使用javax.servlet.http包中的类, javax.servlet.http包不在JDK的核心类库中,因此需要将Tomcat安装目录lib子目录中的servlet-api.jar文件复制到Tomcat服务器所使用的JDK的扩展目录中,比如,复制到D:\jdk1.7\jre\lib\ext中。

(一)servlet的部署、创建与运行

Java Servlet的核心思想是在服务器端创建能响应用户请求的对象,即创建servlet。
源文件及字节码:
1.创建Servlet类:写一个创建servlet的类就是编写一个特殊类的子类,这个特殊的类就是javax.servlet.http包中的HttpServlet类。
2.字节码文件的保存:为了调试代码的方便,可以事先将创建servlet的类的源文件,按着其包名,保存到Web服务目录的下述子目录中。
编写部署文件web.xml:
1.Servlet类的字节码保存到指定的目录后,必须为Tomcat服务器编写一个部署文件,只有这样,Tomcat服务器才会按用户的请求使用Servlet字节码文件创建对象。
2.
在这里插入图片描述
在这里插入图片描述
servlet的创建与运行:
servlet由Tomcat服务器负责创建,Web设计者只需为Tomcat服务器预备好Servlet类的字节码文件、编写好相应的配置文件web.xml即可。用户就可以根据web.xml部署文件来请求服务器创建并运行一个servlet。
向servlet传递参数的值:
在这里插入图片描述

(二)servlet的工作原理

servlet是javax.servlet包中HttpServlet类的子类的一个实例、由服务器负责创建并完成初始化工作。
servlet对象的生命周期:
一个servlet的生命周期主要有下列三个过程组成:
1.初始化servlet。servlet第一次被请求加载时,服务器初始化这个servlet,即创建一个servlet,这servlet调用init方法完成必要的初始化工作。
2.诞生的servlet再调用service方法响应用户的请求。
3.当服务器关闭时,调用destroy方法,消灭servlet。
init方法:
在这里插入图片描述
servlet第一次被请求加载时,服务器创建一个servlet,这个对象调用init方法完成必要的初始化工作。 init方法只被调用一次。
service方法:
在这里插入图片描述
当后续的用户请求该servlet时,服务器将启动一个新的线程,在该线程中,servlet调用service方法响应用户的请求。
destroy方法:
在这里插入图片描述
当服务器终止服务时,比如关闭服务器等,destroy()方法会被执行,消灭servlet。

(三)通过JSP页面访问servlet

让JSP页面负责数据的显示,而让一个servlet去做和处理数据有关的事情。
通过表单向servlet提交数据:
在这里插入图片描述
当请求一个servlet时,可以加入参数及其值,格式是:servlet名?参数1=值1&参数2=值…参数n=值
通过超链接访问servlet:
在这里插入图片描述

(四)doGet和doPost方法

可以在Servlet类中重写doPost或doGet方法来响应用户的请求,这样可以增加响应的灵活性,并降低服务器的负担。
如果不论用户请求类型是post还是get,服务器的处理过程完全相同,那么可以只在doPost方法中编写处理过程,而在doGet方法中再调用doPost方法即可,或只在doGet方法中编写处理过程,而在doPost方法中再调用doGet方法。

(五)重定向与转发

1.重定向的功能是将用户从当前页面或servlet定向到另一个JSP页面或servlet;
2.转发的功能是将用户对当前JSP页面或servlet的请求转发给另一个JSP页面或servlet。
重定向sendRedirect方法:
在这里插入图片描述
重定向方法仅仅是将用户从当前页面或servlet定向到另一个JSP页面或servlet,但不能将用户对当前页面或servlet的请求(HttpServletRequest对象)转发给所定向的资源。
RequestDispatcher对象:
在这里插入图片描述

(六)使用session

在这里插入图片描述

PS:

Servlet类继承的service方法检查HTTP请求类型(Get 、Post等),并在service方法中根据用户的请求方式,对应地再调用doGet或doPost方法。因此,Servlet类不必重写service方法,直接继承该方法即可,可以在Servlet类中重写doPost或doGet方法来响应用户的请求。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值