springMVC入门
2016-05-25 13:19
543 查看
一、需要的jar包
![](https://img-blog.csdn.net/20160525115817763?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
二、编写web.xml容器
三、applicationContext.xml容器配置,配置为自动扫描
四、覆盖中央处理器对编码格式进行规范
五、编写简单UserBean
六、编写controller
(1)
(2)
(3)
二、编写web.xml容器
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <!-- 注册web容器启动时负责加载spring mvc的中央控制器 DispatcherServlet 功能1 : DispatcherServlet初始化之后,根据其提供的名为contextConfigLocation初始化参数 加载spring-mvc的配置文件【ioc容器】 功能2 : 为spring-mvc设置其允许处理的请求格式 --> <servlet> <servlet-name>mvc</servlet-name> <servlet-class>com.etoak.util.MyDispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <!-- /WEB-INF/[servlet-name]-servlet.xml --> <param-value>/WEB-INF/applicationContext.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>mvc</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <display-name></display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
三、applicationContext.xml容器配置,配置为自动扫描
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" 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-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd"> <!-- 请求解析器 spring-mvc为解析请求提供了两种请求解析器 : 字符请求解析器 HandlerMapping接口 实现类中提供了两个默认的请求解析器 : BeanNameUrlHandlerMapping - 非注解环境 DefaultAnnotationHandlerMapping - 注解环境 字节请求解析器 MultipartResolver接口 解析完请求,获取表示请求的字符串 "/hello.do" 或者 "/hello" --> <context:component-scan base-package="com"/> <!-- 请求解析完毕之后,会在ioc容器中查找一个请求处理器处理 "/hello" 1 请求处理器 implements Controller 2 将处理器配置在ioc容器中 bean @Controller 被该注解标注了之后,会自动实现Controller接口,成为spring-mvc请求处理器 --> </beans>
四、覆盖中央处理器对编码格式进行规范
package com.etoak.util; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.DispatcherServlet; public class MyDispatcherServlet extends DispatcherServlet { @Override protected void doService(HttpServletRequest request, HttpServletResponse response) throws Exception { // TODO Auto-generated method stub request.setCharacterEncoding("utf-8"); super.doService(request, response); } }
五、编写简单UserBean
package com.etoak.bean; public class User { private String loginname; private String password; public String getLoginname() { return loginname; } public void setLoginname(String loginname) { this.loginname = loginname; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
六、编写controller
package com.etoak.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.SessionAttributes; import org.springframework.web.servlet.ModelAndView; import com.etoak.bean.User; /** * 业务逻辑对象 [请求处理器] * servlet - XxServlet com.etoak.servlet * struts - XxAction com.etoak.action * spring-mvc - XxController com.etoak.controller * */ @Controller @SessionAttributes({"address"}) public class HelloController { /** 请求 "/hello" 和处理方法 hello() 之间的映射关系 * @RequestMapping(path) * 该注解用于标注请求处理器中的一个方法 * 使用被标注的方法处理path指向的请求 */ @RequestMapping("/hello") public String hello(){ System.out.println("处理客户端提交的hello.do请求"); /** * 为客户端返回 'success.jsp'视图 * 重定向 redirect * 转发 forward */ return "redirect:success.jsp"; // return "forward:/success.jsp"; } /** * 使用一个第三方的javaBean封装请求中的表单项 * 表单项封装完毕之后,会将封装表单项的javaBean添加到request范围中 * *** spring-mvc提供了特殊的封装方式 : * 当提交请求中的表单项有且只有一个;并且该表单项的类型为基本数据类型或者String类型时 * 直接在处理请求方法的第一个参数中对表单项进行封装! */ @RequestMapping("/login") public String login(User user , ModelMap map){ // 使用User类型的user封装当前请求中的表单项 String loginname = user.getLoginname(); /*try { loginname = new String(loginname.getBytes("iso-8859-1") , "utf-8"); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); }*/ System.out.println("loginname--"+loginname); System.out.println("password--"+user.getPassword()); // List request String address = "趵突泉北路"; map.put("address", address); /** * 直接调用ModelMap.put(key,value)添加一条数据 * 默认 将该数据存储在request范围中 */ return "redirect:success.jsp"; } @RequestMapping("/delUserById") // id 1 public String delUserById(Integer id){ // 定义和表单项匹配的参数 System.out.println("id---"+id); return "forward:success.jsp"; } /* @RequestMapping("/hello") public ModelAndView hello2(){ //return } */ }七、编写index.jsp,login.jsp,success.jsp三个页面,分别为
(1)
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>spring-mvc请求处理基本流程</title> </head> <body> <a href="hello.do">helloworld</a> </body> </html>
(2)
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>spring-mvc表单项封装</title> </head> <body> <form action="login.do" method="post"> 登录名:<input type="text" name="loginname"/><br/> 密码:<input type="password" name="loginname"/><br/> <input type="submit" value="登录"/> </form> <a href="delUserById.do?id=1">删除</a> </body> </html>
(3)
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>成功视图</title> </head> <body> 请求处理完毕! 获取loginname password值? <% String loginname = request.getParameter("loginname"); %> ${param.loginname } <br/> ${requestScope.user.loginname } ${requestScope.address } ${sessionScope.address } </body>
相关文章推荐
- Java 内存区域与内存溢出异常
- struts2中result详解
- struts2中常用Result类型type的用法
- Java并发编程:Callable、Future和FutureTask
- No qualifying bean of type [org.springframework.scheduling.TaskScheduler] is defined
- static关键字---JAVA
- JAVA的一些事
- spring mvc 读取xml文件数据库配置参数
- JAVA面向对象之一
- JAVA爬取网页内容
- Java-蚂蚁爬杆(面向对象编程思想)
- Java获取文件Content-Type(Mime-Type)
- eclipse build很慢的时候,有可能是js文件编译验证慢的问题
- java.lang.NoSuchFieldError: TRACE
- java1.8函数式接口
- java类型与jdbc类型对应表
- java继承实质、父类引用指向子类对象(多态)、声明时类型、运行时类型
- Spring JDBC
- java设计模式-简单工厂模式
- 制作奥运五环