zoukankan      html  css  js  c++  java
  • Spring MVC

    引 jar 包

    aopalliance.jar
    aspectjweaver.jar
    commons-logging-1.2.jar
    spring-aop-3.2.16.RELEASE.jar
    spring-beans-3.2.16.RELEASE.jar
    spring-context-3.2.16.RELEASE.jar
    spring-core-3.2.16.RELEASE.jar
    spring-expression-3.2.16.RELEASE.jar
    spring-web-3.2.16.RELEASE.jar
    spring-webmvc-3.2.16.RELEASE.jar

    在web中配备依赖

    //解决中文乱码问题

    <filter>
    <filter-name>filterinto</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>filterinto</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>

    <servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:springmvc-servlet1.xml</param-value>
    </init-param>

    //启动级别数字越小级别越大
    <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/</url-pattern>
    </servlet-mapping>

    配备资源文件springmvc-servlet1.xml

      springmvc-servlet1.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:p="http://www.springframework.org/schema/p"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    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.xsd
    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    //扫描com.bdqn.chontroller层

    <context:component-scan base-package="com.bdqn.chontroller"></context:component-scan>

    //逻辑视图解析器

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/"/>
    <property name="suffix" value=".jsp" />
    </bean>

    //拦截器

    <mvc:interceptors>
    <mvc:interceptor>
    <mvc:mapping path="/*"/>
    <mvc:exclude-mapping path="/login"/>
    <bean class="com.bdqn.util.loginfilter"></bean>
    </mvc:interceptor>
    </mvc:interceptors>
    </beans>

    前后台交互

    前台

    login页面

    index页面

    后台

    后台向前台传值的方式

    1.使用map向页面传值

    @Controller
    public class UserController {
    @RequestMapping("/demo1")
    public String getdemo1(Map<String, Object> map){

    map.put("n","list数据");
    return "index";
    }

    通过request 传值

    @RequestMapping("/demo2")
    public String getdemo2(HttpServletRequest request){
    List<User> users=new ArrayList<User>();
    for(int i=0;i<=10;i++){
    User user = new User();
    user.setName("n:"+i);
    user.setPassword("p:"+i);
    users.add(user);
    }
    request.setAttribute("l", users);
    return "index";
    }

    2.使用model 向页面传值
    @RequestMapping("/demo3")
    public String getdemo3(Model request){
    List<User> users=new ArrayList<User>();
    for(int i=0;i<=10;i++){
    User user = new User();
    user.setName("n:"+i);
    user.setPassword("p:"+i);
    users.add(user);
    }
    request.addAttribute("l", users);
    return "index";
    }

    前台jstl表达式

       <s:forEach items="${list}" var="t">

          ${t.id}  ${t.name} <br />

       </s:forEach>

    3第三种通过modelandview传值

    @RequestMapping("/demo4")
    public ModelAndView getdemo4(HttpSession session,String b){
    List<User> users=new ArrayList<User>();
    for(int i=0;i<=10;i++){
    User user = new User();
    user.setName("n:"+i);
    user.setPassword("p:"+i);
    users.add(user);
    }
    System.out.println(b);
    session.setAttribute("s", "中文");
    ModelAndView a=new ModelAndView();
    a.setViewName("index");
    a.addObject("l",users);
    return a;
    }

    使用spring mvc拦截器

    1.配置拦截器规则指向自定义的类

       <mvc:interceptors> 

            <mvc:interceptor>  

                <mvc:mapping path="/book/*"/>  

                <!-- 定义在mvc:interceptor下面的表示是对特定的请求才进行拦截的 -->  

                <bean class="com.bdqn.filter.loginfilter"/>  

            </mvc:interceptor>  

          </mvc:interceptors>

    2.定义loginfilter类实现接口HandlerInterceptor并实现三个方法

    3session的值为登录后添加

    spring mvc集成了jsp的内置对象我们可以直接使用。如上图所示。

    spring MVC异常处理机制

    3.1全局异常处理

    1.在配置文件中配置全局异常信息

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

          

            <property name="exceptionMappings">  

                <props>  

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

                </props>  

            </property>  

    </bean>  

    2.模拟一个异常信息如:

    int j=new Integer("sss");

    3.error通过试图解析找到视图

              <!-- 全局异常 -->

        ${exception.message}

    窗竹影摇书案上,野泉声入砚池中。 少年辛苦终身事,莫向光阴惰寸功
  • 相关阅读:
    A1052. Linked List Sorting (25)
    A1032. Sharing (25)
    A1022. Digital Library (30)
    A1071. Speech Patterns (25)
    A1054. The Dominant Color (20)
    A1060. Are They Equal (25)
    A1063. Set Similarity (25)
    电子码表
    矩阵键盘
    对象追踪、临时对象追踪、绝对坐标与相对坐标
  • 原文地址:https://www.cnblogs.com/qhantime/p/10746917.html
Copyright © 2011-2022 走看看