日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php開源 > php教程 > SpringMVC視頻學(xué)習(xí)筆記

SpringMVC視頻學(xué)習(xí)筆記

來源:程序員人生   發(fā)布時間:2016-10-07 10:25:56 閱讀次數(shù):2952次

學(xué)習(xí)MVC框架的流程

1、搭建環(huán)境
2、如何完成Controller和Viewer的映照
3、如何把值傳遞給Controller
6、頁面標(biāo)簽
7、文件上傳
8、深入1下源代碼

基于SpringMVC實現(xiàn)簡單的用戶管理

這里寫圖片描述

1、搭建環(huán)境

1.導(dǎo)入jar包

a.導(dǎo)入spring的jar包

這里寫圖片描述

b.導(dǎo)入commons-logging-xxx.jar

這里寫圖片描述

2.配置web.xml

<servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 如果不配置這個,那末 就必須在/WEB-IN/下創(chuàng)建文件名為springmvc-servlet的.xml文件--> <init-param> <param-name>contextConfigLocation</param-name> <!-- 在src目錄下或自己創(chuàng)建的"Source Floder"目錄下新建springmvc.xml --> <param-value>classpath:springmvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>

3.創(chuàng)建springmvc.xml文件

<?xml version="1.0" encoding="UTF⑻"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans⑶.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop⑶.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context⑶.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc⑶.0.xsd"> </beans>

1.使用非注解方式進(jìn)行配置,在springmvc.xml添加以下代碼

<!-- 非注解方式 --> <bean name="/welcome.html" class="com.wen.controller.WelcomeController"></bean> <!-- 配置視圖解析器 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean>

WellcomeController.java代碼以下:

