02SpringMVC基础使用SpringMVC搭建第一个javaweb项目
Posted 熟知宇某
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了02SpringMVC基础使用SpringMVC搭建第一个javaweb项目相关的知识,希望对你有一定的参考价值。
本文尤为枯燥,请同步观看:【SpringMVC】项目具体请求流程
目录
1.概念
2.搭建一个简单的javaweb项目
1).新建一个动态web项目
2).导入springMVC所需要的jar包
3).配置DispatcherServlet
3.5).这里插入一点内容:
4).配置处理器适配器SimpleControllerHandlerAdapter
5).编写处理器Handler
6).配置处理器handler(即配置自己新建的处理器的类)
7).配置处理器映射器BeanNameUrlHandlerMapping
8).编写jsp视图View
9).配置视图View解析器
10).运行项目
11).可能会遇到的bug及解决之道
1.概念
什么是MVC?
MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。
2.搭建一个简单的javaweb项目
1).新建一个动态web项目
(以本项目为例)整个项目下来,主要有这四个文件:
①编写处理器文件LoginAction.java
②web配置文件web.xml
③配置处理器、适配器、映射器等配置信息spring-servlet.xml
④视图View文件helloppp.jsp
2).导入springMVC所需要的jar包
可以右击src文件夹,构建路径,在“库”中添加外部jar引用这些包;
也可以直接复制这些jar包,粘贴在WEB-INF的lib文件夹下
3).配置DispatcherServlet
在web.xml文件下配置:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1">
<display-name>mvcdemo</display-name>
<!-- 初始化servlet,用于响应客户端请求 -->
<servlet>
<!-- 命名 -->
<servlet-name>mvcfy</servlet-name>
<!-- 配置DispatcherServlet -->
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 初始化servlet某些值 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-servlet.xml</param-value><!-- 用于指定spring-servlet.xml配置文件路径 -->
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- servlet映射 -->
<servlet-mapping>
<!-- 因为是映射,所以要映射上面servlet初始化时的name -->
<servlet-name>mvcfy</servlet-name><!-- 与上面一致 -->
<url-pattern>*.action</url-pattern><!-- 与路径有关 -->
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
3.5).这里插入一点内容:
spring-servlet.xml文件(已包含4、6、7、9步骤的配置信息):
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
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-4.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 注解驱动配置
<mvc:annotation-driven/> -->
<!-- 配置controller扫描(未)
<context:component-scan base-package="com.springMVC.*.controller"/> -->
<!-- 配置处理器映射器 -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
<!-- 配置处理器Control适配器 -->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
<!-- 配置处理器 -->
<bean name="/loginAction.action" class="com.fy.mvcdemo.handler.LoginAction"></bean><!-- 访问地址 -->
<!-- 配置视图View解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 视图的目录 -->
<property name="prefix" value="/view/"></property><!-- value="/"代表根目录 -->
<!-- 视图的后缀 -->
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
4).配置处理器适配器SimpleControllerHandlerAdapter
在spring-servlet.xml文件下配置:
<!-- 配置处理器Control适配器 -->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
5).编写处理器Handler
处理器LoginAction.java文件:
package com.fy.mvcdemo.handler;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class LoginAction implements Controller
@Override
public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception
// TODO 自动生成的方法存根
ModelAndView mav = new ModelAndView();
mav.addObject("message","你好,熟知宇某!");//映射到视图文件的$message
mav.setViewName("helloppp");//要视图helloppp.jsp限定名匹配
return mav;
6).配置处理器handler(即配置自己新建的处理器的类)
在spring-servlet.xml文件下配置:
<!-- 配置处理器Handler:LoginAction.java -->
<bean name="/loginAction.action" class="com.fy.mvcdemo.handler.LoginAction"></bean><!-- 访问地址 -->
7).配置处理器映射器BeanNameUrlHandlerMapping
在spring-servlet.xml文件下配置:
<!-- 配置处理器映射器 -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
8).编写jsp视图View
视图文件helloppp.jsp(为什么起一个这么尬的名字,因为这样可用于验证第五步骤的处理器中的setViewName与之是否要一致,答案:是的,要一致)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
登陆成功:$message<!-- message被映射到处理器Handler,即LoginAction.java文件 -->
</body>
</html>
9).配置视图View解析器
在spring-servlet.xml文件下配置:
<!-- 配置视图View解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 视图文件helloppp.jsp的目录 -->
<property name="prefix" value="/view/"></property><!-- value="/"代表根目录 -->
<!-- 视图的后缀 -->
<property name="suffix" value=".jsp"></property>
</bean>
10).运行项目
11).可能会遇到的bug及解决之道
举个栗子:
xx类无法加载:java.lang.ClassNotFoundException: org.springframework.web. servlet.DispatcherServle:
ClassNotFound****DispatcherServle这里的意思是找不到DispatcherServle类
①检查是否正确引入jar包了;
②在jar包文件下,找是否存在这个类,有可能是jar包版本太低;
③找到是哪个文件调用了这个类,检查名字是否写错了;
这里的错,是类的名字没写对。你知道哪里没写对吗?
这个类是在web.xml调用:
<!-- 配置DispatcherServlet -->
<servlet-class>org.springframework.web.servlet.DispatcherServle</servlet-class>
你看看,就会豁然开朗!
以上是关于02SpringMVC基础使用SpringMVC搭建第一个javaweb项目的主要内容,如果未能解决你的问题,请参考以下文章