一、Servlet简介与体系结构
1、Servlet是使用Java语言编写的服务器端程序。Servlet主要运行在服务器端,并由服务器调用。
2、Servlet是单实例的,所以应该尽量少使用全局变量
在了解Servlet运行流程在之前我们先来看看请求响应的过程,在客户端与服务器开始交互的时候,客户端需要向服务器端发出请求(request),服务器端收到请求后会给客户端进行一个回应(resposne),服务器端在给客户端发送回应的时候是需要进行一些查询的,详细看一下下面这一张图
客户端向Web插件发出request请求,Web插件对请求作出判断,如果请求是静态的,则直接连接到服务器,服务器对文件系统进行检索,将检索到的结果返回给服务器,最终由服务器给客户端回复一个response响应;如果是动态请求,Web插件将指向Web容器,在第一次请求时Web容器会创建Servlet实例,只进行一次实例化,实例化之后,Web容器进行代码的拼凑,然后返回给服务器,服务器根据返回过来的内容对文件系统进行检索,文件系统将检索到的结果返回给服务器,最终服务器向客户端发送response响应。
Servlet体系结构
二、Servlet实现方式
方式一:实现Servlet接口,重写其中的方法
方式二:继承GenericServlet类,重写service方法
方式三:继承HttpServlet类(常用)
根据要求可以重写doGet(xxx)、doPost(xxx)、service(xxx)方法,如果重写了service(xxx)方法,则只执行service(xxx)方法,不执行doGet(xxx)或doPost(xxx)方法。
三、Servlet配置方式
方式一:注解配置
@WebServlet(urlPatterns={"/xxx"})
方式二:web.xml(部署描述符)配置
注意:<load-on-startup>属性的值为0或正数指明当容器启动时就加载该Servlet,值越小,优先级越高;但是当loadOnStartup的值为负数或没有此属性时则当请求该Servlet时,才加载该Servlet。
接下来我们实现一个简单的前端与后台的交互----登录
要实现前端与后台的交互则必须将项目部署到服务器中,如果不知道如何配置Tomcat服务器,可以产看我的博客https://blog.csdn.net/west_xia_616/article/details/79718267,里面是详细的配置步骤,JavaWeb项目的建立也可以查阅我的点击链接查看我的博客https://blog.csdn.net/west_xia_616/article/details/79704828,里面有详细的建立步骤,右键单击服务器,点击Add and Remove,出现如下图所示的界面
将HelloWeb项目选中,然后点击Add,则Configured的里面就会出现HelloWeb项目,点击完成之后,项目就被部署到了服务器中,然后启动服务器,在浏览器中输入:http://localhost/HelloWeb/hello/login.html,就能显示登录界面,如下图所示:
如果输入的用户名和密码符合,则会显示欢迎界面,如下图所示:
如果用户名或密码不符合则会显示失败页面,如下图所示:
原码我放在GitHub中:https://github.com/AnsrFor/web.git,有兴趣的可以进入查看,<