发表于: 2017-10-31 22:57:16
1 756
今天做的事情:
上午再次重新安装IDEA,没有报错,最主要的tomcat插件可以使用,项目完善。主要改了RESTful风格的请求的修改之后的PUT提交和DELETE删除。因为jsp中的form表单是不支持put和delete.
修改操作
1:
在web.xml放入
<filter>
<filter-name>httpPutFormcontentFilter</filter-name>
<filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>httpPutFormcontentFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Spring MVC过滤器-HttpPutFormContentFilter
教程:http://blog.csdn.net/geloin/article/details/7444590
update.jsp
用ajax提交,可以判断一下成功失败,如果是用form表单直接提交,需要加个enctype参数。
删除操作
jsp页面
用点击事件控制
因为删除操作是需要很慎重的,所以应该提示用户三思而行。这里有一个小错误,应该是删除id为xx的数据,拼接字符串失败,所以就这样了。
http://www.jnshu.com/dailyCreate///
RESTful的demo完成。总结一下,开始任务三。
深度思考:
7.Spring MVC和Struts的区别是什么,为什么更倾向于使用Spring MVC?
1: Sreuts是类级别拦截,一个类对应一个request上下文,SpringMvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,SpringMvc更适合restful url,Struts2中action的一个方法对应一个URL,而类属性却被所有方法共享,这也就无法使用注解标识方法。
2:拦截器实现机制上,Struts2有自己的interceptor机制,SpringMVC用的是独立得AOP方式,这样导致Struts2的配置文件量还是比SpringMVC大。
3:SpringMVC集成了Ajax,使用非常方便,只需一个注解@ResponseBody就可以实现,然后直接返回响应文本即可,而Struts2拦截器集成了Ajax,在Action中处理时一般必须安装插件或者自己写代码集成进去,使用起来也相对不方便。
8.web.xml里的主要配置都包括什么,都代表什么含义,比如怎么加载Spring 配置的?
首先配置DispatcherServlet,请求控制器,通过handdlerMapping检查这个url有没有对应controller方法.再通过
<init-param>
来配置springMVC.xml的路径和加载优先级。
还要配置一个spring的过滤器,避免乱码。
CharacterEncodingFilter
这个处理restful的put请求
HttpPutFormContentFilter
是针对浏览器表单不支持put和delete方法而设计的,通过在表单中设置隐藏域,来分发到相应的处理器上
HiddenHttpMethodFilter
启动spring监听器
<!-- 配置spring监听器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
加载spring
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:Spring.xml</param-value>
</context-param>
11.什么是Filter,什么是Interceptor,他们的区别是什么,和AOP又是什么关系?
Filter过滤器:拦截器web访问url地址。
依赖于servlet容器,在实现上基于函数回调。可以对几乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化时调用一次,使用过滤器的目的是用来作一些过滤操作,比如,在过滤器中修改字符编码,在过滤器中修改HttpServletRequest的一些参数,包括:过滤低俗文字,危险字符。
Interceptor拦截器:拦截以.action结尾的url,拦截Action的访问。
依赖于web框架,在实现上基于java的反射机制,属于面向切面编程(AOP)的一种运用,由于拦截器是基于web框架的调用,因此可以使用Spring的依赖注入(DI)进行一些业务操作,同时一个拦截器实例在一个controller生命周期之内可以多次调用,但是缺点是只能对controller请求进行拦截,对其他的一些如直接访问静态资源的请求则没办法进行拦截处理
Spring AOP拦截器:只能拦截Spring管理Bean的访问(业务层Service)
遇到的问题:
改项目时报404
收获:
使用restful风格来构建项目
评论