SpringMVC 简单的开始
Posted MyBlogs-joyiyii
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringMVC 简单的开始相关的知识,希望对你有一定的参考价值。
SpringMVC简单的开始
利用Spring模板配置写一个web项目。
1.核心配置文件(模板代码)
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 关联一个springmvc的配置文件--> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc-servlet.xml</param-value> </init-param> <!-- 启动级别--> <load-on-startup>1</load-on-startup> </servlet> <!-- / 匹配所有请求,不包括.jsp--> <!-- /* 匹配所有请求,包括.jsp --> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
2.spring配置文件
<?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.xsd"> <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/> <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/> <!-- 视图解析器--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="InternalResourceViewResolver"> <!-- 前缀--> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean> <bean id="/h1" class="com.lian.HelloServlet"/> </beans>
3.写Servlet类HelloController
public class HelloController implements Controller @Override public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception // ModelAndView模型和视图 ModelAndView mv=new ModelAndView(); //封装对象,放在 ModelAndView中 mv.addObject("msg","HelloSpringMVC!!"); //封装要跳转的视图,放在 ModelAndView中 mv.setViewName("hello");///WEB-INF/jsp/hello.jsp return mv;
写这个例子的时候要跳转到 /h1 页面时候报404错误
查看了project Structure发现是项目的lib包没进来
要保证项目需要的包都导入了
开始学SpringMVC之Request方式
本文主要以一些简单的小例子,简述在SpringMVC开发过程中,经常用到的Request方面的内容,仅供学习分享使用,如有不足之处,还请指正。
概述
在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。如果要支持其他方式进行访问,则必须在表单中增加Hidden元素,然后再SpringMVC中过滤器进行拦截,再重新封装请求方式。
Request常见访问方式
- GET - 从指定的资源请求数据。
- POST - 向指定的资源提交要被处理的数据
GET方式
访问的特点:
- GET 请求可被缓存
- GET 请求保留在浏览器历史记录中
- GET 请求可被收藏为书签
- GET 请求不应在处理敏感数据时使用
- GET 请求有长度限制
- GET 请求只应当用于取回数据
SpringMVC中GET访问示例
如下所示:
1 /** 2 * GET请求方式 3 * @return 4 */ 5 @RequestMapping(value="testGet",method=RequestMethod.GET) 6 public ModelAndView testGet(String uname) 7 String msg="GET方式访问,uname="+uname; 8 System.out.println(msg); 9 ModelAndView mav=new ModelAndView("HelloWorld"); 10 mav.addObject("msg", msg); 11 return mav; 12 13
前端可以通过请求的URL访问,也可以表单(method=get)的方式访问,如下所示:
1 <form name="form1" action="testGet" method="get" > 2 <span>GET方式提交</span><br /> 3 <input name="uname" type="text" /> 4 <input name="submit" type="submit" value="提交" /> 5 </form>
POST方式
访问特点
- POST 请求不会被缓存
- POST 请求不会保留在浏览器历史记录中
- POST 不能被收藏为书签
- POST 请求对数据长度没有要求
SpringMVC中POST方式示例
如下:
1 /** 2 * POST请求方式 3 * @return 4 */ 5 @RequestMapping(value="testPost",method=RequestMethod.POST) 6 public ModelAndView testPost(String uname) 7 String msg="POST方式访问,uname="+uname; 8 System.out.println(msg); 9 ModelAndView mav=new ModelAndView("HelloWorld"); 10 mav.addObject("msg", msg); 11 return mav; 12 13
前端访问代码
POST方式通常采用form的方式,如下所示:
1 <form name="form2" action="testPost" method="post" > 2 <span>POST方式提交</span><br /> 3 <input name="uname" type="text" /> 4 <input name="submit" type="submit" value="提交" /> 5 </form>
PUT方式访问及步骤
PUT方式是把消息本体中的消息发送到一个URL,跟POST类似,但不常用。
SpringMVC中PUT方式步骤如下:
1. 设置路径的访问方式为PUT
1 /** 2 * PUT请求方式 3 * 原始请求,默认只支持GET,POST请求方式,如有要支持PUT和DELETE, 4 * 需要在Form表单(表单的请求方式必须为POST)中,增加一个hidden标签,name="_method" value="访问方式" 5 * @return 6 */ 7 @RequestMapping(value="testPut",method=RequestMethod.PUT) 8 public ModelAndView testPut(String uname) 9 String msg="PUT方式访问,uname="+uname; 10 System.out.println(msg); 11 ModelAndView mav=new ModelAndView("HelloWorld"); 12 mav.addObject("msg", msg); 13 return mav; 14 15
2. 在web.xml中设置过滤器
1 <!-- 设置过滤器 --> 2 <filter> 3 <filter-name>filter</filter-name> 4 <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> 5 </filter> 6 <filter-mapping> 7 <filter-name>filter</filter-name> 8 <url-pattern>/*</url-pattern> 9 </filter-mapping>
3. form表单中增加hidden访问控件
如下所示:method必须为post,hidden的name=_method,value=PUT,属于固定写法。
1 <form name="form3" action="testPut" method="post" > 2 <span>PUT方式提交</span><br /> 3 <input type="hidden" name="_method" value="PUT"> 4 <input name="uname" type="text" /> 5 <input name="submit" type="submit" value="提交" /> 6 </form>
DELETE方式访问及步骤
DELETE主要用于删除指定资源。
SpringMVC支持Delete方式访问的步骤
1. 设置路径访问方式为DELETE
如下所示:
1 /** 2 * DELETE请求方式 3 * @return 4 */ 5 @RequestMapping(value="testDelete",method=RequestMethod.DELETE) 6 public ModelAndView testDelete(String uname) 7 String msg="DELETE方式访问,uname="+uname; 8 System.out.println(msg); 9 ModelAndView mav=new ModelAndView("HelloWorld"); 10 mav.addObject("msg", msg); 11 return mav; 12 13
2. 在配置好过滤器的前提下,前端访问
方式如下:
1 <form name="form4" action="testDelete" method="post" > 2 <span>DELETE方式提交</span><br /> 3 <input type="hidden" name="_method" value="DELETE"> 4 <input name="uname" type="text" /> 5 <input name="submit" type="submit" value="提交" /> 6 </form>
请求参数
请求参数可以采用的restful的方式进行提取,也可以采用参数的方式进行获取。如果前端请求参数和函数参数名一致,则可以自动匹配。
如果不一致,则可以使用@RequestParam("uname")来声明
如下所示:
1 /** 2 * 测试请求参数,如果参数名称和前端页面参数不一致,则可以使用@RequestParam("uname")来声明 3 * @param uname 4 * @return 5 */ 6 @RequestMapping(value="testParam",method=RequestMethod.POST) 7 public ModelAndView testParam(@RequestParam("uname") String name) 8 String msg="POST方式访问,请求参数,name="+name; 9 System.out.println(msg); 10 ModelAndView mav=new ModelAndView("HelloWorld"); 11 mav.addObject("msg", msg); 12 return mav; 13 14
前端访问方式
1 <form name="form6" action="testParam" method="post" > 2 <span>测试Param</span><br /> 3 <input name="uname" type="text" /><br /> 4 <input name="uage" type="text" /><br /> 5 <input name="submit" type="submit" value="提交" /> 6 </form>
设置是否必须访问和默认值
1 /** 2 * 请求参数,设置参数是否必填 3 * @param name 4 * @param age 5 * @return 6 */ 7 @RequestMapping(value="testParam2",method=RequestMethod.POST) 8 public ModelAndView testParam2(@RequestParam("uname") String name,@RequestParam(value="uage",required=false,defaultValue="11")int age) 9 String msg="POST方式访问,请求参数,name="+name; 10 String msg1="POST方式访问,请求参数,age="+age; 11 System.out.println(msg); 12 System.out.println(msg1); 13 ModelAndView mav=new ModelAndView("HelloWorld"); 14 mav.addObject("msg", msg+"\r\n"+msg1); 15 return mav; 16 17
获取请求Header信息
@RequestHeader注解可以轻松获取请求的Header信息,如下所示:获取Accept-Language,并赋给参数header
1 /** 2 * 获取请求头部信息,如果多个value,用数组表示 3 * @param header 4 * @return 5 */ 6 @RequestMapping(value="testHeader",method=RequestMethod.POST) 7 public ModelAndView testHeader(@RequestHeader("Accept-Language") String header) 8 String msg="请求头部信息,header="+header; 9 System.out.println(msg); 10 ModelAndView mav=new ModelAndView("HelloWorld"); 11 mav.addObject("msg", msg); 12 return mav; 13 14
获取请求cookie信息
如下所示:获取cookie中的JESSIONID并赋给参数
1 /** 2 * 获取cookie中的值,服务端在客户端第一次请求时,会分配一个session给客户端,其中包含sessionid 3 * @param sessionId 4 * @return 5 */ 6 @RequestMapping(value="testCookie",method=RequestMethod.POST) 7 public ModelAndView testCookie(@CookieValue("JSESSIONID") String sessionId) 8 String msg="请求cookie信息,JSESSIONID="+sessionId; 9 System.out.println(msg); 10 ModelAndView mav=new ModelAndView("HelloWorld"); 11 mav.addObject("msg", msg); 12 return mav; 13 14
备注
快乐很简单,就是春天的鲜花,夏天的绿荫,秋天的野果,冬天的漫天飞雪。
以上是关于SpringMVC 简单的开始的主要内容,如果未能解决你的问题,请参考以下文章