激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

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

香港云服务器
服務(wù)器之家 - 編程語言 - Java教程 - SpringMVC編程使用Controller接口實(shí)現(xiàn)控制器實(shí)例代碼

SpringMVC編程使用Controller接口實(shí)現(xiàn)控制器實(shí)例代碼

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

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

Controller簡介

Controller控制器,是MVC中的部分C,為什么是部分呢?因?yàn)榇颂幍目刂破髦饕?fù)責(zé)功能處理部分:

1、收集、驗(yàn)證請求參數(shù)并綁定到命令對象;

2、將命令對象交給業(yè)務(wù)對象,由業(yè)務(wù)對象處理并返回模型數(shù)據(jù);

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

DispatcherServlet,主要負(fù)責(zé)整體的控制流程的調(diào)度部分:

1、負(fù)責(zé)將請求委托給控制器進(jìn)行處理;

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

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

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

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

主要包括: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,默認(rèn)方式的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類,包括兩個(gè),一個(gè)用于打開首頁,一個(gè)用于處理用戶輸入并返回

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界面,包括兩個(gè),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>

好了,代碼部分已經(jīng)齊全了,啟動(dòng)server之后,輸入U(xiǎn)RL:http://localhost:8080/SpringSimple/product_input.action;就可以看到首頁了。

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

總結(jié)

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

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

延伸 · 閱讀

精彩推薦
636
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 91高清国产 | 欧美精品成人一区二区在线观看 | 成人免费一区二区三区视频网站 | 亚洲一区二区三区日本久久九 | 88xx成人精品视频 | 久久久久久久久久91 | 97香蕉超级碰碰久久免费软件 | 亚洲一区在线国产 | 欧美日韩亚洲国产 | 亚洲精品午夜电影 | 亚洲精中文字幕二区三区 | 他也色在线视频 | 久久逼逼| 91午夜在线观看 | gril hd | free国产hd老熟bbw | 91看片在线观看视频 | 伦理三区| 一区二区精品视频在线观看 | 一区二区三区手机在线观看 | 在线观看网址av | 伊人在线视频 | 日本网站在线看 | 黄网站在线免费 | 羞羞羞羞视频 | 一级黄色在线观看 | 久久久久久久免费看 | 小视频免费在线观看 | 精品国产一区二区三区天美传媒 | 美女av在线免费观看 | 国产成人精品区 | 国产91在线高潮白浆在线观看 | 99视频在线观看视频 | 全黄毛片 | 丁香天堂网 | 色网免费观看 | 久久最新免费视频 | 亚洲欧美国产精品va在线观看 | 99r国产精品 | 日韩精品免费一区二区三区 | 国产亚洲精彩视频 |