`

SpringMVC入门 (五)用户登录以及异常处理,静态文件

阅读更多
用户登录很简单,一个get类型请求给用户返回一个登录界面,然后接受用户的登录数据,如果没错则将用户跳转到WEB-INF/jsp/user/list.jsp界面。
@RequestMapping(value="/login",method=RequestMethod.GET)
	public String login(){
		return "login";
	}
	
	
	@RequestMapping(value="/login",method=RequestMethod.POST)
	public String login(String username, String password, HttpSession session){
		if(!users.containsKey(username)){
			throw new UserException("用户名不存在");
		}
		User u=users.get(username);
		if(!u.getPassword().equals(password)){
			throw new UserException("用户密码不正确");
		}
		session.setAttribute(username, u);
		return "redirect:/user/users";
		
	}


这里主要讲异常处理。

首先讲局部异常处理
1. 在UserController下加入以下方法:
//局部异常处理,只能处理这个控制器中的异常.
	@ExceptionHandler(value={UserException.class})
	public String handlerException(UserException ue,HttpServletRequest req){
	    req.setAttribute("exception", ue);
	    return "error";
	}


2.在WEB-INF/jsp下创建error.jsp文件
 <body>
    <h1>${exception.message}</h1>
  </body>


此时用户访问所产生的内部异常将不会抛出我们平时所见的exception stack,而是返回给用户error.jsp页面,并告知用户异常信息。
error.jsp这个页面我们就可以让美工自由发挥了。 -O-



接下来是全局异常处理

在hello-servlet.xml中加入:
	<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
			<!--这里必须要写SimpleMappingExceptionResolver里的元素名称:private Properties exceptionMappings; -->
			<property name="exceptionMappings">
				<props>
				 <!-- 要映射的异常类 -->
					<prop key="com.lj.model.UserException">error</prop>
				</props>
			</property>
		</bean>


加入全局异常以后,任何控制器里抛出的UserException都会被SpringMVC捕获并将页面跳转到WEB-INF/jsp/error.jsp页面。
对应的异常对象是exception.



静态文件
由于SpringMVC通过设置web.xml的servlet,捕获了所有路径。
<servlet>
		<servlet-name>hello</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>hello</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>

这样一来,客户端就不能访问到css,jpg等文件。
因此必须采取相应的配置才能让用户访问这些文件。

在hello-servlet.xml中加入:
	<!-- 将静态文件制定到某个特殊的文件夹中统一处理 -->
		<mvc:resources location="/resources/" mapping="/resources/**"/>

这样我们只要在webroot目录下创建一个resources目录,再将所有文件放入此目录,通过<%=path%>/resources/filename就可以访问了。


分享到:
评论

相关推荐

    springMVC快速入门 深入分析

    在深入分析SpringMVC时,会发现它的一个重要特性是能够处理静态资源,比如图片、JavaScript文件和CSS样式表。SpringMVC默认情况下允许请求被发送到DispatcherServlet,这样可以确保静态资源的访问。此外,...

    SpringMVC入门很简单之HelloWorld

    在"SpringMVC入门很简单之HelloWorld"这个主题中,我们将探讨如何设置一个基本的SpringMVC项目并实现简单的"Hello, World!"展示。 首先,项目结构至关重要。在给定的文件名称列表中,我们看到了几个关键目录: 1. ...

    SpringMVC入门

    以上就是SpringMVC入门的基础知识点。通过上述步骤,我们可以构建一个简单的SpringMVC应用程序,实现基本的请求处理和视图渲染功能。随着对SpringMVC的深入了解,可以进一步学习其高级特性,如数据绑定、拦截器、...

    SpringMVC入门教程

    七、spring mvc 如何访问到静态的文件,如jpg,js,css 八、spring mvc 请求如何映射到具体的Action中的方法 九、 spring mvc 中的拦截器: 十、 spring mvc 如何使用拦截器 十一、 spring mvc 如何实现全局的异常处理...

    SpringMVC快速入门 深入分析

    静态资源处理:** SpringMVC允许通过配置静态资源处理器(如`&lt;mvc:resources&gt;`)直接访问静态资源,如CSS、JS、图片等。 **4. 异常处理:** 可以通过配置异常处理器(如`@ExceptionHandler`注解)统一处理全局异常...

    SpringMVC入门程序

    SpringMVC 提供了丰富的功能,如依赖注入、数据绑定、异常处理等,使得开发人员能够更高效地开发和维护 Web 应用。本文将深入探讨 SpringMVC 的基本概念、配置以及如何创建一个简单的入门程序。 1. **SpringMVC ...

    SpringMVC快速入门教程-深入分析

    - 访问静态资源:通过配置,Spring MVC可以处理静态文件(如jpg、js、css)的请求。 - 请求映射到具体方法:通过@RequestMapping注解,我们可以将HTTP请求映射到特定的Controller方法。 - 拦截器:使用@...

    springMVC笔记

    2. springmvc-servlet.xml配置文件说明:这个配置文件中需要定义组件扫描、静态资源处理、注解驱动以及视图解析器等信息。 - 组件扫描(component-scan):指定SpringMVC需要管理的包路径,它会自动扫描这些路径...

    springMVC笔记.pdf

    SpringMVC笔记涉及了SpringMVC框架的全面知识,从基础入门到高级应用,内容丰富涵盖了架构原理、组件配置、处理器映射器和适配器的配置、视图解析、源码分析、整合MyBatis、参数绑定与校验、异常处理、RESTful支持...

    springMVC 教程

    访问静态文件部分将介绍如何在SpringMVC中配置和处理静态资源,例如图片(jpg)、JavaScript文件(js)、CSS样式表(css)等。 请求映射是SpringMVC中将用户请求映射到控制器中的方法的过程。这部分将详细讲解如何...

    SpringMVC项目搭建过程备忘

    本文将详细介绍SpringMVC项目的搭建过程,帮助开发者快速入门。 首先,我们需要理解SpringMVC的核心概念。SpringMVC采用Model-View-Controller(MVC)设计模式,将业务逻辑、数据和用户界面进行分离,提高了代码的...

    springmvc +hibernate demo

    SpringMVC和Hibernate是两种非常重要的Java Web...同时,它也会涉及到事务管理、异常处理等关键点。此外,通过阅读和运行这个项目,新手还能掌握Maven或Gradle等构建工具的使用,以及如何在IDE中调试和测试Web应用。

    springMVC教程

    2. **Controller**:控制器接口或其注解驱动的实现(如`@Controller`),处理用户请求并返回模型数据。 3. **Model**:模型对象,包含应用程序数据,通常由业务层创建。 4. **View**:视图解析器根据模型数据渲染...

    SpringMVC 2013 内部经典教学文档 秒杀所有市面

    在这一章,文档会讨论SpringMVC如何处理运行时异常,包括自定义异常处理器和全局异常处理。此外,可能还会涉及到HTTP状态码和错误页面的配置。 第十章《约定大于配置》: 本章可能涉及SpringMVC的“约定优于配置”...

    springmvc简单例子

    在该类中,你可以定义处理用户请求的方法,如注册用户、登录等。这些方法通常会使用 `@RequestMapping` 注解来指定 URL 映射。例如,注册用户的请求可以映射为 `/register`。 4. **模型与视图** 在 Controller ...

    spring mvc 快速入门深入分析

    ### Spring MVC 快速入门深入分析 #### 一、Spring MVC 概述 Spring MVC 是 Spring Framework 的一个重要模块,主要用于构建 Web 应用程序。它遵循 MVC(Model-View-Controller)设计模式,将应用程序的不同关注点...

    Spring MVC入门教程

    七、spring mvc 如何访问到静态的文件,如jpg,js,css? 八、spring mvc 请求如何映射到具体的Action中的方法? 九、spring mvc 中的拦截器: 十、spring mvc 如何使用拦截器? 十一、spring mvc 如何实现全局的异常...

    Spring_MVC_教程_快速入门_深入分析

    7. 静态资源访问:SpringMVC需要配置静态资源的映射,以便能够正确地处理对静态资源如图片、JavaScript文件、CSS文件的请求。 8. 请求映射到Action方法:介绍了如何通过@RequestMapping注解将HTTP请求映射到控制器...

    springmvc—demo

    在本"springmvc—demo"项目中,你将找到一个简单的Spring MVC入门程序,这个程序是在IntelliJ IDEA集成开发环境下创建的。下面我们将详细探讨Spring MVC的核心概念以及如何使用IDEA来搭建和运行此类项目。 1. **...

    Spring MVC 教程 快速入门 深入分析

    七、spring mvc 如何访问到静态的文件,如jpg,js,css? 八、spring mvc 请求如何映射到具体的Action中的方法? 九、spring mvc 中的拦截器: 十、spring mvc 如何使用拦截器? 十一、spring mvc 如何实现全局的异常...

Global site tag (gtag.js) - Google Analytics