一.认识和熟悉Servlet
1.扩写:Servlet = Server + let 服务器小程序
2.Servlet是一种服务器端组件
3.一个Servlet是一个服务器端的Java程序,负责接受客户端请求,处理请求,生成响应返给客户端
4.创建一个Servlet就是创建一个Servlet类,可通过实现Servlet接口创建一个Servlet类
5.创建Servlet的步骤(这里给出的是实现Servlet接口创建Servlet的步骤):
(1)实现Servlet接口,创建一个Servlet类
(2)实现继承的所有方法,将生成的throw new UnsupprortedOerationException("Not supported yet" )语句全部删除
(3)在Service()方法中编写代码,处理请求
(4)在web-inf目录下创建web.xml,然后添加Servlet的配置,其中url-pattern是用于设置访问servlet的路径。路径以/开头,后面自己定义路径名称即可。
(5)设置表单的action属性为要访问的servlet的路径,在设置表单的action属性的时候,不需要添加/,直接写servlet路径即可
一个web程序在浔兴之前,必须要进行打包,打包成一个war文件,然后在服务器上进行部署,才能进行访问。
6.如何访问一个Web程序
http://计算机名或ip地址:端口号/程序的上下文路径
如:http://10.2.63.129:8084/LoginSystem/
7.如何访问一个web程序中的页面资源
http:计算机主机名或ip地址:端口号/程序的上下文路径/页面资源的路径
如:http://10.2.63.129:8084/LoginSysterm/second.html
8.如何访问一个Web程序的Servlet
http://计算机主机名或ip地址:端口号/LoginSysterm/ls
如果要追加参数http://localhost:8080/LoginSysterm/ls?username=anna&pwd=1234(不能有空格)
9.question:
一个servlet什么时候被实例化:第一次收到请求的时候
二.Servlet生命周期
一个Servlet在第一次收到请求的时候被实例化,后续再次请求该servlet,则直接用相同的实例服务后续请求。
1.Servlet工作原理:
->Web容器收到请求
->查找对应的Servlet
->加载Servlet类
->实例化Servlet
->调用init()方法初始化servlet
->Web容器将请求传递给servlet,调用service方法处理请求,返回响应
->后续再次请求改Servlet,web容器直接使用相同的实力,调用service方法服务请求
问:指出第一次访问一个Servlet,servlet方法的调用顺序
init()->service()->doGet()/doPost()->destroy()
三:创建Servlet的三种方式
1.实现Servlet接口,需要实现Servlet的所有方法,主要是service()
2.继承GenericServlet类
必须实现抽象方法service(),其他方法需要的话重写即可
3.继承HttpServlet类
可不实现任何方法,但是因为要处理请求,所以一般重写doGet()/doPost(),不需要重写service,因为service会根据请求提交方式调用doGet(),或doPOst().
四.表单提交方式
1.Get
Get方式提交一个表单,表单中的参数会追加到地址栏的url后面,相对不安全
且能够发送的数据量有限制,具体看浏览器的限制
Get方式提交请求多事为了从服务器请求数据,如百度的根据关键字检索内容
2.Post
Post方式提交一个表单,表单中的参数不会追加到地址栏,而是作为请求的正文发送,相对安全
能够范松的数据量没有限制,但是要看服务器的处理能力
Post方式提交数据多事为了发送数据给服务器,多用于实现数据的增删改,如注册或修改个人消息
五,Servlet相关API(Application programming interface):Servlet相关的类和接口
1.ServletRequest
包含了操作请求的一些基本犯法,如获取参数的一些方法:getParameter(),getPara,eterValues()等
2.ServletResponse
包含了一些操作响应的基本方法,包括setContentType(),getWriter()等
3.HttpServletRequest(继承自ServletRequest)
在SerletRequest接口方法的基础上添加更多方法,如操作请求报头信息的方法,如getHeader()
4.HttpServletResponse
在ServletResponse接口的基础上添加了更方法,包括用于设置响应报头信息的方法,如serHeader()等,如果设置的包头心事日期,整数等类型,可考虑调用对应方法,如setDateHeader(),setIntHeader()等
六.ServletConfig-Servlet配置接口
每个servlet都有一个Servlet-Config对象,包含该servlet的配置信息,如servlet的初始化参数
如果有一些初始数据是某个servlet要用的,可以定义为该servlet的初始化参数
Servlet的配置信息会封装到一个ServletConfig对象中,可以再servlet中通过调用getServletConfig()方法获取该对象,进而通过该对象回去Servlet的初始化参数和其他配置信息
每个Servlet的ServletConfig独享实在调用servelt的init()方法的时候传入的
七.ServletContext-Servlet上下文接口
一个成熟只有一个上下文对象么用于程序中共享数据
如果有一些初始数据是所有servlet或多个servlet要用的,可以考虑定义为程序的初始化参数,叫做上下文参数