Servlet
什么是Servlet
Servlet 是在服务器上运行的小程序。一个Servlet就是一个Java类,并且可以通过“request-response”编程模型来访问的这个驻留在服务器内存里的Servlet程序。
Servlet接口实现类开发步骤
第一步:创建一个Java类继承于HttpServlet父类,使之成为一个Servlet接口
实现类。而HttpServlet类也是继承了抽象类GenericServlet。
public class OneServlet extends HttpServlet{
}
第二步:重写HttpServlet父类两个方法。doGet和doPost。
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("Oneservlet");//处理代码
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("Oneservlet");//处理代码
}
第三步:将Servlet接口实现类信息“注册”到Tomcat服务器。
网站----->web----->WEB-INF----->web.xml
<!--将Servlet接口实现类类路径地址交给Tomcat-->
<servlet>
<servlet-name>mmm</servlet-name><!--声明一个变量储存servlet接口实现类类路径-->
<servlet-class>com.bjpowernode.Oneservlet</servlet-class><!--声明servlet接口实现类类路径-->
</servlet>
<!--为了降低用户访问servlet接口实现类难度,需要设置简短请求别名-->
<servlet-mapping>
<servlet-name>mmm</servlet-name>
<url-pattern>/one</url-pattern><!--设置简短请求别名,别名在书写时必须以"/"为开头-->
</servlet-mapping>
Servlet的生命周期
servlet生命周期流程:
1.通过init方法初始化servlet。
2.通过service,或者doGet、doPost提供服务。
3.在重启或关闭时自动对servlet进行销毁。
init方法
用init()方法他在Servlet初次创建时被调用,之后处理每个用户的请求时,则不在调用这个方法,init() 方法在Servlet的生命周期中只调用一次。因此,他主要用于一次性的初始化。
当用户调用一个 Servlet 时,就会创建一个 Servlet 实例,每一个用户请求都会产生一个新的线程,适当的时候移交给 doGet()或 doPost() 方法。
public void init(ServletConfig config) throws ServletException {
System.out.println("正在初始化servlet对象");
}
service方法
对于service方法,一般来说这个方法是不需要重写的,因为在HttpServlet中已经有了很好的实现,它会根据请求的方式,调用doGet,doPost以及其他的doXXX方法。
Service有两个参数(ServletRequest和ServletResponse),ServletRequest保存了客户向服务器发送的请求,而ServletResponse用来设置如何对客户进行响应。
protected void service(ServletRequest req, ServletResponse rep) throws ServletException, IOException {
System.out.println("开启服务时调用");
}
destroy方法
destroy() 方法和init()方法和一样也是只会被调用一次,在Servlet生命周期结束时被调用。不再需要Servlet实例,调用,释放资源,Servlet实例不能再提供服务。
public void destroy() {
System.out.println("销毁时调用");
}
Servlet与JSP九大内置对象的关系
MVC模型
MVC(Model View Controller)是一种软件设计的框架模式,它采用模型(Model)-视图(View)-控制器(controller)的方法把业务逻辑、数据与界面显示分离。用通俗的话来讲,MVC的理念就是把数据处理、数据展示(界面)和程序/用户的交互三者分离开的一种编程模式。
- M即model模型。在MVC的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中立的,模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
- V即View视图是指用户看到并与之交互的界面。比如由html元素组成的网页界面,或者软件的客户端界面。MVC的好处之一在于它能为应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,它只是作为一种输出数据并允许用户操作的方式。
- C即controller控制器是指控制器接受用户的输入并调用模型和视图去完成用户的需求,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。
MVC的优势:
1.各层各司其职 ,互不干扰。如果三层中某一层出现问题,那么对这一层进行相应的更改就行了,并不需要把所有层代码进行更新。
2.有利于开发者的分工,比如说网页设计人员就可以去专门去修改视图层,而对业务逻辑熟悉的人员就可以专门去修改模型层的东西,而其他人员就可以专门的去修改控制器的东西。
3.有利于代码的重用,在维护和二次开发中 ,mvc框架可以最大化的提高代码重用性,节省开发时间,提高效率。