public class WelcomeController extends AbstractController { @Override protected ModelAndView handleRequestInternal(HttpServletRequest req, HttpServletResponse resp) throws Exception { System.out.println("Welcome"); ModelAndView mav = new ModelAndView(); //則返回的視圖為/WEB-INF/jsp/welcome.jsp mav.setViewName("welcome"); //在wellcome.jsp中可使用${msg}獲得'welcome to spring MVC' mav.addObject("msg", "welcome to spring MVC"); return mav; } }

上面這類非注解方式來映照視圖的方式幾近不會使用

2.使用注解方式

springmvc.xml的配置以下:

<!-- 使用注解方式 --> <!-- 打開注解 --> <mvc:annotation-driven/> <!-- 掃描包 --> <context:component-scan base-package="com.wen.controller"/> <!-- 配置視圖解析器 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean>

HelloController.java代碼以下:

//@RequestMapping表示用哪一個url來對應(yīng) @RequestMapping(value={"/hello","/"}) //@RequestParam注解參數(shù) //如http://xxx/hello?username=zhangsan //使用Map<String, Object> context來將數(shù)據(jù)傳遞到hello.jsp頁面 public String hello(@RequestParam(value="username",required=false)String name, Map<String, Object> context){ System.out.println("hello " + name); context.put("username", name); return "hello"; }

但更建議使用Model來傳遞數(shù)據(jù),代碼以下

@RequestMapping(value="welcome") public String welcome(String username,Model model){ //使用model.addAttribute來傳遞數(shù)據(jù) //如http://xxx/welcome?username=zhangsan model.addAttribute("msg", "welcome to spring MVC"); model.addAttribute("name", username); return "welcome"; }

4、REST簡介

REST的風(fēng)格不等于使用了REST技術(shù)

user為路徑,120為user_id
查詢用戶:user/120———————查詢id=120的用戶
刪除用戶:user/120/delete————刪除id=120的用戶
更新用戶:user/120/update———–更新id=120的用戶信息

1些技能

當(dāng)jsp頁面中需要使用標(biāo)簽庫時(如:需要使用< c:forEach>)
1.首先需要導(dǎo)入jstl⑴.x.jar包
這里寫圖片描述
2.需要在jsp頁面中加入以下代碼:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

這里寫圖片描述

3.同時,需要在springmvc.xml的視圖解析器配置中加入以下代碼:

<!-- 當(dāng)要使用taglib標(biāo)簽庫是,需要配置這個屬性。但spring3.0.5以后默許會加上這個屬性 --> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>

這里寫圖片描述

如果要使用驗證,則需要導(dǎo)入下面這個包
這里寫圖片描述
JSR303使用幫助
用法舉例:
在User.java中的get方法上面使用驗證注解
這里寫圖片描述
在Controller方法中:
這里寫圖片描述
在add.jsp中:
這里寫圖片描述
結(jié)果以下:
這里寫圖片描述

下面是1個列子

這里寫圖片描述

User.java
public class User { private String username; private String password; private String nickname; private String email; //默許構(gòu)造函數(shù) public User(){ } public User(String username, String password, String nickname, String email) { super(); this.username = username; this.password = password; this.nickname = nickname; this.email = email; } //省略setter和getter方法
add.jsp 添加用戶的頁面
<%@ page language="java" import="java.util.*" pageEncoding="UTF⑻"%> <%@ taglib prefix="sf" uri="http://www.springframework.org/tags/form" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF⑻"> <title>添加用戶</title> </head> <body> <!-- modelAttribute="user",會自動將表單中的值添加到User中 --> <!-- 此時沒有寫action,直接提交給/add,但此時是POST方式提交,會 使用method=RequestMethod.POST注解的方法--> <sf:form method="post" modelAttribute="user"> <!-- path相當(dāng)于input中的name屬性 --> Username:<sf:input path="username"/><br> Password:<sf:password path="password"/><br> Nickname:<sf:input path="nickname"/><br> Email:<sf:input path="email"/><br> <input type="submit" value="添加用戶"/> </sf:form> </body> </html>
UserController.java
@Controller @RequestMapping("/user") public class UserController { private Map<String, User> users = new HashMap<String, User>(); //默許構(gòu)造函數(shù) public UserController(){ users.put("zs", new User("zs", "123", "張3", "123@163.com")); users.put("ls", new User("ls", "123", "李4", "234@163.com")); users.put("we", new User("we", "123", "王5", "345@163.com")); users.put("sj", new User("sj", "123", "世杰", "456@163.com")); users.put("yp", new User("yp", "123", "1平", "567@163.com")); users.put("ww", new User("ww", "123", "微微", "678@163.com")); } @RequestMapping(value="/users", method=RequestMethod.GET) public String list(Model model){ model.addAttribute("users", users); return "user/list"; } //連接到add頁面時是GET要求,會訪問這段代碼 @RequestMapping(value="/add", method=RequestMethod.GET) public String add(Model model){ //必須添加1個User,不然在add.jsp中 //modelAttribute="user"的user沒法獲得 model.addAttribute(new User()); //服務(wù)器端跳轉(zhuǎn):自動加上"forward:" return "user/add"; } //除上面1種方式,我更喜歡下面這類 //@RequestMapping(value="/add", method=RequestMethod.GET) //public String add(@ModelAttribute("user") User user){ // return "user/add"; //} //在具體添加用戶時,是POST要求,會訪問這段代碼 @RequestMapping(value="/add", method=RequestMethod.POST) public String add(User user){ users.put(user.getUsername(), user); //客戶端跳轉(zhuǎn):使用"redirect:" return "redirect:/user/users"; } }

由于在頁面中使用了中文,需要在web.xml中添加字符編碼過濾器

<!-- 編碼過濾器 --> <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF⑻</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>

2016⑼⑵0 23:28:32 未完待續(xù)

接續(xù):

5、REST風(fēng)格實例

1.顯示某個用戶的信息

list.jsp

這里寫圖片描述
這里寫圖片描述

UserController.java
//顯示某個用戶的方法 //@PathVariable String username表示使用路徑中的{username}來最為參數(shù) @RequestMapping(value="/{username}", method=RequestMethod.GET) public String show(@PathVariable String username, Model model){ //通過username取得User對象 //在show.jsp頁面中通過${user}來獲得對象 model.addAttribute(users.get(username)); return "user/show"; }

這里寫圖片描述

2.更新某個用戶的信息

list.jsp 用戶列表頁面

這里寫圖片描述

UserController.java

這里寫圖片描述

update.jsp

這里寫圖片描述
這里寫圖片描述

刪除用戶

list.jsp 用戶列表頁面

這里寫圖片描述
這里寫圖片描述

UserController.java

這里寫圖片描述

6、其他功能

1.登錄

login.jsp

這里寫圖片描述
這里寫圖片描述

UserController.java(將圖片拖出,放大看)

這里寫圖片描述
這里寫圖片描述

UserException.java

這里寫圖片描述
上面這類異常處理只能處理局部異常,不太好用,所以需要進(jìn)行前期的異常處理,可以在springmvc.xml配置文件中來配置。
這里寫圖片描述

error.jsp

這里寫圖片描述

添加靜態(tài)文件,如main.css

這里寫圖片描述

由于在web.xml中配置的DispatchServlet攔截的路徑為”/”
所以靜態(tài)文件也將被servlet攔截,從而沒法獲得
所以需要在在springmvc.xml中為靜態(tài)文件進(jìn)行配置,配置以下
這里寫圖片描述

在頁面中引入靜態(tài)文件:
這里寫圖片描述
顯示結(jié)果以下:
這里寫圖片描述

7、文件上傳

1.導(dǎo)入文件上傳所需的Jar包

*這里盡可能用最新的jar包,將我用的commons-io⑴.4換成commons-io⑵.x.jar版本
不然后面會有問題*

這里寫圖片描述

2.add.jsp中表單的寫法

這里寫圖片描述
這里寫圖片描述

3.控制層中的寫法

這里寫圖片描述

4.(很重要)需要在springmvc中進(jìn)行配置,不然沒法上傳文件

這里寫圖片描述

5.上面的控制層并沒有真實的實現(xiàn)文件上傳

只是在控制臺打印了上傳文件的1些信息
這里寫圖片描述
現(xiàn)在我們來實現(xiàn)真實的上傳文件
這里寫圖片描述
這個需要貼上代碼:

//在具體添加用戶時,是POST要求,會訪問這段代碼 @RequestMapping(value="/add", method=RequestMethod.POST) public String add(@Valid User user,BindingResult br, @RequestParam("attach") MultipartFile attach, HttpServletRequest req) throws IOException{//1定要緊跟Validate以后寫驗證結(jié)果類 if(br.hasErrors()){ //如果有毛病直接挑戰(zhàn)到add視圖中 return "user/add"; } //取得"resources/upload"的實際路徑 String realpath = req.getSession().getServletContext().getRealPath("/resources/upload"); System.out.println(realpath); //取得文件要保存的路徑和文件名 String pathname = realpath + "/" + attach.getOriginalFilename(); //創(chuàng)建文件 File f = new File(pathname); FileUtils.copyInputStreamToFile(attach.getInputStream(), f); System.out.println(attach.getName()+","+attach.getOriginalFilename()+","+attach.getContentType()); users.put(user.getUsername(), user); //客戶端跳轉(zhuǎn):使用"redirect:" return "redirect:/user/users"; }

上傳成功
這里寫圖片描述
這里寫圖片描述

8、多文件上傳

1.對add.jsp略加改動

這里寫圖片描述
這里寫圖片描述

2.對UserController.java略加改動

這里寫圖片描述
上傳成功
這里寫圖片描述
這里寫圖片描述
但是,這里有1個問題需要特別注意
這里寫圖片描述
這里寫圖片描述
怎樣解決?很簡單,看下面
這里寫圖片描述
好了,文件上傳就講到這里就應(yīng)當(dāng)差不多了吧,呵呵。

9、使用JSON

終究講到這里了,真是要哭了,555555~~~

springmvc怎樣返回JSON數(shù)據(jù)?

1.導(dǎo)入jackson的jar包

這里寫圖片描述

2.編寫Controller

這里寫圖片描述

3.結(jié)果比較

使用@RequestBody注解和jackson :
這里寫圖片描述
不使用它們:
這里寫圖片描述

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 欧美日本韩国在线 | 国产成人精品久久二区二区91 | 国产日韩在线播放 | 亚洲视频在线观看一区 | 国产一区二区三区在线看 | 成人激情久久 | 在线中文字幕亚洲 | 日韩精品在线观看视频 | 色一情一乱一伦一区二区三区 | 国产精品视频1区 | 在线观看av资源 | 在线观看av资源 | 日韩黄色小视频 | 亚洲永久 | 最新免费av| 国产爽爽爽 | 国产福利视频在线 | 久草成人网 | 欧美精品一区二区久久 | 成人免费视频网站 | 久久在线免费观看 | 国产精品日韩精品 | 久久一区二区国产 | 国产高清中文字幕 | 国产精品91一区二区三区 | 精品电影一区 | 蜜桃视频一区二区 | 黄色毛片免费 | 国产区视频 | 国产一级免费 | 日韩视频在线观看 | 国内精品久久久久久久影视简单 | 天堂电影在线观看 | 国产成人av一区二区 | 成人综合av| 一区二区三区在线观看视频 | 国产精品久久久久久久午夜片 | 最近中文字幕国语免费高清6 | 国产精品一区在线播放 | 午夜精品久久久久久久蜜桃 | 欧美性xxxxhd |