Spring MVC技术
1.Spring MVC/Struts2 框架的异同,举例说明Spring MVC框架和Sturts2框架应用的场景?
------------------------------------------------------------------
2.SpringMvc和Struts1,Struts2的比较的优势
------------------------------------------------------------------
3.描述Spring MVC的工作流程
------------------------------------------------------------------
4.画图展示Spring MVC的工作流程,描述从客户端发出请求到服务器响应给客户
端的整个过程。
------------------------------------------------------------------
5.如何配置Spring MVC的核心控制器?
<context:annotation-config></context:annotation-config> <context:component-scan base-package="renjiale"></context:component-scan> <mvc:annotation-driven></mvc:annotation-driven> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- rest风格 http://域名/index.jsp --> <property name="prefix" value="/"></property> <property name="suffix" value=".jsp"></property> </bean> <bean class="org.springframework.web.servlet.DispatcherServlet"></bean>
------------------------------------------------------------------
6.Spring MVC的核心控制器的作用是?
------------------------------------------------------------------
7.默认情况下Spring MVC的核心控制器从哪里获取配置文件?
------------------------------------------------------------------
8.如何指定自定义的配置文件?
------------------------------------------------------------------
10.什么是Spring MVC映射器?有哪几种?
------------------------------------------------------------------
11.什么是Spring MVC适配器?有什么作用?
------------------------------------------------------------------
12.Spring MVC有没有默认的映射器?在哪里定义的?
------------------------------------------------------------------
13.Spring MVC的Handler有几种实现方式?
------------------------------------------------------------------
14.Spring MVC的控制器中获取数据的方式有哪些?
(1). @RequestParam(value="msg")String mymsg:
表示定义一个名叫mymsg的变量,用来接收页面传递的名叫msg的参数;
此时,要求msg参数必须传递,如果没有传递,就会出现:
HTTP Status 400 - Required String parameter 'msg' is not present
要想解决,可以给requestParam注解加上一个属性:
@RequestParam(value="msg",required=false)String mymsg
还可以利用该注解,给参数设定默认值:
@RequestParam(value="msg",required=false,defaultValue="helloworld")String mymsg
(2).直接在方法中定义变量来接收参数
此时要求变量名必须与参数的名字一致
springmvc在接收参数的时候,是可以对参数做必要的类型转换的;
(3). 通过HttpServletRequest对象来接收参数
从控制器中,传递参数到页面:
1.通过request来保存并传递参数;
------------------------------------------------------------------
15.@RequestParam的作用是?
接收来自页面上传递的参数
public String show2(@RequestParam(value="msg")String myMsg,@RequestParam(value="str")String mystr) { System.out.println("从页面上接收到的信息:"+"msg:"+myMsg+",mystr:"+mystr); return "suc"; }
------------------------------------------------------------------
16.Spring MVC将数据携带到前台的方式有哪些?
如果需要把控制器中的参数传递到页面,常见的,也有两种方式:
(1)通过model对象来传递。
此时,model中有两个方法可以使用:model.addAttribute(object)和model.addAttribute("名字",object)。这两个方法都可以使用。
(2)通过request,session来传递
------------------------------------------------------------------
17.Spring MVC如何将数据从控制中携带到前台页面?
传递后,在页面上通过EL表达式来获取,show页面代码如下:
<h2>这里是show.jsp页面</h2> 通过model传递到页面的参数key:${key }<br/><!--这里的结果是:hello world,abc--> 获取model单个参数存储的变量:${string }<br/><!--这里的结果是:xxxxxxx-->
------------------------------------------------------------------
19.如何使用Handler进行请求转发,代码如何实现Handler进行重定向?
------------------------------------------------------------------
20.Handler方法中编程实现如何绑定自定义日期类型参数业务
------------------------------------------------------------------
21.如何解决Spring MVC的乱码问题?
在编码过程中,因为参数的传递过程,编码环境的不一致,经常会导致乱码的出现,springMVC提供了一个过滤器,可以用来处理乱码问题,只需要我们在web.xml中直接配置即可:
(1)过滤器
<filter> <filter-name>encodingfilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingfilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
(2)get请求方式
a.new String
String realname = users.getRealname(); try { realname = new String(realname.getBytes("IOS-8859-1"),"utf-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); }
b.tomcat- connector-port
------------------------------------------------------------------
22.在Spring MVC中406错误有可能引起的问题是?
------------------------------------------------------------------
23.Spring MVC与AJAX交互的注解有那几个?
------------------------------------------------------------------
25.Spring MVC实现文件上传有哪些步骤?
------------------------------------------------------------------
26.Spring MVC上传文件解析器是什么?
------------------------------------------------------------------
27.Spring MVC上传文件解析器的id名称是否可以更改?为什么?
------------------------------------------------------------------
28.Spring MVC上传文件解析器的常见参数?
------------------------------------------------------------------
30.Spring MVC拦截器有什么作用?
------------------------------------------------------------------
31.Spring MVC的拦截器有几种配置方式?
------------------------------------------------------------------
32.Spring MVC的拦截器与Sturts2拦截器 有什么区别。
------------------------------------------------------------------
33.Spring MVC拦截器的实现方式有哪些?
------------------------------------------------------------------
34.拦截器实现中有哪些方法?
------------------------------------------------------------------
35.拦截器实现中3个方法分别处理哪些内容?
------------------------------------------------------------------
36.Spring MVC怎样自定义拦截器?
------------------------------------------------------------------
38.Spring MVC中的拦截器与Struts2 的拦截器有什么不同?
------------------------------------------------------------------
40.Spring 、Spring MVC怎样集成?SSM环境搭建?
ssm : spring4.3 + springMVC4.3 + mybatis3.2.3
ssh :spring + struts2 + hibernate
ssm环境搭建:
1. spring环境:
a.添加spring常用依赖;
b.准备spring配置文件:
先生成spring配置文件,并添加可能用到的schame;
这里为spring应用注解做准备,添加组件扫描范围;
c.web.xml文件中,配置spring监听器和上下文参数:
监听器监听服务器启动,当服务器启动的时候,马上初始化spring容器,为将来处理用户请求做准备;
上下文参数,用来指定spring配置文件的路径和名字
2.springMVC环境:
a.添加springmvc依赖;
b.springmvc配置文件:
生成springmvc的配置文件,这里直接利用spring配置文件就可以了;
配置mvc注解驱动;
配置视图处理器;
c.web.xml文件中,配置DispatcherServlet
此时因为MVC配置文件放到了resources目录下,所以需要在servlet中,配置一个初始化参数,用来指明mvc配置文件的路径和名字
3.mybatis环境;
a.添加mybatis依赖:
mybatis核心依赖;
数据库驱动依赖;
这里使用的是oracle,但是通常中央仓库中无法下载oracle依赖,所以这里自己安装了一个oracle依赖:
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.4.0 -Dpackaging=jar -Dfile=ojdbc6.jar
b.准备mybatis的配置文件:
现在因为数据源应该交给spring来管理,数据库连接对象应该由spring来创建
通过由第三方的工具,来创建和管理我的数据源:
常见的数据源工具有:commons,c3p0,druid..
这里使用apache提供的commons数据源:
第一步,添加commons数据源依赖;
第二步,spring配置文件中,添加bean,并添加必要的连接参数;
app.xml文件中,配置连接工厂
配置连接工厂的时候,又需要添加mybatis-spring依赖;
准备实体映射文件,实体类,并在mybatis配置文件中引入;
------------------------------------------------------------------
43.我们知道用户请求URL可以注解的方式来把UR与控制器controller映射起来,
但怎么样把控制器controller 与业务模型映射起来是url通过controller找到对
应的业务模型?也即是说控制器与业务模型怎么样建立关系?
------------------------------------------------------------------
44.Spring MVC的核心入口类是什么,Struts2 的是什么?
------------------------------------------------------------------
45.Spring MVC的控制器是不是单例模式,如果是,有什么问题,怎么解决
------------------------------------------------------------------
46.SpingMVC中的控制器的注解一般用那个,有没有别的注解可以替代
------------------------------------------------------------------
47.@RequestMapping注解用在类上面有什么作用
可以让页面请求.jsp找到业务类;同时找到业务中实现具体业务的方法
------------------------------------------------------------------
48.怎么样把某个请求映射到特定的方法上面
------------------------------------------------------------------
49.如果在拦截请求中,我想拦截get方式提交的方法,怎么配置
------------------------------------------------------------------
50.如果在拦截请求中,我想拦截提交参数中包含"type=test"字符串,怎么配置
------------------------------------------------------------------
51.我想在拦截的方法里面得到从前台传入的参数,怎么得到
------------------------------------------------------------------
52.如果前台有很多个参数传入,并且这些参数都是一个对象的,那么怎么样快速得到这
个对象
------------------------------------------------------------------
53.怎么样在方法里面得到request,或者Session
------------------------------------------------------------------
54.Spring MVC中函数的返回值是什么.
------------------------------------------------------------------
55.Spring MVC怎么处理返回值的
------------------------------------------------------------------
56.Spring MVC怎么样设定重定向和转发的
-------------------------------------------------------
(1)return "forward:login"; //服务器端跳转
(2)return "redirect:login"; //客户端跳转-浏览器自己重定向(浏览器地址栏重新写个地址重新去发请求)-get
isreg- 注册页面 prelogin-登录页面 return "forward:prelogin";//服务器端跳转 //服务器跳转:前后两个方法,提交方式一致的时候,可以跳转;不一致的时候,就不能跳转 isreg--post,prelogin--post==> 可以跳转 isreg--post,prelogin--get ==> 不能跳转 isreg--get,prelogin--get ==>可以跳转 isreg--get,prelogin--post ==>不能跳转 return "redirect:prelogin";//客户端跳转 //客户端跳转:只能跳转到get里面;不能跳转到post isreg--get,prelogin--post ==>不能跳转 isreg--get,prelogin--get ==>可以跳转 isreg--post,prelogin--get ==>可以跳转 isreg--post,prelogin--post ==>不能跳转
服务器端跳转和客户端跳转的区别:
1.服务器跳转是一次请求; 客户端跳转是两次以上的请求;
2.服务器端跳转时,地址不会发生改变; 客户端跳转的时候,地址栏的地址发生了改变;
3.服务器端跳转时,可以通过reqeust来传递参数; 客户端跳转时,不能通过request来传递参数;
认知: 转发: 1.服务器端跳转(一次请求) 2.地址栏地址不变 3. 可以通过request传递参数
重定向: 1.客户端跳转(二次以上请求) 2.浏览器地址栏地址变化 3.不可以使用request
------------------------------------------------------------------
57.Spring MVC用什么对象从后台向前台传递数据的
------------------------------------------------------------------
58.Spring MVC中有个类把视图和数据都合并的一起的,叫什么
------------------------------------------------------------------
59.怎么样把ModelMap里面的数据放入Session里面
------------------------------------------------------------------
60.Spring MVC怎么和AJAX相互调用的
------------------------------------------------------------------
61.当一个方法向AJAX返回特殊对象,譬如Object,List等,需要做什么处理
------------------------------------------------------------------
61.web项目的结构
部署项目的过程:
在src-main-webapp中把所有内容|放在Tomcat-webapps(Apache-Software-Foundation\Tomcat 8.5\webapps)
Tomcat 8.5\webapps\ssm_01\WEB-INF-classes
------------------------------------------------------------------