- 什么是入servleet呢?servlet是sun公司早期为了和微软公司的动态网页技术所竞争,也开发了自己的一套动态网页技术。
其实servlet就是一个java类,只不过是运行在服务端的java类,它的作用就是处理前端用户的请求和相应。
- 还有一种方式就是让你知道servlet的作用,早期的网页是静态的,虽然可以写JavaScript,但是操作基本都是前端与用户
的一些交互,并不能控制页面内容的走向,而servlet就可以通过响应流,实时输出前端的页面,页面的走向具体可以由后
台的逻辑掌控
- servlet使用时我们可以实现servlet这个接口,并实现它未实现的方法,另一种方法还可以继承HttpServlet,并重写它的
doGet()和doPost()方法(servlet只是一个接口,底下有一个抽象实现类GenericServlet,而GenericServlet底下有一个
具体实现类HttpServlet,这里为什么会有一个GenericServlet呢?GenericServlet其名为通用的Servlet,目前web端用的
http协议,可能当时sun公司当初为了扩展,考虑到后期还可能有别的协议,所以在这里预留了GenericServlet,可见
sun当时的野心)
- 第一种方法我们实现Servlet接口,并实现,它的5个未实现的方法。如下
import java.io.IOException; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class UserServlet implements Servlet { @Override public void destroy() { // TODO Auto-generated method stub } @Override public ServletConfig getServletConfig() { // TODO Auto-generated method stub return null; } @Override public String getServletInfo() { // TODO Auto-generated method stub return null; } @Override public void init(ServletConfig config) throws ServletException { // TODO Auto-generated method stub } @Override public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { // TODO Auto-generated method stub } }
- 对这5个方法中getServletConfig()和getServletInfo()不用管它,这两个方法在GenericServlet类中会有具体的实现,可以
获取servlet的一些配置信息。一般我们会继承HttpServlet这个类,那剩下的就只有3个类了,正是这三个类演绎了servlet
的生命周期。当我们的Servlet类在第一次访问时,是由web容器帮我们实例化的,并且会调用其中的init()方法,该方法只
会在该对象创建时只调用一次,然后会执行其service()方法。当我们第二次再次访问该类时,只要web容器没关闭,init方
法不会再执行的,但是service()方法每次访问都会执行的。而destroy()方法是在web关闭或者该项目从servlet容器中移除
时才会调用。具体的业务逻辑我们可以放在service()方法中。
- 第二种方法继承HttpServlet,只用重写它的doGet()和doPost()方法,我们的业务逻辑会根据相应的(get/post)请求,写在
相应的方法中。HttpServlet里面的doGet()和doPost()方法会有HttpServlet类中的service方法判断如果是get请求就调用
doGet()方法,如果是post请求就调用doPost()方法,而此时的doGet()和doPost()方法已由我们重写,那么就会调用我们
自己的doGet()和doPost()方法。
javaweb servlet的理解
猜你喜欢
转载自blog.csdn.net/include110/article/details/86441543
今日推荐
周排行