Spring MVC[01-02]地址映射器实现
IDEA创建maven-archetype-webapp项目
pom.xml
properties标签中添加spring.version标签
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<spring.version>4.3.7.RELEASE</spring.version>
</properties>
dependencies标签中添加相关依赖配置
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!-- Spring相关包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<!--web 项目 需要配置 jsp servlet api -->
<!-- JSP标准标签库 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<scope>provided</scope>
</dependency>
<!--servlet api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
<optional>true</optional>
<scope>provided</scope>
</dependency>
</dependencies>
index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<a href="a.do?uname=aa">a请求</a>
</body>
</html>
Acontroller.java
在main文件夹下创建java文件夹,创建Acontroller.java并实现Controller接口
public class Acontroller implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
String uname = httpServletRequest.getParameter("uname");
System.out.println(uname);
ModelAndView md=new ModelAndView();
//视图名称
md.setViewName("success");
md.addObject("key1",uname);
return md;
}
}
ModelAndView对象.addObject(“key”,“value”); 与
HttpSession session = httpServletRequest.getSession();
session.setAttribute("key",value);
作用类似
例如上方代码为将index页面获取的key的名称uname的值赋值到String型的uname变量中
并将uname传到success页面,key的名称为key1
springconfig.xml
在main文件夹下创建resources文件夹,创建springconfig.xml文件
右键resources,(new→XML Configuration File→Spring Config)
<!--地址映射器-->
<bean id="aa" class="com.dfbz.controller.Acontroller"/>
<bean id="handlermapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="a.do">aa</prop>
</props>
</property>
</bean>
<!--视图映射器-->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/"/>
<property name="suffix" value=".jsp"/>
</bean>
success.jsp
在webapp文件夹下创建success.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>${key1}</h1>
</body>
</html>
注意在JSP页面设置标签中添加使用EL表达式:isELIgnored=“false”
web.xml
在webapp/WEB-INF目录编辑web.xml,在webapp标签中添加
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<!-- 通过spring的DispatcherServlet 去自动加载spring容器 -->
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:springconfig.xml</param-value>
</init-param>
<!-- 设置启动加载优先级 -->
<!-- 设置一启动项目就加载spring容器 -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
load-on-startup标签设置为1时,效果是启动项目就加载spring容器
若不加此标签为调用时才去加载
部署Tomcat并运行项目
添加tomcat服务器并运行项目
最终效果为点击a请求跳转至success.jsp页面,页面中显示aa
以上就是本期总结的全部内容,愿大家相互学习,共同进步!