spring mvc框架搭建

                            Spring-mvc

首先servlet 在这里变成了controller(控制器)

接下来是web.xml的配置:

Filter 过滤器,用来解决字符乱码的问题(这里只能解决post传过来的数据),get类型的需要配置Tomcat或者用

name= new String(name.getBytes("ISO-8859-1"),"utf-8");进行转码

 <filter>

<filter-name>encodingFilter</filter-name>

<!--CharacterEncodingFilter的路径需要按住Ctrl加上Shift 和T 进行查找 -->

<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

<!-- 初始化字符集 -->

<init-param>

<!-- 这里的encoding固定写法 -->

      <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>

 <!-- 配置spring的核心控制器 -->

  <servlet>

     <servlet-name>mvc</servlet-name>

<!--DispatcherServlet的路径需要按住Ctrl加上Shift 和T 进行查找 -->

 

     <servlet-class> 

org.springframework.web.servlet.DispatcherServlet</servlet-class>

     <!-- mvc的配置文件的路径 -->

     <init-param>

<!-- 这里的contextConfigLocation固定写法 -->

     <param-name>contextConfigLocation</param-name>

 

  <!-- springmvc.xml是创建的spring的xml文件 -->

<param-value>classpath:springmvc.xml</param-value>

     </init-param>

      <!-- 启动tomcat 时加载DispatcherServlet -->

      <load-on-startup>1</load-on-startup>

  </servlet>

  <servlet-mapping>

   <servlet-name>mvc</servlet-name>

<!--根路径下的 -->

   <url-pattern>/</url-pattern>

  </servlet-mapping>

配置完web.xml接下来是spring-mvc.xml:1:在xmlns里添加context,mvc并且同步添加到xsi里

<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-3.0.xsd

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd

http://www.springframework.org/schema/mvc " >http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

2: <!-- 添加扫描配置包  com.zb.contorller代表扫描的具体的包 -->

     <context:component-scan base-package="com.zb.contorller"></context:component-scan>

3:<!-- 解析springmvc的注解 -->

<mvc:annotation-driven/>

4:<!-- 基于springmvc的注解开发 -->

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"></bean>

 

5:<!-- 视图结果映射 -->

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<!--

文件在跟路径下

prefix:http://localhost:8080/springmvc_02/

suffix:文件的类型

-->

<property name="prefix" value="/"></property>

<property name="suffix" value=".jsp"></property>

</bean>

6:<!-- 加载静态资源 -->

<!-- location="/static/" 根路径下的static mapping="/static/**" 根路径下的static里的(css,js,img)等所有   -->

<mvc:resources location="/static/" mapping="/static/**"/>

7:

<!-- 全局异常配置 -->

<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">

<property name="exceptionMappings">

<props>

<!-- 错误出现运行时异常, 跳转到error.jsp页面 -->

<prop key="java.lang.RuntimeException">error</prop>

</props>

</property>

</bean>

配置完成后,是类上的一些注解的使用:

 

 

@Controller

@Scope("prototype"),单例模式,每次创建一个新的单例

@SessionAttributes({"u"}) //将ModelMap中属性名字为u的再放入session中

Spring-mvc常用注解详情:https://www.cnblogs.com/leskang/p/5445698.html

 

异常处理:

package com.zb.controller;

 

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.ExceptionHandler;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.servlet.HandlerExceptionResolver;

import org.springframework.web.servlet.ModelAndView;

 

@Controller

@RequestMapping("/data")

//在类上定义,指定唯一的访问空间,在访问方法时必须, 先在方法的requestmapping前添加类上的映射/data?op=show

public class DataController implements HandlerExceptionResolver{

 

@RequestMapping(params = "op=show")

public String showData(Model model) {

//http://localhost:8080/springmvc_03/data?op=show

model.addAttribute("msg", "这是dataController中存储的数据!");

//演示全局异常

throw new RuntimeException("程序运行错误!");

// return "ok";

}

 

 

/**

 * 局部异常处理

1.HandlerExceptionResolver

2.resolveException()

局部异常处理

仅能处理指定Controller中的异常

3.@ExceptionHandler

 * @param model

 * @return

 */

@RequestMapping(value="/show")

@ExceptionHandler

public String showData1(Model model) {

//http://localhost:8080/springmvc_03/data/show

model.addAttribute("msg", "这是dataController中存储的数据!");

//演示局部异常

throw new RuntimeException("程序运行错误!");

// return "ok";

}

 

public ModelAndView resolveException(HttpServletRequest request,

HttpServletResponse arg1, Object arg2, Exception arg3) {

// TODO Auto-generated method stub

request.setAttribute("errMgs", arg3);

return new ModelAndView("error");

}

 

 

}

新手上路,请多多指教,只是自己的一些笔记,嘿嘿

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值