您好,登錄后才能下訂單哦!
1、導(dǎo)包,四大核心包,一個(gè)切面包(AOP),logging,web,springmvc
2、配置文件,核心代碼如下:
web.xml
<servlet> <servlet-name>springDispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <!-- Map all requests to the DispatcherServlet for handling --> <servlet-mapping> <servlet-name>springDispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!--字符編碼的filter一定要放在最前面 --> <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <!-- 配置encoding,告訴我們指定的編碼格式 --> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> <!-- 解決響應(yīng)亂碼 --> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/</url-pattern> </filter-mapping> <!-- 支持rest的filter --> <filter> <filter-name>HiddenHttpMethodFilter</filter-name> <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> </filter> <filter-mapping> <filter-name>HiddenHttpMethodFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
springmvc.xml
<context:component-scan base-package="com.atguigu"></context:component-scan> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 視圖分析器 --> <property name="prefix" value="/WEB-INF/pages/"></property> <property name="suffix" value=".jsp"></property> </bean> </beans>
index.jsp: 首頁(yè)進(jìn)入
<body> <a href="hello" rel="external nofollow" >hello</a><br/> <a href="handle01?user=123456" rel="external nofollow" >獲取請(qǐng)求參數(shù)</a><br/> <a href="handle02" rel="external nofollow" >獲取請(qǐng)求頭</a><br/> <form action="saveBook" method="post"> 圖書(shū)id<input type="text" name="id"/><br/> 圖書(shū)name<input type="text" name="name"/><br/> 圖書(shū)author<input type="text" name="author"/><br/> 圖書(shū)price<input type="text" name="price"/><br/> 圖書(shū)sales<input type="text" name="sales"/><br/> 圖書(shū)stock<input type="text" name="stock"/><br/> <hr/> <!-- 級(jí)聯(lián)屬性來(lái)封裝值 --> 作者name;<input type="text" name="person.name"/><br/> 作者address;<input type="text" name="person.address"/><br/> <input type="submit" value="保存圖書(shū)"/> </form> <hr/> <h3>給頁(yè)面攜帶數(shù)據(jù)</h3> <a href="output01" rel="external nofollow" >output01</a> </body>
3./WEB-INF/pages 跳轉(zhuǎn)后的內(nèi)容
1).success.jsp
<body> <h2>成功!</h2> ${msg}===${reMsg} </body>
2).testScope.jsp
<body> <h2>測(cè)試數(shù)據(jù)帶在了哪個(gè)scope</h2> request:${requestScope.msg }<br /> session:${sessionScope.msg }<br /> application:${applicationScope.msg} </body>
4.src/bean包 Author.java
public class Author { private String name; private String address; Book.java:
public class Book { private int id; private String name; private double price; private int sales; private int stock; private Author person; private String imgPath = "static/img/default.jpg"; private String author;
src/controller 包, HelloController.java: 如果不加,則不能訪(fǎng)問(wèn)
import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class HelloController { @RequestMapping("/hello") //連接地址必須加上"/hello" public String hello(){ return "success"; } }
TestParamController.java
@Controller public class TestParamController { /** * 1、直接給方法的參數(shù)位置寫(xiě)上一個(gè)和請(qǐng)求帶來(lái)的參數(shù)的名字相同的變量 * 2、這個(gè)變量就封裝的是帶來(lái)的參數(shù)的值 * user = request.getParameter("user") * 3、如果沒(méi)有就是null * * @RequestParam("user"):指定獲取哪個(gè)參數(shù)的值 * 1、默認(rèn)發(fā)送請(qǐng)求必須帶上這個(gè)參數(shù); * 否則:HTTP Status 400 - Required String parameter 'user' is not present * 2、required=false可以設(shè)置不是必須的;沒(méi)帶null * 3、defaultValue="未命名"指定沒(méi)帶時(shí)的默認(rèn)值; * user = request.getParameter("user"); */ @RequestMapping("/handle01") public String handle01( @RequestParam(value = "user", required = false, defaultValue = "未命名") String user) { System.out.println("獲取的User:" + user); return "success"; } /** * 獲取請(qǐng)求頭; * request.getHeader("User-Agent") * 注解做了下面這些事情 * @RequestHeader("User-Agent")String userAgent; * userAgent = request.getHeader("User-Agent");*/ @RequestMapping("/handle02") public String handle02( @RequestHeader(value = "User-Agent", required = false, defaultValue = "沒(méi)有的") String userAgent) { System.out.println("User-Agent:" + userAgent); return "success"; } /** * 獲取某個(gè)cookie的值; * JSESSIONID=B05C018F82AA1B0BD3845831FADFE49A * @CookieValue("JSESSIONID")String jid * 注解做了下面這些事情 * Cookie[] cookies = request.getCookies(); * for(Cookie c:cookies){ * if(c.getName().equals("JSESSIONID")){ * jid = c.getValue(); * } * }*/ @RequestMapping("/handle03") public String handle03( @CookieValue(value = "JSESSIONID", required = false, defaultValue = "hhhhh") String jid) { System.out.println("jid:" + jid); return "success"; } /*傳入POJO;直接幫我們封裝頁(yè)面的值; 方便簡(jiǎn)單,少寫(xiě)很多代碼,實(shí)現(xiàn)代碼分離,解耦和 * 1、book = new Book(); * 2、把book對(duì)象中的每一個(gè)屬性的值查出來(lái),request.getParameter(屬性); * 3、把這個(gè)值設(shè)置進(jìn)去 * 注意:因?yàn)镾pringMVC會(huì)進(jìn)行類(lèi)型轉(zhuǎn)換,所以提交的數(shù)據(jù)一定要是合法的,否則400錯(cuò)誤*/ @RequestMapping("/saveBook") public String handle04(Book book) { System.out.println("book的值:" + book); return "success"; } @RequestMapping("/handle05") // pringMVC還允許我們?cè)谡?qǐng)求參數(shù)上使用原生的ServletAPI HttpServletRequest HttpServletResponse // HttpSession public String handle05(HttpSession session, HttpServletRequest request, HttpServletResponse response) { session.setAttribute("msg", "哈哈哈"); request.setAttribute("reqMsg", "嘿嘿嘿"); return "success"; } }
src/dataout/ DataOutPutController.java 給頁(yè)面攜帶數(shù)據(jù)
@Controller //給頁(yè)面攜帶數(shù)據(jù) public class DataOutPutController { /** * 1、返回值改為ModelAndView(包含模型數(shù)據(jù)(Model)和要去的頁(yè)面地址(View)); * 數(shù)據(jù)放在請(qǐng)求域中; * 2、在請(qǐng)求參數(shù)上傳入Model、Map、ModelMap都行;給他們里面保存的數(shù)據(jù)會(huì)放在請(qǐng)求域中 * Model、Map、ModelMap最終其實(shí)都是再有用BindingAwareModelMap; * 相當(dāng)于給BindingAwareModelMap中保存數(shù)據(jù)就是給請(qǐng)求域中保存 * Model Map * || || * || \/ * || ModelMap * \/ \/ * ExtendedModelMap【隱含模型】 extends ModelMap implements Model * \/ * BindingAwareModelMap * @return */ @RequestMapping("/output04") public String output04(ModelMap model){ //視圖解析器會(huì)對(duì)視圖名進(jìn)行拼串 model.addAttribute("msg","output04"); System.out.println(model.getClass()); return "testScope"; } @RequestMapping("/output03") public String output03(Model model){ model.addAttribute("msg", "output03"); System.out.println(model.getClass()); return "testScope"; } @RequestMapping("/output02") public String output02(Map<String,Object>map){ //視圖解析器會(huì)對(duì)視圖名進(jìn)行拼串 map.put("msg", "output02"); System.out.println(map.getClass()); return "testScope"; } @RequestMapping("/output01") public ModelAndView output01(){ //視圖解析器會(huì)對(duì)視圖名進(jìn)行拼串 ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("testScope"); modelAndView.addObject("msg", "output01"); return modelAndView; } }
以上這篇springmvc之獲取參數(shù)的方法(必看)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。