- 浏览: 188477 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (321)
- eclipse (4)
- idea (2)
- Html (8)
- Css (14)
- Javascript (8)
- Jquery (6)
- Ajax Json (4)
- Bootstrap (0)
- EasyUI (0)
- Layui (0)
- 数据结构 (0)
- Java (46)
- DesPattern (24)
- Algorithm (2)
- Jdbc (8)
- Jsp servlet (13)
- Struts2 (17)
- Hibernate (11)
- Spring (5)
- S2SH (1)
- SpringMVC (4)
- SpringBoot (11)
- WebService CXF (4)
- Poi (2)
- JFreeChart (0)
- Shiro (6)
- Lucene (5)
- ElasticSearch (0)
- JMS ActiveMQ (3)
- HttpClient (5)
- Activiti (0)
- SpringCloud (11)
- Dubbo (6)
- Docker (0)
- MySQL (27)
- Oracle (18)
- Redis (5)
- Mybatis (11)
- SSM (1)
- CentOS (10)
- Ant (2)
- Maven (4)
- Log4j (7)
- XML (5)
最新评论
1. @RequestMapping请求映射
2. @RequestParam请求参数
3. ModelAndView返回模型和视图
4. SpringMVC对象属性自动封装
5. SpringMVCPOST请求乱码解决
6. Controller内部转发和重定向
7. SpringMvc对ServletAPI的支持
8. SpringMvc对Json的支持
2. @RequestParam请求参数
3. ModelAndView返回模型和视图
4. SpringMVC对象属性自动封装
5. SpringMVCPOST请求乱码解决
6. Controller内部转发和重定向
新建项目SpringMvc02 StudentController.java package com.andrew.controller; import java.util.ArrayList; import java.util.List; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.ModelAndView; import com.andrew.model.Student; @Controller @RequestMapping("/student") public class StudentController { private static List<Student> studentList = new ArrayList<Student>(); static { studentList.add(new Student(1, "张三", 11)); studentList.add(new Student(2, "李四", 12)); studentList.add(new Student(3, "王五", 13)); } @RequestMapping("/list") public ModelAndView list() { ModelAndView mav = new ModelAndView(); mav.addObject("studentList", studentList); mav.setViewName("student/list"); return mav; } @RequestMapping("/preSave") public ModelAndView preSave(@RequestParam(value = "id", required = false) String id) { ModelAndView mav = new ModelAndView(); if (id != null) { mav.addObject("student", studentList.get(Integer.parseInt(id) - 1)); mav.setViewName("student/update"); } else { mav.setViewName("student/add"); } return mav; } @RequestMapping("/save") public String save(Student student) { if (student.getId() != 0) { Student s = studentList.get(student.getId() - 1); s.setName(student.getName()); s.setAge(student.getAge()); } else { studentList.add(student); } return "forward:/student/list.do"; } @RequestMapping("/delete") public String delete(@RequestParam("id") int id) { studentList.remove(id - 1); return "redirect:/student/list.do"; } } Student.java package com.andrew.model; public class Student { private int id; private String name; private int age; public Student() { super(); } public Student(int id, String name, int age) { super(); this.id = id; this.name = name; this.age = age; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } spring-mvc.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.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 使用注解的包,包括子集 --> <context:component-scan base-package="com.andrew"/> <!-- 视图解析器 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp"></property> </bean> </beans> web.xml <?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_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>SpringMvc02</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-mvc.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <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-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>characterEncodingFilter</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping> </web-app> index.jsp <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <% response.sendRedirect("student/list.do"); %> jsp\student\add.jsp <%@ 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> <form action="${pageContext.request.contextPath}/student/save.do" method="post"> <table> <tr><th colspan="2">学生添加</th></tr> <tr><td>姓名</td><td><input type="text" name="name"/></td></tr> <tr><td>年龄</td><td><input type="text" name="age"/></td></tr> <tr><td colspan="2"><input type="submit" value="提交"/></td></tr> </table> </form> </body> </html> jsp\student\list.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!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> <a href="${pageContext.request.contextPath}/student/preSave.do">添加学生</a> <table> <tr> <th>编号</th> <th>姓名</th> <th>年龄</th> <th>操作</th> </tr> <c:forEach var="student" items="${studentList }"> <tr> <td>${student.id }</td> <td>${student.name }</td> <td>${student.age }</td> <td> <a href="${pageContext.request.contextPath}/student/preSave.do?id=${student.id}">修改</a> <a href="${pageContext.request.contextPath}/student/delete.do?id=${student.id}">删除</a> </td> </tr> </c:forEach> </table> </body> </html> jsp\student\update.jsp <%@ 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> <form action="${pageContext.request.contextPath}/student/save.do" method="post"> <table> <tr><th colspan="2">学生修改</th></tr> <tr> <td>姓名</td> <td><input type="text" name="name" value="${student.name }"/></td> </tr> <tr> <td>年龄</td> <td><input type="text" name="age" value="${student.age }"/></td> </tr> <tr> <td colspan="2"> <input type="hidden" name="id" value="${student.id }"/> <input type="submit" value="提交"/> </td> </tr> </table> </form> </body> </html> http://localhost:8080/SpringMvc02/ 运行结果: http://localhost:8080/SpringMvc02/student/list.do 添加学生 编号 姓名 年龄 操作 1 张三 11 修改 删除 2 李四 12 修改 删除 3 王五 13 修改 删除 运行结果: http://localhost:8080/SpringMvc02/student/preSave.do abc 123 submit http://localhost:8080/SpringMvc02/student/save.do 添加学生 编号 姓名 年龄 操作 1 张三 11 修改 删除 2 李四 12 修改 删除 3 王五 13 修改 删除 0 abc 123 修改 删除 运行结果: http://localhost:8080/SpringMvc02/student/preSave.do?id=1 张三1 111 http://localhost:8080/SpringMvc02/student/save.do 添加学生 编号 姓名 年龄 操作 1 张三1 111 修改 删除 2 李四 12 修改 删除 3 王五 13 修改 删除 0 abc 123 修改 删除 运行结果: http://localhost:8080/SpringMvc02/student/list.do 2 李四 12 修改 删除 3 王五 13 修改 删除 0 abc 123 修改 删除
7. SpringMvc对ServletAPI的支持
8. SpringMvc对Json的支持
导入json jar包 jackson-annotations-2.2.1.jar jackson-core-2.2.1.jar jackson-core-asl-1.8.8.jar jackson-databind-2.2.1.jar jackson-mapper-asl-1.8.8.jar jackson-module-jaxb-annotations-2.2.1.jar User.java package com.andrew.model; public class User { private int id; private String userName; private String password; public User() { super(); } public User(String userName, String password) { super(); this.userName = userName; this.password = password; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } UserController.java package com.andrew.controller; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.andrew.model.User; @Controller @RequestMapping("/user") public class UserController { @RequestMapping("/login") public String login(HttpServletRequest request, HttpServletResponse response) { System.out.println("----登录验证---"); String userName = request.getParameter("userName"); String password = request.getParameter("password"); Cookie cookie = new Cookie("user", userName + "-" + password); cookie.setMaxAge(1 * 60 * 60 * 24 * 7); User currentUser = new User(userName, password); response.addCookie(cookie); HttpSession session = request.getSession(); session.setAttribute("currentUser", currentUser); return "redirect:/main.jsp"; } @RequestMapping("/login2") public String login2(HttpServletRequest request) { return "redirect:/main.jsp"; } @RequestMapping("/login3") public String login3(HttpSession session) { return "redirect:/main.jsp"; } @RequestMapping("/ajax") public @ResponseBody User ajax() { User user = new User("zhangsan", "123"); System.out.println(user); return user; } } login.jsp <%@ 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> <a href="user/ajax.do">测试ajax</a> <form action="user/login.do" method="post"> <table> <tr><td>用户名:</td><td><input type="text" name="userName"/></td></tr> <tr><td>密码:</td><td><input type="password" name="password"/></td></tr> <tr><td><input type="submit" value="登录"/></td></tr> </table> </form> </body> </html> main.jsp <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!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=ISO-8859-1"> <title>Insert title here</title> </head> <body> Main.jsp ${currentUser.userName } </body> </html> http://localhost:8080/SpringMvc02/index.jsp abc 123 submit 运行结果: http://localhost:8080/SpringMvc02/main.jsp Main.jsp abc 后台显示: ----登录验证--- 运行结果: http://localhost:8080/SpringMvc02/user/ajax.do com.andrew.model.User@5fe043cf
ResponseUtil.java package com.andrew.util; import java.io.PrintWriter; import javax.servlet.http.HttpServletResponse; public class ResponseUtil { public static void write(HttpServletResponse response, Object o) throws Exception { response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); out.println(o.toString()); out.flush(); out.close(); } }
相关推荐
spring mvc视频 之控制器映射
Spring MVC与Struts2等同属表现层框架,它们的主要任务是协调控制器、模型和视图,处理用户请求并展示结果。在Spring框架的体系中,Spring MVC提供了高度的可扩展性和灵活性。 2. **工作流程** - 用户发起请求...
2. **控制器**:SpringMVC的DispatcherServlet负责调度请求,将请求转发给相应的处理器(Controller)。Controller处理业务逻辑,如检索图书信息、处理用户登录、购物车操作等。 3. **模型**:模型对象代表了系统中...
五、创建SpringMVC控制器 控制器通常是一个实现了Controller接口或者继承了AbstractController的类。在SpringMVC中,我们更常用的是使用注解@Controller,通过@RequestMapping注解定义请求映射。 六、视图解析 视图...
【SpringMVC控制器的单例问题】 SpringMVC的控制器默认是单例模式,因此在多线程环境下可能存在线程安全问题。为避免这个问题,控制器不应包含可变状态,即避免在控制器中定义实例变量。如果必须存储数据,可以使用...
- **单例模式**:SpringMVC 中的控制器默认是单例模式,这意味着同一控制器实例会被多个线程共享。 - **潜在问题**:当多个线程同时访问同一个控制器实例时,可能会出现线程安全问题。 - **解决方案**:为了避免线程...
在这个例子中,jQuery可能用于发送Ajax请求到后端SpringMVC控制器,更新页面内容而无需刷新整个页面。例如,使用$.ajax()或$.post()方法发送异步请求,然后将服务器返回的数据动态插入到DOM中。 **MyBatis** ...
1. `src/main/java`:Java源代码,包括Spring配置、Springmvc控制器、MyBatis的Mapper接口和服务层实现。 2. `src/main/resources`:资源文件,如Spring的配置文件、MyBatis的Mapper XML文件、数据库连接配置等。 3....
SpringMVC控制器中可以定义一个方法来接收这些数据。例如: ```java @RequestMapping(value = "/saveContent", method = RequestMethod.POST) public @ResponseBody String saveContent(@RequestParam("content") ...
拦截器是 SpringMVC 中的一种回调机制,它们在请求被控制器处理之前或之后执行。通过实现 HandlerInterceptor 接口或继承 AbstractHandlerInterceptorAdapter 类,你可以自定义拦截逻辑。主要方法包括 `preHandle`...
通过jQuery调用AJAX,向SpringMVC控制器发送请求,获取分页数据。控制器将MyBatis查询的结果转化为JSON格式,返回给前端,datagrid会自动更新显示。 在项目"NewTestLogin"中,可能包含登录功能的实现,这是Web应用...
首先,来看SpringMVC控制器的实现。SpringMVC支持多种控制器的实现方式。一种方式是通过实现接口来实现控制器。在web.xml中需要配置DispatcherServlet,它用于拦截请求并分发给相应的控制器。具体配置如下: ```xml...
### SpringMVC 面试专题...- **返回类型**:SpringMVC 中控制器方法的返回值类型非常灵活,可以是字符串(视图名称)、`ModelAndView` 对象、`RedirectView` 对象等。这些返回类型可以根据不同的场景选择最合适的类型。
- **查询(Query)**:用户可以通过输入条件或者点击分页等操作发起查询请求,SpringMVC控制器结合MyBatis查询数据,并通过EasyUI展示结果。 5. **项目结构**: 项目的源代码通常包括以下几个部分:`src/main/...
- **创建SpringMVC控制器**:在SpringMVC项目中定义控制器,处理Flex客户端发送的请求,这些请求通常通过AMF进行序列化和反序列化。 - **服务接口与实现**:定义Flex客户端调用的业务服务接口,然后在SpringMVC中...
2. **配置GraphQL服务**:创建GraphQL的执行环境,包括schema定义、resolver实现,以及如何将GraphQL请求与SpringMVC控制器关联起来。 3. **编写schema**:定义GraphQL的类型和查询、突变操作,这是GraphQL的核心...
表现层主要由SpringMVC控制器组成,负责接收和响应用户请求;业务逻辑层处理具体的业务规则,如订单创建、修改、查询等操作;数据访问层则通过MyBatis与MySQL交互,实现数据的增删改查。这样的分层设计,使得系统...
4. **控制器处理**:在 SpringMVC 控制器中,返回一个视图名,该名字对应于 Velocity 模板文件。SpringMVC 会自动查找并渲染相应的模板。 ```java @Controller public class MyController { @RequestMapping("/...