springMVC获取数据--注意post方法会出现中文乱码问题

1. 新建web project

2. 加入jar

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">
  <display-name></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*:config/spring-servlet.xml</param-value>
  	</init-param>
  	<load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
  	<servlet-name>springMVC</servlet-name>
  	<url-pattern>/</url-pattern>
  </servlet-mapping>
  
</web-app>

4. src/config  包下写spring-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"    
    xmlns:mvc="http://www.springframework.org/schema/mvc"    
    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    
           http://www.springframework.org/schema/mvc     
           http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> 
    <!-- 注解扫描包 -->
    <context:component-scan base-package="com.tgb.web.controller" />      
      
    <!-- 开启注解 -->
    <mvc:annotation-driven/>
   
    <!-- 静态资源访问 -->
    <mvc:resources location="/img/" mapping="/img/**"/>
    <mvc:resources location="/js/" mapping="/js/**"/>
    <mvc:resources location="/css/" mapping="/css/**"/>
   
    	
    <!-- ViewResolver 视图解析器 --> 
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"/> 
        <property name="suffix" value=".jsp"/> 
    </bean>
     
</beans>

  

5. controller文件 UserController.java   

package com.tgb.web.controller;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.tgb.web.controller.entity.User;

@Controller
@RequestMapping("/user")
public class UserController {
	@RequestMapping("/addUser")
	public String addUser(User user,HttpServletRequest request){
		String result = "this is addUser---------优化版";
		request.setAttribute("userName", user.getUserName());
		request.setAttribute("age", user.getAge());
		return "/userManager"; 
	}
	@RequestMapping("/delUser")
	public String delUser(){
		return ""; 
	}
	
	@RequestMapping("/toUser")
	public String toUser(){
		return "/addUser"; 
	}
}

新建一个POJO实体类, 在一个新的包com.tgb.web.controller.entity下, User.java 

package com.tgb.web.controller.entity;

public class User {
	private String userName;
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	private String age;
	public String getAge() {
		return age;
	}
	public void setAge(String age) {
		this.age = age;
	}
}

  

 

6. addUser.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'addUser.jsp' starting page</title>   
  </head>  
  <body>
	  <h> 添加用户 </h> <br>
	  <form action="/springMVC5/user/addUser">
	  	姓名: <input type="text" name="userName">
	  	年龄: <input type="text" name="age">
	  	<input type="submit" value="添加">
	  </form>   		
  </body>
</html>

或者:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <script type="text/javascript" src="../js/jquery-1.4.2.min.js"></script>
    <title>My JSP 'addUser.jsp' starting page</title>
    <script type="text/javascript">
	    function addUser(){
	    	var form=document.forms[0];
	    	form.action="/springMVC5/user/addUser";
	    	form.method="get";
	    	form.submit();    	
	    }    	
    </script>
  </head>  
  <body>
	  <h> 添加用户 </h> <br>
	  <form action="">
	  	姓名: <input type="text" name="userName">
	  	年龄: <input type="text" name="age">
	  	<input type="button" value="添加" onClick="addUser()">
	  </form>
   		
  </body>
</html>

7. userManager.jsp    

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <script type="text/javascript" src="../js/jquery-1.4.2.min.js"></script>
    <title>My JSP 'addUser.jsp' starting page</title>
    <script type="text/javascript">
    </script>
  </head>  
  <body>
	  <h> 用户管理  </h> <br/>
	  	姓名: ${userName }<br/>
	  	年龄: ${age }   		
  </body>
</html>

8. IE端访问   

http://localhost:8080/springMVC5/user/toUser

  

如果把get改成post会出现乱码的情况, 但是参数传递不会再URL上, get就会显示在URL地址栏里.  

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">
  <display-name></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*:config/spring-servlet.xml</param-value>
  	</init-param>
  	<load-on-startup>1</load-on-startup>
  </servlet>
  
  <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>  
        <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>
  
  
  <servlet-mapping>
  	<servlet-name>springMVC</servlet-name>
  	<url-pattern>/</url-pattern>
  </servlet-mapping>
  
</web-app>

  

 

原文地址:https://www.cnblogs.com/wujixing/p/5600923.html