springmvcは、SpringのWebモジュールであり、Springのコアパッケージと依存関係パッケージをインポートする必要があります。
springmvcの最下層はサーブレットです。サーブレットの学習方法に従ってそれを学んでください。これ以上苦労せずに、
直接ドライグッズにアクセスして、Webエンジニアリングガイドパッケージを作成してください。
最初のステップ:ガイドパッケージSpring
Coreパッケージと依存パッケージ
Commons-logging-1.1.1.jar
spring-beans- 4.1.2.RELEASE.jar
spring-context-4.1.2.RELEASE.jar
spring-core-4.1.2.RELEASE.jar
spring-expression-4.1.2.RELEASE.jar
スプリングテストパッケージ
spring-aop-4.1.2 .RELEASE.jar
spring-test-4.1.2.RELEASE.jar
jsp、サーブレットパッケージ
jsp-api.jar
servlet-api.jar
sprinmvcパッケージ
spring-web-4.1.2.RELEASE.jar
spring-webmvc-4.1.2。 RELEASE.jar
手順2:フロントエンドコントローラーを構成する
このフロントエンドコントローラーは他のユーザーが作成し、使用
します。フロントエンドコントローラーはサーブレットです。書き込む必要はありませんが、構成する必要があります。
手順:
1.サーブレットの構成方法に従って、web.xmlでフロントエンドコントローラーを構成します。
名前は[webmvcパッケージ]をコピーするのが最適です
。2。クラスパスの下にSpring構成ファイルをコピーし、名前をspring-mvc.xmlに変更します。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
">
</beans>
3.一定要把里面的内容全部删除,否则启动就会报错
4.在前端控制器的<init-param>中加载此配置文件
配置内容:
<!-- 前端控制器 -统一接收请求 -->
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 创建的时候要自动加载初始化参数 - 加载SpringMvc的配置文件 -->
<init-param>
<!-- 指定配置文件的路径 -->
<!-- 不要随便写,因为框架要根据这个名字获取value值,如果名字写错了,它就获取不了,可以在springwebmvc的jar包里面去拷贝全限定名,如下图: -->
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<!-- 将这个Servlet的实例化和初始化提前到到服务器启动的时候【默认是在第一次收到请求的时候】,有助于提高运行效率 -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>*.do</url-pattern><!-- /hello.do -->
</servlet-mapping>
ステップ3:コントローラーを
記述し、ビジネスコードを記述する
public class HelloController implements Controller{
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
//handleRequest - 处理请求
System.out.println("来了,老弟!!!");
return null;
}
}
ステップ
ライトコントローラインタフェースクラスが実装する
書き換え方法に直接書き込むためのコンテンツ出力
スプリングMVCに:第4工程を。XMLマッチング要求
<bean id="/hello.do" class="cn.itsource.controller.HelloController"></bean>
ステップ5:ジャンプ応答
コントローラーコード:
public class HelloController implements Controller{
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
//handleRequest - 处理请求
System.out.println("来了,老弟!!!");
//响应
ModelAndView mv = new ModelAndView();//这个对象用来保存数据和数据 ,方便传输
mv.addObject("name", "james"); //设置响应的数据name
mv.addObject("age", 20); //设置响应的数据age
mv.setViewName("/WEB-INF/hello.jsp");//设置响应视图的路径 WEB-INF下的资源不能直接访问,必须通过转发
return mv;
}
}
ステップ6:論理ビューを書き込む
在WEB-INF下新建hello.jsp,并编写内容
<body>
<h1>来了,老弟!!!</h1>
<h2>你的名字是:${name }</h2>
<h2>你的年龄是:${age }</h2>
</body>
最後に、
localhost / hello.do
実行プロセス分析をテストします。
リクエストをフロントコントローラー[DispatcherServlet] -spring-mvc.xmlに渡し、プロセッサーに一致マッピングしてリクエストを処理します。
フロントコントローラーのマッチング方法【】
后缀匹配(*.xx)
匹配的范围太小
/ *
匹配所有请求
会将css,html,jsp都匹配上
一般用在过滤器
/
匹配所有请求
不会拦截.jsp
但是会拦截静态资源
css,html,images
为什么会拦截静态资源
tomcat中有一个默认的Servlet专门处理静态资源,它的匹配方式就是/
我们在我们的工程中也写了/,所以就将默认的servlet给替换了,tomcat中默认的Servlet就无效了
目前最流行的
操作手順:
1. 将前端控制器的<url-patten>的匹配方式改成/
2.在web根路径下WebContent新建index.jsp,写上一句话
3.重新部署访问 -- jsp可以访问,图片【静态资源不能访问】
4.设置静态资源放行
加约束mvc - 建议复制
2.在spring-mvc.xml中加上配置:
<!-- 静态资源放行 = 静态资源可以不拦截 -->
<mvc:default-servlet-handler/>
启动tomcat默认的Servlet配置
5.重新部署 -- 访问 - 图片可以正常显示
構成の注意:web.xmlフロントコントローラーのパラメーター名に注意する必要があります。この名前にする必要があります。
<!-- 不要随便写,因为框架要根据这个名字获取value值,如果名字写错了,它就获取不了 -->
<param-name>contextConfigLocation</param-name>