一 开发工具环境:Myeclipse6.6+Tomcat7+JDK1.6
所用jar文件:
二 示例代码如下:
WEB控制层
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.spring.rest.entitys.User;
@Controller //声明控制器
@RequestMapping("/user")//url
public class UserController {
@RequestMapping(value = "/login")
public String test(HttpServletRequest request,
HttpServletResponse response, User userinfo) {
if (userinfo.getUsername().equals("jack")
&& userinfo.getPassword().equals("111111")) {
request.setAttribute("user", userinfo);
return "users/list";
} else {
return "users/loginerr";
}
}
@RequestMapping(value = "/login2")
public String test2(HttpServletRequest request,
HttpServletResponse response, User userinfo) {
if (userinfo.getUsername().equals("david")
&& userinfo.getPassword().equals("david")) {
request.setAttribute("user", userinfo);
return "users/list";
} else {
return "users/loginerr";
}
}
}
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
@RequestMapping("/topic")
public class TopicController {
@RequestMapping(value = "/{id}",method=RequestMethod.GET)
public String helloWorld(
@PathVariable Long id,
HttpServletRequest request,
HttpServletResponse response) {
request.setAttribute("message", "You Input Topci Id is: <b>"+id+"</b>");
return "topic" ;
}
@RequestMapping(value="/add")
public String test(HttpServletRequest request,
HttpServletResponse response){
System.out.println("Hello www.JavaBloger.com ");
request.setAttribute("message", "Hello JavaBloger ! ,@RequestMapping(value='/add')");
return "topic";
}
@RequestMapping(value="/update")
public String update(HttpServletRequest request,
HttpServletResponse response){
System.out.println("Hello www.JavaBloger.com ");
request.setAttribute("message", "Hello JavaBloger ! ,@RequestMapping(value='/update')");
return "topic";
}
}
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class URITemplatesController {
@RequestMapping(value="/owners/{ownerId}", method=RequestMethod.POST)
//org.springframework.ui.Model与org.springframework.ui.ModelMap功能相似
public String findOwner(@PathVariable String ownerId,@RequestParam String username,@RequestParam String password, ModelMap model) {
System.out.println("ownerId: "+ownerId+",username:" + username+",password: " + password);
model.addAttribute("url", "http://liuzidong.iteye.com");
model.addAttribute("username",username);
model.addAttribute("password",password);
return "urlTemplate";
}
}
JSP页面
inde.jsp
<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
<FORM METHOD=POST ACTION="user/login">
<INPUT TYPE="text" NAME="username" value="username">
<br>
<br>
<INPUT TYPE="text" NAME="password" value="password">
<br>
<br>
<INPUT TYPE="submit">
<br>
<A HREF="topic/add" target="_self">add</A>
<br>
<A HREF="topic/7" target="_self">id:1234567</A>
<br>
<A HREF="topic/update" target="_self">update</A>
</FORM>
<br>
<FORM METHOD=POST ACTION="user/login2">
<INPUT TYPE="text" NAME="username" value="username">
<br>
<br>
<INPUT TYPE="text" NAME="password" value="password">
<br>
<br>
<INPUT TYPE="submit">
</FORM>
<br>
<FORM METHOD=POST ACTION="owners/liuzd">
<INPUT TYPE="text" NAME="username" value="天涯海角">
<br>
<br>
<INPUT TYPE="text" NAME="password" value="post">
<br>
<br>
<INPUT TYPE="submit" value="OK">
</FORM>
urlTemplate.jsp.jsp
<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="/WEB-INF/c.tld" prefix="c"%>
<html>
<body>
<p>This is my message:<br> ${url}</p>
<p>姓名:${username},密码: ${password}</p>
</body>
</html>
其它页面省略(就是用jstl显示值)
web.xml
<!--
该 servlet为tomcat,jetty等容器提供,将静态资源映射从/改为/static/目录,
如原来访问 http://localhost /foo.css ,现在http://localhost/static/foo.css
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/static/*</url-pattern>
</servlet-mapping>
-->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<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>
<!-- URL重写filter,用于将访问静态资源http://localhost/foo.css 转为http://localhost/static /foo.css
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
</filter-class>
<init-param>
<param-name>confReloadCheckInterval</param-name>
<param-value>60</param-value>
</init-param>
<init-param>
<param-name>logLevel</param-name>
<param-value>DEBUG</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
-->
<!-- 浏览器不支持put,delete等method,由该filter将/blog?_method=delete转换为标准的http delete方法
<filter>
<filter-name>HiddenHttpMethodFilter</filter-name>
<filter-class>
org.springframework.web.filter.HiddenHttpMethodFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>HiddenHttpMethodFilter</filter-name>
<servlet-name>springmvc</servlet-name>
</filter-mapping>
-->
springmvc-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<!-- ①:对web包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能 -->
<context:component-scan base-package="com.spring.rest.web.action" />
<!-- spring的默认实现,不配置也一样 -->
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
<!-- ②:启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
<!-- ③:对模型视图名称的解析,即在模型视图名称添加前后缀 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" />
</beans>