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}

    窗竹影摇书案上,野泉声入砚池中。 少年辛苦终身事,莫向光阴惰寸功
  • 相关阅读:
    Jquery的函数
    Jquery的$.ajax()函数$.get(),$.post(),$.getjson(),$.ajax()
    $.ajax()详解
    JSON 数据格式,能比较清晰容易理解的解读json
    练习:WinForm 对话框控件(文件读取、写入)
    练习:WinForm 对话框控件(显示、获取)
    练习:WinForm--DataGridView增删改查完整版
    Chapter 10. WinForm-DataGridView(确认删除、多条件查询、数据区别显示)
    Chapter 10. WinForm-DataGridView
    练习:WinForm 计算器
  • 原文地址:https://www.cnblogs.com/qhantime/p/10746917.html
Copyright © 2011-2022 走看看