WEB应用程序开发之Servlet概述
什么是Servlet ?
Servlet是Server Applet的简称,意思为用Java编写的服务器端的程序. 它运行在web服务器中,web服务器负责Servlet和客户的通信以及调用Servlet方法,Servlet和客户通信采用“请求/响应”的模式。
Servlet的作用
1.接收用户发送的请求
2.调用其他的java程序来处理请求
3.根据处理结果,服务器将响应返回给客户
Servlet创建和使用
● 1.创建一个类继承javax.servlet.http包下的HttpServlet
● 2.在web.xml文件中配置Servlet
● 3.运行Servlet程序
通过浏览器访问http:localhost:8080/ helloword/配置的url-pattern
● 由于客户端是通过URL地址访问web服务器中的资源,所以Servlet程序若想被外界访问,必须把servlet程序映射到一个URL地址上,这个工作在web.xml文件中使用元素和元素完成。
创建发布web项目
第一步:继承HttpServlet方法
建立DemoServlet项目,对HttpServlet对象进行继承
对于上图中错误是因为缺少相对应的servlet.jar包我们将jar包放入相对应web包中,我讲jar包放入WEB-INF中的自建lib包中,再将jar包添加为库,刷新后jar包中的HttpServlet类就可以使用了
第二步:重写HttpServlet方法
在这里我们将重写HttpServlet中的三个方法以便后续了解
第三步:文件配置
为了能使我们预定好的项目可以在服务器上正常运行,我们需要在web中的web.xml文件中进行文件地址配置
在这里进行一点知识补充
xml 属于标记语言 html是标记内容指导内容如何显示 xml可扩展标记语言 用来保存数据 保存配置文件数据 web.xml 是web程序的配置文件,保存各种配置信息,在服务器启动时,由服务器读取
最后我们利用我们事先写好的超简易前端界面进行测试
最后测试结果如下
Servlet的生命周期
Servlet思绪流程图
部分关键源码讲解
DemoServlet源码
public class DemoServlet extends HttpServlet {
/*
构造方法 初始化对象
只被执行了一次,只创建了一个对象, 此对象由服务器创建的,
默认是在客户端第一次访问该servlet时创建 servlet对象
当 <load-on-startup>0</load-on-startup> 值>=0 时,会在服务器启动时创建
*/
public DemoServlet(){
System.out.println("DemoServlet");
}
/*
初始化,当servlet对象创建后,服务器会自动调用init(),
完成一些初始化操作.
如果我们没有需要初始化的操作,也可以不重写init(),但是服务器依然会调用,会调用父类的init()
*/
@Override
public void init(ServletConfig config) throws ServletException {
System.out.println("init");
System.out.println(config.getInitParameter("name"));//获得配置文件中的信息
System.out.println( config.getServletName());
}
/*
为请求提供服务,每一次http请求,都会调用service(请求,响应)
*/
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("service");
}
/*
当servlet对象销毁时,服务器会调用destroy(),
让我完成一些最终的操作(例如保存日志....)
如果我们没有一些最终的操作,也可以不重写destroy(),但是服务器依然会调用父类中destroy()
*/
/*@Override
public void destroy() {
System.out.println("destroy");
}*/
}
Web.xml源码
<?xml version="1.0" encoding="UTF-8"?>
-<web-app version="4.0" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee">
<!--xml 属于标记语言 html是标记内容指导内容如何显示 xml可扩展标记语言 用来保存数据 保存配置文件数据 web.xml 是web程序的配置文件,保存各种配置信息,在服务器启动时,由服务器读取 -->
<!--配置servlet 把servlet配置进来,服务器就知道有这么一个类 -->
-<servlet>
<servlet-name>demo</servlet-name>
<!--为servlet对象定义一个名称-->
<!--配置类的地址 ,让服务器使用反射机制创建对象 -->
<servlet-class>com.ffyc.firstweb.servlet.DemoServlet</servlet-class>
<!--配置的参数-->
<!--给所创建的Servlet对象配置一个应用名-->
-<init-param>
<param-name>name</param-name>
<param-value>jim</param-value>
</init-param>
<!--配置servlet何时被加载创建 默认是第一次访问, 值>=0服务器启动就可以创建-->
<load-on-startup>0</load-on-startup>
</servlet>
<!--为servlet配置一个供前端访问的映射地址-->
-<servlet-mapping>
<servlet-name>demo</servlet-name>
<url-pattern>/demourl</url-pattern>
<!--地址以/开头 /表示项目的根目录 http://localhost:8888/firstweb-->
</servlet-mapping>
</web-app>