发表于: 2018-04-03 22:54:15
1 759
今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了Margin)
一、Servlet初步理解
1.简单的说,Servlet是一个只有五种方法的接口,其定义了一套处理网络请求的规范,所有实现servlet的类都需要实现它的五个方法。符合面向接口编程的思想。
①public void init(ServletConfig parm1) throws ServletException
//该函数用于初始化该servlet 该函数只是会被调用一次, 当用户第一次访问该servlet的时候被调用
②public ServletConfig getServletConfig()
//用于得到servlet配置文件 与生命周期无关
③public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException
// service 函数用于处理业务逻辑
//程序员应当把业务逻辑代码写在这里
//该函数在用户每次访问servlet的时候都会被调用
//ServletRequest 对象用于获得客户端信息,ServletResponse 对象用于向客户端返回信息(客户端可以理解为浏览器)
④public String getServletInfo()
⑤public void destroy()
//销毁servlet实例(释放内存)
//1 reload 该servlet(webApp)
//2 关闭Tomcat 或者说 关机之后 都会调用这个函数
2.其中最重要的两个生命周期方法是init()和destroy(),还有一个处理请求的service(),所以所有实现servlet接口的类或者说所有需要处理网络请求的类,都需要回答这三个问题:
①你初始化时要做什么
②你销毁时要做什么
③你接收到请求时要在做什么
这就是java给的一种规范。
3.需要将写好的servlet部署到tomcat中,其才会起作用,其不会直接与客户端打交道,tomcat才是直接和客户端打交道的。tomcat监听了端口,请求过来后,根据url等信息,确定要将请求交给哪个servlet去处理,然后调用那个servlet的service方法,service方法返回一个response对象,tomcat再把这个response返回给客户端。
4.所以创建一个servlet需要以下三个步骤:创建web应用项目,编写servlet代码,部署到tomcat中。
二、JSP初步理解
每一种技术的名称都一定说明了它的作用。jsp的全称为:java server pages(翻译:java服务器页面),既然它是java的服务器页面,则它能支持java的代码编写的web页面(.jsp后缀结尾的html文件)。可以理解为可以直接写在html页面中的java代码。
1、jsp在<%, %>中编写java代码
此为jsp文件
2、既然它是java的服务器页面,那它就基于sun的JDK来执行,也就是说jsp文件是java文件的某种伪格式。
此为JSP转化的java文件
3、jsp的运行。
①jsp在tomcat发布,②在浏览器访问过程中jsp会生成:jsp名称_jsp.java和jsp名称_jsp.class,这就验证了第二点,说明jsp在执行过程中先生成java文件再使用java语法编译,从而在jvm(虚拟机)执行。③JVM向浏览器发送html标签,最终在浏览器上呈现出效果
此为向浏览器发送的html标签
4.从上面可以看出,jsp是网站的view(视图),同时还能提供java的执行和显示结果。它的作用涵盖了html和java的功能。
5.优点:
①优良的性能,优于CGI,ASP,PHP
②平台无关性
操作系统无关,web服务器无关
③可扩展性
tag的扩展机制,简化页面开发
三、Spring-Mvc简介
1.在使用浏览器提交请求,然后仅使用servlet来处理请求并返回结果的时候,则servlet不仅要准备数据还要准备html。准备的html可读性很差而且维护性很差。
如果仅仅只是使用JSP的话,html的编写虽然方便了,但是java代码不如servlet中方便,
此时就可以结合两个,将从数据库查询的工作交给servlet,将查询结果返回显示的工作交给JSP,这里使用的就是MVC的思想
2.MVC模式就是架构模式的一种。 MVC是三个单词的首字母缩写,它们是Model(模型)、View(视图)和Controller(控制)。该模式可以把不论简单或复杂的程序,都从结构上划分为三层。
- 最上面的一层,是直接面向最终用户的“视图层”(View)。它是提供给用户的操作界面,是程序的外壳。相当于刚才的JSP
- 最底下的一层,是核心的“数据层”(Model),也就是程序需要操作的数据或信息。
- 中间的一层,就是“控制层”(Controller),它负责根据用户从”视图层”输入的指令,选取”数据层”中的数据,然后对其进行相应的操作,产生最终结果。相当于刚才的servlet。
- 3.SpringWebMVC就是一种基于java的实现了web mvc设计模式的请求驱动类型(请求—响应模型)的轻量级web架构。它使用了mvc架构模式的思想,将web层进行职责解耦。
- 4.SpringMvc是Spring框架的一个模块,它和Spring无需通过中间整合层进行整合。其分离了控制器、模型对象、分派器、以及处理程序对象的角色,这种分离让它们更加容易定制。
四、Spring—Mvc框架原理
1.SpringMVC请求处理的流程
具体执行步骤如下:
- ①首先用户发送请求给前端控制器(Front Controller),前端控制器根据请求信息(如URL)来决定选择哪一个页面控制器(Controller)进行处理并把请求委托给它,即以前的控制器的控制逻辑部分;
- ②页面控制器(Controller)接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在SpringMVC中叫命令对象,并进行验证,然后将命令对象委托给业务对象进行处理;处理完毕后返回一个ModelAndView(模型数据和逻辑视图名);
- ③前端控制器收回控制权,然后根据返回的逻辑视图(View)名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染;
- ④前端控制器再次收回控制权,将响应返回给用户;至此整个结束。
- 2.SpringMVC具体架构
- 核心架构的具体流程步骤如下:
- ①首先用户发送请求给DispatcherServlet(前端控制器),前端控制器收到请求后自己不进行处理,而是委托给其他的解析器进行处理,作为统一访问点,进行全局的流程控制;
- ②DispatcherServlet访问HandlerMapping(处理器映射器), HandlerMapping将会把请求映射为HandlerExecutionChain对象(包含一个Handler处理器(页面控制器)对象、多个HandlerInterceptor拦截器)对象,通过这种策略模式,很容易添加新的映射策略;
- ③DispatcherServlet调用HandlerAdapter(处理器适配器),HandlerAdapter将会把处理器包装为适配器,从而支持多种类型的处理器,即适配器设计模式的应用,从而很容易支持很多类型的处理器;
- ④HandlerAdapter调用处理器相应功能处理方法,HandlerAdapter将会根据适配的结果调用真正的处理器的功能处理方法,完成功能处理;并返回一个ModelAndView对象(包含模型数据、逻辑视图名);
- ⑤DispatcherServlet将ModelAndView的逻辑视图名发送给ViewResolver(视图解析器), ViewResolver将把逻辑视图名解析为具体的View,通过这种策略模式,很容易更换其他视图技术;
- ⑥View进行视图渲染,View会根据传进来的Model模型数据进行渲染,此处的Model实际是一个Map数据结构,因此很容易支持其他视图技术;
- ⑦返回控制权给DispatcherServlet,由DispatcherServlet返回响应给用户,到此一个流程结束。
- 3.涉及到的组件
- ①前端控制器DispatcherServlet(不需要程序员开发)作用:接收请求,响应结果,相当于转发器,中央处理器。 有了DispatcherServlet减少了其它组件之间的耦合度。
- ②处理器映射器HandlerMapping(不需要程序员开发)作用:根据请求的url查找Handler
- ③处理器适配器HandlerAdapter作用:按照特定规则(HandlerAdapter要求的规则)去执行Handler
- ④处理器Handler(需要程序员开发)编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler
- ⑤视图解析器View resolver(不需要程序员开发)作用:进行视图解析,根据逻辑视图名解析成真正的视图(view)
- ⑥视图View(需要程序员开发jsp)View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf…)
明天计划的事情:(一定要写非常细致的内容)
进行springmvc的配置
遇到的问题:(遇到什么困难,怎么解决的)
对于springmvc各个结构之间运转和作用还不是分得很清楚
收获:(通过今天的学习,学到了什么知识)
了解了springmvc的基本结构和servlet、jsp的基本作用
评论