spring-mvc4配置和使用
来源:互联网 发布:淘宝子账号有什么用 编辑:程序博客网 时间:2024/06/03 21:07
spring-mvc以前用过,好几年不用了,重温一下。
项目结构
maven配置文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.sun.ssm</groupId> <artifactId>ssm</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>ssm Maven Webapp</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <spring.version>4.3.9.RELEASE</spring.version> <logback.version>1.0.13</logback.version> <slf4j.version>1.7.5</slf4j.version> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <!-- spring begin --> <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-context</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-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> </dependency> <!-- common --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.3</version> </dependency> <!-- javaee --> <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>7.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>javax.servlet.jsp.jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!-- Logging --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>${logback.version}</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>${logback.version}</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-access</artifactId> <version>${logback.version}</version> </dependency> <!-- mysql --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.31</version> </dependency> </dependencies> <build> <finalName>SpringMVC-Maven</finalName> </build></project>
web.xml配置
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:spring/applicationContext.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <listener> <listener-class> org.springframework.web.context.request.RequestContextListener </listener-class> </listener> <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> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/static/*</url-pattern> </servlet-mapping> <servlet> <servlet-name>springDispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springDispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping></web-app>
applicationContext.xml配置
<?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:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd"> <context:component-scan base-package="com.sun.ssm"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /> <context:exclude-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/> </context:component-scan></beans>
spring-mvc.xml配置
<?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:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd"> <context:component-scan base-package="com.sun.**.controller" use-default-filters="false"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> <context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/> </context:component-scan> <!-- ViewResolver --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="prefix" value="/WEB-INF/views/"></property> <property name="suffix" value=".jsp"></property> </bean> <mvc:default-servlet-handler/> <mvc:annotation-driven ></mvc:annotation-driven> <!-- 配置国际化资源文件,配置多语言拦截器 --> <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <property name="basename" value="i18n"></property> <property name="useCodeAsDefaultMessage" value="true" /> </bean> <mvc:interceptors> <!-- 所有页面请求拦截器 --> <bean class="com.sun.ssm.interceptor.ControllerHandleTimeInterceptor"></bean> <!-- 只登陆时有效 --> <mvc:interceptor> <mvc:mapping path="/login"/> <bean class="com.sun.ssm.interceptor.AccessCountInterceptor"></bean> </mvc:interceptor> </mvc:interceptors> <mvc:view-controller path="/" view-name="index"/> <mvc:resources mapping="/static/**" location="/static/" /> <!-- 配置 MultipartResolver --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding" value="UTF-8"></property> <property name="maxUploadSize" value="1024000"></property> </bean> <!-- 配置使用 SimpleMappingExceptionResolver 来映射异常 --> <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="defaultErrorView" value="error/error"></property> <property name="exceptionAttribute" value="ex"></property> <property name="exceptionMappings"> <props> </props> </property> </bean></beans>
Controller实现类
package com.sun.ssm.controller;import com.sun.ssm.utils.LocaleUtil;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.MessageSource;import org.springframework.context.i18n.LocaleContextHolder;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.servlet.LocaleContextResolver;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.support.RequestContext;import java.util.Locale;import java.util.Map;/** * Created by xx on 2017/7/18. */@Controllerpublic class CommonController { @Autowired private MessageSource messageSource; @RequestMapping(value = "/index", method = RequestMethod.GET) public ModelAndView index() { ModelAndView modelAndView = new ModelAndView("index"); // 国际化支持 Locale locale = LocaleContextHolder.getLocale(); String message = messageSource.getMessage("welcome.info",new Object[]{"欢迎光临","sss"}, locale); modelAndView.addObject("info",message ); return modelAndView; } @RequestMapping(value = "/login", method = RequestMethod.GET) public String login(Map<String,Object> map) { map.put("info", "请登陆"); return "login"; } @RequestMapping(value = "/exception", method = RequestMethod.GET) public String exception() { // 用于测试异常 String a = null; a.equals("b"); return "login"; }}
index.jsp页面
http://localhost:8080/index跳转页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head> <script type="text/javascript" src="static/index.js" ></script></head><body><h1>Hello ${info} !!!!!</h1><h2>Hello World!</h2></body></html>
login.jsp页面
http://localhost:8080/login跳转页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><body><h1>Hello ${info2} !!!!!</h1><h2>Hello World!</h2></body></html>
error.jsp页面
统一异常处理页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>异常页面</title></head><body><% Exception ex = (Exception)request.getAttribute("ex"); %><H2>Exception: <%= ex.getMessage()%></H2><P/><% ex.printStackTrace(new java.io.PrintWriter(out)); %></body></html>
拦截器AccessCountInterceptor.java类
这个拦截器记录登陆次数,只是测试,不考虑线程竞争。
package com.sun.ssm.interceptor;import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * Created by xxx on 2017/7/19. */public class AccessCountInterceptor extends HandlerInterceptorAdapter { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { Object countObj = null; countObj = request.getSession().getServletContext().getAttribute("access_count"); int count = 0; if(countObj != null){ count = (Integer)countObj ; } count ++; System.out.println(this.toString()+" access count :"+count); request.getSession().getServletContext().setAttribute("access_count",count); return super.preHandle(request, response, handler); } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { super.afterCompletion(request, response, handler, ex); }}
拦截器ControllerHandleTimeInterceptor.java类
这个拦截器用于记录页面请求时间,时间打印到后台。
package com.sun.ssm.interceptor;import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.util.Date;/** * Created by xxx on 2017/7/19. */public class ControllerHandleTimeInterceptor extends HandlerInterceptorAdapter { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { request.setAttribute("current_date",new Date()); return super.preHandle(request, response, handler); } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println(request.getRequestURI()+" handle time :"+(new Date().getTime()-((Date)request.getAttribute("current_date")).getTime())); super.afterCompletion(request, response, handler, ex); }}
目录
- 项目结构
- maven配置文件
- webxml配置
- applicationContextxml配置
- spring-mvcxml配置
- Controller实现类
- indexjsp页面
- loginjsp页面
- errorjsp页面
- 拦截器AccessCountInterceptorjava类
- 拦截器ControllerHandleTimeInterceptorjava类
- 目录
- 源码位置
源码位置
源码下载:http://download.csdn.net/detail/suncoder/9904254
阅读全文
0 0
- spring-mvc4配置和使用
- Spring mvc4使用JSON
- Spring MVC4.2.1 xml配置
- Spring MVC4 纯注解配置教程
- Spring mvc4使用JSON包变更
- Spring mvc4使用JSON包变更
- Spring mvc4使用JSON包变更
- Spring mvc4使用JSON包变更
- Spring mvc4使用JSON包变更
- Spring mvc4使用json包变更
- Spring.Net在MVC4中的使用
- Spring MVC4.1-Spring MVC的配置(含自定义HttpMessageConverter)
- spring-security3 配置和使用.
- spring-security3 配置和使用
- spring-security3 配置和使用
- spring-security3 配置和使用.
- spring-security3 配置和使用
- spring-security3 配置和使用.
- Redis简介-安装-Spring-SpringBoot集成教程
- Allegro导出PCB封装文件和焊盘文件
- Intellij Idea-统一显示SpringMVC请求和处理方法映射列表
- 如何选择合适的UI培训学校
- [Ubuntu 14.04] Samba创建文件出现Connection Abort 或者Window资源管理器访问samba崩溃问题
- spring-mvc4配置和使用
- hihoCoder #1319 : 区域周长
- eclipse下创建maven spring MVC 项目全步骤
- 数据挖掘算法笔记:knn算法
- 关于Myeclipse无法部署任务的解决方法
- 【树状数组--dfs序转化】poj3321 Apple Tree
- could not bind to address 0.0.0.0:80 no listening sockets available, shutting down
- vs2010下生成程序时无法启动程序 拒绝访问
- Java集合中有关有序,无序的概念