发表于: 2017-10-25 23:55:36

2 659


今天完成的事情:

1.学习http

2.学习springmvc

3.写完登录注册页面的传值

不过出了一个问题,尚在解决中。。。。。。

可以确定是连接数据库过程中的问题,具体还没找到。

不解决睡不着

犯的错误很低级,就是在连接数据库的文件中,把冒号写成了点,然后就一直报错。以后写代码一定要仔细。

我是通过登录页面然后成功的话就跳转到task8-home的jsp页面。在之前因为没有经过控制类所以对静态页面没有管,这次正常调转果然加载不出来,之后加完绝对路径以后就可以了。接下来就可以对这几个页面实现动态的操作了。

可以从访问路径中看出来其请求过程:

明天计划的事情:

继续任务四,已延期。

遇到的问题:

1.一直困扰我的一个问题,就是一般在定义接口的时候,前面的修饰符都没有启用,然后不确定到底写不写。

Idea里面是这样提示的:

然后我就取消了修饰符,不知道对不对。

2.就是启动项目时,报错翻译过来了,不是很懂,或者说不知道怎么解决

3.解决了一个历史遗留问题。

前几天远程数据库连接不上,然后我就用SSH建立连接服务器解决了,没想到昨天又连接不上了,SSH也不可以。

然后又试了很多百度里面的办法,上图中的比较有效,希望可以根治。(最好的根治办法其实就是重装服务器,然后重新现在数据库并安装配置)

问题根源:目前远程服务器的用户没有权限访问root用户里的数据库。

解决步骤:

首先用全命令(即加上服务器IP地址进行对数据库的连接,明显失败)报错原因是没有访问权限。

其次是切换到超级用户,用localhost登录数据库(这个是拿到有权限的root用户进行对数据库的访问)可以看出输入密码后是可以访问的。

然后使用命令mysql> grant all privileges on *.* to root@'%' identified by '连接指令',就是将该用户所拥有的数据库权限授权给使用用户。这个命令是全部操作授权,当然也有部分操作功能授权。然后通过连接指令连接就好了。

最后,使用全命令访问就可以了。因为远程连接也是通过IP连接实现的。

收获:

1.HTTP

(1)HTTP是代表超文本传输协议,他是Web上使用的网络协议。运行在TCP/IP之上。

(2)HTTP使用一种请求/响应模型,客户做出一个HTTP请求,Web服务器返回一个HTTP响应,再有浏览器确定如何进行处理。

(3)HTTP请求包括请求URL(客户想要访问的资源),HTTP方法(GET、POST等),以及表单参数数据。

(4)GET请求会把表单数据追加到URL的最后。所以一般防止输入参数安全,会选择用POST方法。还有一个原因是参数多时,GET

(5)POST请求将表单数据包括在请求中。

所以一般防止输入参数安全,会选择用POST方法。还有一个原因是GET中的字符有限制,如果输入太长的文字的话,GET是无法正常工作的。

2.学习SpringMVC

(1)概念:

Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架。

即使用了MVC架构模式的思想,将web层进行职责解耦。

基于请求驱动指的就是使用请求-响应模型。

框架的目的就是帮助我们简化开发。

关键字:轻量级 解耦 请求驱动 简化开发

(2)组成:

1)前端控制器是DispatcherServlet

2)应用控制器:

处理器映射器(Handler Mapping)进行处理器管理

视图解析器(View Resolver)进行视图管理

3)页面控制器/动作/处理器为Controller接口(仅包含ModelAndView handleRequest(request, response) 方法)的实现。

4)支持本地化(Locale)解析、主题(Theme)解析及文件上传等。

5)提供了非常灵活的数据验证、格式化和数据绑定机制。

6)提供了强大的约定大于配置(惯例优先原则)的契约式编程支持。

(3)请求处理流程:

1)首先用户发送请求————>前端控制器,前端控制器根据请求信息(如URL)来决定选择哪一个页面控制器进行处理并把请求委托给它,即以前的控制器的控制逻辑部分;图2-1中的1、2步骤

2)页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在Spring Web MVC中叫命令对象,并进行验证,然后将命令对象委托给业务对象进行处理;处理完毕后返回一个ModelAndView(模型数据和逻辑视图名);图2-1中的3、4、5步骤

3)前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染;图2-1中的步骤6、7

4)前端控制器再次收回控制权,将响应返回给用户,图2-1中的步骤8,至此整个结束。

 (4)核心架构流程

1)首先用户发送请求——>DispatcherServlet。前端控制器收到请求后自己不进行处理,而是委托给其他的解析器进行处理,作为统一访问点,进行全局的流程控制。

2)DispatcherServlet——>HandlerMapping。 HandlerMapping将会把请求映射为HandlerExecutionChain对象(包含一个Handler处理器(页面控制器)对象、多个HandlerInterceptor拦截器)对象,通过这种策略模式,很容易添加新的映射策略。

3)DispatcherServlet——>HandlerAdapter。HandlerAdapter将会把处理器包装为适配器,从而支持多种类型的处理器,即适配器设计模式的应用,从而很容易支持很多类型的处理器。

4)HandlerAdapter——>处理器功能处理方法的调用。HandlerAdapter将会根据适配的结果调用真正的处理器的功能处理方法,完成功能处理;并返回一个ModelAndView对象(包含模型数据、逻辑视图名)。

5)ModelAndView的逻辑视图名——> ViewResolver。 ViewResolver将把逻辑视图名解析为具体的View,通过这种策略模式,很容易更换其他视图技术。

6)View——>渲染。View会根据传进来的Model模型数据进行渲染,此处的Model实际是一个Map数据结构,因此很容易支持其他视图技术。

7)返回控制权给DispatcherServlet,由DispatcherServlet返回响应给用户,到此一个流程结束。

(5)优势:

1)清晰的角色划分:前端控制器(DispatcherServlet)、请求到处理器映射(HandlerMapping)、处理器适配器(HandlerAdapter)、视图解析器(ViewResolver)、处理器或页面控制器(Controller)、验证器(   Validator)、命令对象(Command  请求参数绑定到的对象就叫命令对象)、表单对象(Form Object 提供给表单展示和提交到的对象就叫表单对象)。

2)分工明确,而且扩展点相当灵活,可以很容易扩展,虽然几乎不需要;

3)由于命令对象就是一个POJO,无需继承框架特定API,可以使用命令对象直接作为业务对象;

4)和Spring 其他框架无缝集成,是其它Web框架所不具备的;

5)可适配,通过HandlerAdapter可以支持任意的类作为处理器;

6)可定制性,HandlerMapping、ViewResolver等能够非常简单的定制;

7)功能强大的数据验证、格式化、绑定机制;

8)利用Spring提供的Mock对象能够非常简单的进行Web层单元测试;

9)本地化、主题的解析的支持,使我们更容易进行国际化和主题的切换。

10)强大的JSP标签库,使JSP编写更容易。

11)还有比如RESTful风格的支持、简单的文件上传、约定大于配置的契约式编程支持、基于注解的零配置支持等等。





返回列表 返回列表
评论

    分享到