spring mvc简单项目示例
但凡进行java网站开发的人,都有学过spring mvc的开发。下面用一个获取当前时间和时区的简单示例,展现一下怎么用myeclipse 10,来创建一个spring mvc项目。
1.打开MyEclipse-->File-->New-->Web Project,在打开的对话框里面输入Project Name为GetTimeDemo,点击Finish,完成项目建立。
2.导入srping mvc相关包,本地没有的话需要按下面的下载地址进行下载后解压,这里有两种方式导入:第一种在新建项目上右键选择,properties-->Java Build Path-->Libraries-->Add External JARs,引入spring-framework-版本号.RELEASE-dist目录下几个必需的jar包.第二种是直接找到这几个相关包,进行复制粘贴到项目中的WEB-INFO/lib目录下。这里我更习惯于采用第二种,导入完成后项目结构如下图
包下载地址:http://repo.spring.io/libs-release-local/org/springframework/spring/
可以看到,上面我们导入了7个相关包,像数据库连接、websocket之类的并没有导入进去。同时说明一下,这里commons-logging-1.1.1.jar这个包需要一并导入,因为spring需要它,spring的内部实现中使用了Commons-logging包内的方法,当然你也可以用这个包的其它版本。
3.打开项目的web.xml文件,进行相关配置,这里的配置是针对于项目网站。将编码添加以下代码,进行URI地址处理:
<!--配置拦截器-->
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<!--指定servlet的引擎为SpringMVC-->
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<!-- 监听所有请求 -->
<url-pattern>/</url-pattern>
</servlet-mapping>
4.添加SpringMVC-servlet.xml文件,文件名称去掉“-servlet”后和上面servlet-name的值一致更好,这里是“SpringMVC-servlet”,这样的话不需要在web.xml做另行配置。该文件是针对于SpringMVC的相关配置,文件内容如下:
<?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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<!--扫描基包下的所有注解类-->
<context:component-scan base-package="com.springmvc"></context:component-scan>
<!--启动注解驱动SpringMVC功能,并配置视图名称-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:viewClass="org.springframework.web.servlet.view.JstlView"
p:prefix="WEB-INF/view/"
p:suffix=".jsp"/>
</beans>
5.以上配置完成后,开始进行正式代码处理。添加视图在WebRoot目录下,新建views文件夹,添加test.jsp,编码设置为UTF-8,因为这里要显示时间,我们修改了页面body,代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'list.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
<h2>用Date获取当前时间:${NowTime1}</h2>
<h2>用Calendar获取当前时间:${NowTime2}</h2>
<h2>当前时区${Timezone}</h2>
</body>
</html>
上面形如${NowTime1}的表达式,是一种用来显示controller传递过来的NowTime1变量的方式,这样后台控制器获取到的时间等信息,才能显示到视图页面上来。
6.接下来处理控制器controller,在src目录下,新建com.springmvc包,并添加TestController类,主要代码如下
@Controller
public class TestController {
@RequestMapping("/test")
public String list(Model model) {
Date date = new Date();
String dateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",Locale.CHINA).format(date);
model.addAttribute("NowTime1", dateTime);
Calendar calendar = Calendar.getInstance();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",Locale.CHINA);
String dateStr = df.format(calendar.getTime());
model.addAttribute("NowTime2", dateStr);
String zone = System.getProperty("user.timezone");
model.addAttribute("Timezone", zone);
return "test";
}
}
这里函数的RequestMapping("/test")申明,指定了请求路径对应关系。参数Model为模型,是数据的桥梁,它将NowTime1等参数及对应值传递到视图页面,以便显示。最后的return“test”,是返回路径,这里只有一个"test"是因为我们在SpringMVC-servlet.xml文件中,配置了p:prefix和p:suffix的值,让我们不必返回页面全路径字符串。当然,如果要采用返回全路径的话,返回值应该是return
new ModelAndView("全路径")的形式。7.至此,简单的spring mvc项目即创建完毕。运行项目后,会加载web.xml中默认配置的网站首页index.jsp。在地址中添加“/test”后刷新,将看到我们的test页面被加载了出来,如图所示:
推荐阅读
-
JSP开发中在spring mvc项目中实现登录账号单浏览器登录
-
Spring Mvc下实现以文件流方式下载文件的方法示例
-
spring Mvc配置xml使ResponseBody返回Json的方法示例
-
创建简单spring boot项目
-
asp.net mvc项目使用spring.net发布到IIS后,在访问提示错误 Could not load type from string value 'DALMsSql.DBSessionFactory,DALMsSql'.
-
Spring项目整合成SpringBoot的简单登录拦截Demo
-
VS2015ASP.NET MVC5项目中Spring.NET配置方法(超详细)
-
JSP开发中在spring mvc项目中实现登录账号单浏览器登录
-
Spring mvc项目改造为Spring boot 问题
-
.net项目的mvc简单发布