日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

04springMVC结构,mvc模式,spring-mvc流程,spring-mvc的第一个例子,三种handlerMapping,几种控制器,springmvc基于注解的开发,文件上传,拦截器,s

發布時間:2024/9/27 c/c++ 26 豆豆


1. Spring-mvc介紹

1.1市面上流行的框架

  • Struts2(比較多)

  • Springmvc(比較多而且屬于上升的趨勢)

  • Struts1(即將被淘汰)

  • 其他

1.2??spring-mvc結構

  • ?DispatcherServlet:中央控制器,把請求給轉發到具體的控制類

  • Controller:具體處理請求的控制器(配置文件方式需要配置,注解方式不用配置)

  • handlerMapping:映射處理器,負責映射中央處理器轉發給controller時的映射策略

  • ModelAndView:服務層返回的數據和視圖層的封裝類(無論是配置文件還是注解都不需要配置)

  • ViewResolver? & View:視圖解析器,解析具體的視圖

  • Interceptors :攔截器,負責攔截我們定義的請求然后做處理工作(無論是配置文件方式還是注解都需要先創建再配置)

    紅色的是需要自己創建,黑色的需要配置。

  • 1.4spring-mvc流程

    ?

    2.spring-mvc的第一個例子

    1. 創建一個web工程

    2. 導入依賴包

    3.創建springmvc的配置文件

    • 配置中央控制

    創建springmvc的核心配置文件

    文件的命名規則:中央控制器(servlet的名稱)的名稱+-servlet.xml

    默認位置:WEB-INF

    配置:controller和視圖解析器

    4. 創建controller

    3 .三種handlerMapping

    1. BeanNameUrlHandlerMapping? (默認)

    <!-- 按著controllername來映射尋找controller,默認存在 -->?????????????

    ?? <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>

    2.SimpleUrlHandlerMapping

    <!-- 使用簡單url來映射 -->

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

    ????? <property name="mappings">

    ??????? <props>

    ?????????? <prop key="/hello1.do">myController</prop>

    ??????? </props>

    ????? </property>

    ?? </bean>

    3.ControllerClassNameHandlerMapping

    <!-- 控制類的類名控制器,訪問時類名首字母需要小寫 -->

    ?? <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"></bean>

    4.幾種控制器

  • ParameterizableViewController(參數控制器)

    ?

  • <bean name="/toIndex.do" class="org.springframework.web.servlet.mvc.ParameterizableViewController">

    ????? <!-- 配置你所要跳轉到視圖的名稱 -->

    ????? <property name="viewName"value="index"></property>

    </bean>

  • ?AbstractCommandController(命令控制器)
  • ?

  • ?FormController(表單控制器)
  • 只支持post請求方式

  • 表單控制器有簡單的驗證功能

  • 如果提交失敗返回表單頁面,如果提交成功就跳轉到成功頁面

  • 有收集表單數據的功能

  • 日期類型轉換

  • 5 springmvc基于注解的開發

    5.1注解第一個例子

  • 創建web項目

  • springmvc的配置文件中指定注解驅動,配置掃描器

  • @controller:標識當前類是控制層的一個具體的實現

  • @requestMapping:放在方法上面用來指定某個方法的路徑,當它放在類上的時候相當于命名空間需要組合方法上的requestmapping來訪問。

  • 5.2注解方式參數

    1.在方法中可以自己隨意去定義方法的參數,如果方法的參數的名稱與傳入參數的name匹配就會自動接收,別且轉換我們所定義的數據類型。如果參數列表里定義了自定義的類springmvc會給我們把匹配的參數手機起來并且組裝成對象。

    2. requestMapping里面的method的類型必須要與前臺form的類型一致

    3. 重定向:

    6. 文件上傳

  • 引入jar

  • 配置視圖解析器

  • 寫上傳邏輯

  • ?

    /**

    ?? ?* model層的處理使用map

    ?? ?* desc

    ?? ?* author:任亮

    ?? ?* mail:renliangjava@163.com

    ?? ?* qq群:2636378537

    ?? ?* @throws Exception

    ?? ?*/

    @RequestMapping(value="/personForUpload.do",method=RequestMethod.POST)

    ?? public String personForUpload(HttpServletRequest request,Person person, Map<String,Object> map) throws Exception{

    ????? //第一步轉化request

    ????? MultipartHttpServletRequest mr = (MultipartHttpServletRequest)request;

    ????? //獲得上傳的文件mr.getFile(String fileName),fileName<input type="file" name="pic"><br>pic

    ????? CommonsMultipartFile cf = (CommonsMultipartFile) mr.getFile("pic");

    ????? byte[] fb = cf.getBytes();

    ????? String fileName = "";

    ????? //設置時間戳格式

    ????? SimpleDateFormat af = new SimpleDateFormat("yyyyMMddhhmmssSSS");

    ????? //獲得時間戳的字符串

    ????? fileName = af.format(new Date());

    ????? //加三位隨機數

    ????? Random random = new Random();

    ????? for(int i = 0; i < 3; i++){

    ??????? fileName = fileName + random.nextInt(10);

    ????? }

    ????? String path =request.getSession().getServletContext().getRealPath("/");

    ????? OutputStream out = new FileOutputStream(path+"/img/"+fileName+".jpg");

    ????? out.write(fb);

    ????? out.flush();

    ????? out.close();

    ????? map.put("person", person);

    ????? return "success";

    }

    7. 攔截器

    ?

    8. Ssm整合

    參見代碼

    <?xml version="1.0"encoding="UTF-8"?>

    ?? <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    ????? xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

    ????? xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

    ????? id="WebApp_ID" version="2.5">

    ?

    ?? <!-- springmvc中央的轉發器 -->

    ?? <servlet>

    ????? <servlet-name>springmvc</servlet-name>

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

    ????? <init-param>

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

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

    ????? </init-param>

    ?? </servlet>

    ?? <servlet-mapping>

    ????? <servlet-name>springmvc</servlet-name>

    ????? <url-pattern>*.do</url-pattern>

    ?? </servlet-mapping>

    ??

    ?? <listener>

    ????? <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

    ?? </listener>

    ?? <context-param>

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

    ????? <param-value>classpath:beans.xml</param-value>

    ?? </context-param>

    </web-app>

    ?

    ?

    ?

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

    ?? xmlns:aop="http://www.springframework.org/schema/aop"

    ?? xmlns:tx="http://www.springframework.org/schema/tx"

    ?? xsi:schemaLocation="http://www.springframework.org/schema/beans

    ???????????????? http://www.springframework.org/schema/beans/spring-beans.xsd

    ???????????????? http://www.springframework.org/schema/mvc

    ???????????????? http://www.springframework.org/schema/mvc/spring-mvc-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/aop

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

    ?? ????????????? http://www.springframework.org/schema/tx

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

    ????? <!-- 注解掃描器 -->

    ????? <context:component-scan base-package="cn.itcast"/>

    ??

    ????? <bean id="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource">

    ??????? <property name="driverClassName"value="com.mysql.jdbc.Driver"></property>

    ??????? <property name="url"value="jdbc:mysql://127.0.0.1:3306/springmvc"></property>

    ??????? <property name="username"value="root"></property>

    ??????? <property name="password"value="root"></property>

    ????? </bean>

    ?????

    ????? <bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

    ??????? <property name="dataSource"ref="dataSource"></property>

    ??????? <property name="mappingDirectoryLocations">

    ?????????? <value>classpath:cn/itcast/hbm</value>

    ??????? </property>

    ??????? <property name="hibernateProperties">

    ?????????? <props>

    ????????????? <prop key="hibernate.Dialect">org.hibernate.dialect.MySQL5Dialect</prop>

    ????????????? <prop key="hibernate.show_sql">true</prop>

    ????????????? <prop key="hibernate.hbm2ddl">update</prop>

    ?????????? </props>

    ??????? </property>

    ????? </bean>

    ?????

    ????? <bean id="txManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager">

    ??????? <property name="sessionFactory"ref="sessionFactory"></property>

    ????? </bean>

    ?????

    ????? <tx:advice id="txAdvice"transaction-manager="txManager">

    ??????? <tx:attributes>

    ?????????? <tx:method name="save*"propagation="REQUIRED"/>

    ?????????? <tx:method name="update*"propagation="REQUIRED"/>

    ?????????? <tx:method name="get*"propagation="NEVER" read-only="true"/>

    ??????? </tx:attributes>

    ????? </tx:advice>

    ?????

    ????? <aop:config>

    ??????? <aop:advisor advice-ref="txAdvice"pointcut="execution(* cn.itcast.service..*.*(..))"/>

    ????? </aop:config>

    </beans>

    ?

    總結

    以上是生活随笔為你收集整理的04springMVC结构,mvc模式,spring-mvc流程,spring-mvc的第一个例子,三种handlerMapping,几种控制器,springmvc基于注解的开发,文件上传,拦截器,s的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。