一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - SpringMVC編程使用Controller接口實現控制器實例代碼

SpringMVC編程使用Controller接口實現控制器實例代碼

2021-02-14 23:02JDI_NW Java教程

這篇文章主要介紹了SpringMVC編程使用Controller接口實現控制器實例代碼,具有一定參考價值,需要的朋友可以參考下。

Controller簡介

Controller控制器,是MVC中的部分C,為什么是部分呢?因為此處的控制器主要負責功能處理部分:

1、收集、驗證請求參數并綁定到命令對象;

2、將命令對象交給業務對象,由業務對象處理并返回模型數據;

3、返回ModelAndView(Model部分是業務對象返回的模型數據,視圖部分為邏輯視圖名)。

DispatcherServlet,主要負責整體的控制流程的調度部分:

1、負責將請求委托給控制器進行處理;

2、根據控制器返回的邏輯視圖名選擇具體的視圖進行渲染(并把模型數據傳入)。

因此MVC中完整的C(包含控制邏輯+功能處理)由(DispatcherServlet+Controller)組成。

因此此處的控制器是WebMVC中部分,也可以稱為頁面控制器、動作、處理器。

之前用注解的方式實現了控制器,現在換了一種,通過實現了Controller接口的Controller類來實現處理請求的作用。

主要包括:XML配置文件,Java普通類,Javaform類,Controller類,和JSP界面

1.首先是XML配置文件,包括了web.xml和springmvc-servlet.xml。代碼如下:

1)web.xml

?
1
2
3
4
5
6
7
8
9
10
11
12
<?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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
 <servlet>
  <servlet-name>springmvc</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet-mapping>
  <servlet-name>springmvc</servlet-name>
  <url-pattern>/</url-pattern>
 </servlet-mapping>
</web-app>

2)springmvc-servlet,默認方式的DispatcherServlet配置。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
   
  <bean name="/product_input.action" class="controller.InputProductController" />
  <bean name="/product_save.action" class="controller.SaveProductController" />
 
  <bean id="viewResolver"
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
   <property name="prefix" value="/WEB-INF/jsp/" />
   <property name="suffix" value=".jsp" />
  </bean>
</beans>

2.Controller類,包括兩個,一個用于打開首頁,一個用于處理用戶輸入并返回

1)InputProductController.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class InputProductController implements Controller{
    private static final Log logger = LogFactory.getLog(InputProductController.class);
    @Override
      public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
        logger.info("InputProductController called");
        return new ModelAndView("ProductForm");
    }
}

2)SaveProductController.java,保存用戶輸入的Product信息并返回

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import domain.Product;
import form.ProductForm;
public class SaveProductController implements Controller{
    private static final Log logger = LogFactory.getLog(SaveProductController.class);
    @Override
      public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
        logger.info("SaveProductController called");
        ProductForm productForm = new ProductForm();
        //product action properties
        productForm.setName(request.getParameter("name"));
        productForm.setDescription(request.getParameter("description"));
        productForm.setPrice(request.getParameter("price"));
        //create model
        Product product = new Product();
        product.setName(productForm.getName());
        product.setDescription(productForm.getDescription());
        try {
            product.setPrice(
                      float.parsefloat(productForm.getPrice()));
        }
        catch(NumberFormatException e) {
        }
        //insert code to save Product
        System.out.println("返回視圖");
        return new ModelAndView("ProductDetails","product",product);
    }
}

3.JSP界面,包括兩個,ProductForm和ProductDetails

1)ProductForm.jsp

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
 
<div id="global">
<form action="product_save.action" method="post">
 <fieldset>
  <legend>Add a product</legend>
  <label for="name">Product Name: </label>
  <input type="text" id="name" name="name" value="" tabindex="1">
  <label for="description">Description: </label>
  <input type="text" id="description" name="description" tabindex="2">
  <label for="price">Price: </label>
  <input type="text" id="price" name="price" tabindex="3">
  <div id="buttons">
   <label for="dummy"></label>
   <input id="reset" type="reset" tabindex="4">
   <input id="submit" type="submit" tabindex="5" value="Add Product">
  </div>
 </fieldset>
</form>
</div>
 
</body>
</html>

2)ProductDetails.jsp

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<div id="global">
 <h4>The product has been saved.</h4>
 <p>
   <h5>Details:</h5>
   Product Name: ${product.name} <br />
   Description: ${product.description}<br />
   Price: $${product.price}
 </p>
</div>
</body>
</html>

好了,代碼部分已經齊全了,啟動server之后,輸入URL:http://localhost:8080/SpringSimple/product_input.action;就可以看到首頁了。

注:配置文件和Controller類返回的視圖中文件的位置必須要小心。。

總結

以上就是本文關于SpringMVC編程使用Controller接口實現控制器的全部內容,希望對大家有所幫助。如有不足之處,歡迎留言指出。

原文鏈接:http://blog.csdn.net/qq_28379809/article/details/76177343

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: gogo人体模特啪啪季玥图片 | 麻麻与子乱肉小说怀孕 | 日本一区二区免费在线 | 忘忧草秋观看未满十八 | 亚洲AV无码专区国产乱码网站 | 精品国产日韩亚洲一区在线 | 我与肥熟老妇的性事 | 青青青视频免费观看 | 蜜月aⅴ免费一区二区三区 蜜桃影像传媒推广 | 喜马拉雅听书免费版 | 91最新高端约会系列178 | 国产亚洲自愉自愉 | japanesexxxx日本妞 | 天美传媒果冻传媒星空传媒 | 青青国产在线观看 | se综合| 奇米影视久久777中文字幕 | 久久视频在线视频观看天天看视频 | 99精品全国免费7观看视频 | 国产91无毒不卡在线观看 | 福利一区在线观看 | 国产精品久久久久久久久免费hd | 69re在线观看 | 亚洲精品一区在线观看 | 好大好硬好深好爽gif图 | 高h折磨调教古代 | 亚洲精品第五页 | 亚洲天堂一区二区在线观看 | 亚洲成人91 | 日韩精品中文字幕久久 | 我的好妈妈7中字在线观看韩国 | 五月天网站 | 国产一区二区三区日韩 | 出轨娇妻的呻吟1—9 | 性绞姿始动作动态图 | 精品乱lun小说 | 久久精品动漫99精品动漫 | 成年性香蕉漫画在线观看 | 久久99精品涩AV毛片观看 | 久久视频在线视频观看天天看视频 | 久久精品国产视频澳门 |