springMvc

springMvc

1、概述

  • MVC2模式的实现
  • 便于灵活处理客户端的请求和响应
  • 为以后的动静分离以及分布式的web应用做基础铺垫
  • 可以延续spring框架的技术
  • 不用考虑spring的版本兼容
  • 是跨域(腾讯请求到百度)请求的基础

2、springMVC的核心组件

  • DispatcherServlet转发的Servlet
  • 配置控制器的文件springmvc-servlet.xml文件
  • 视图模型的绑定组件ModelAndView,主要在后台运行
  • 使用@RequestMapping设置请求映射的路径

3、开发步骤

  • 引入spring组件包

  • 注入业务类和控制器类(使用注解注入)

    public class UsersAction {
    	@Autowired
    	private UsersBiz usersBiz;
    	
    	
    
    	public UsersBiz getUsersBiz() {
    		return usersBiz;
    	}
    
    
    
    	public void setUsersBiz(UsersBiz usersBiz) {
    		this.usersBiz = usersBiz;
    	}
    
    
    	//method=RequestMethod.POST请求方法
    	//@RequestBody Users users在参数当中设置,可以省略
    	@RequestMapping(value="check_Users.do")
    	public String check(HttpServletRequest request,HttpServletResponse response,Users users){
    		boolean flag = usersBiz.check(users);
    		if(flag){
    			request.setAttribute("user", users);
    			return "loginok.jsp";//转发数据到login.jsp
    		}
    		return "fail.jsp";
    	}
    
  • 编写xxx-Servlet.xml文件,扫描注解的控制器组件@Controller

  • 在web.xml中配置spring的启动和DispatcherServlet

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	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_2_5.xsd">
  <display-name></display-name>	
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    
    <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>/*</url-pattern>
    </filter-mapping>
    
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    	<init-param>
    		<param-name>springmvc</param-name>
    		<param-value>/WEB-INF/springmvc-servlet.xml</param-value>
    	</init-param>
    
    </servlet>
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
    
</web-app>


  • 编写jsp页面测试

4、注解:

@Autowired
	private UsersBiz usersBiz;
//当引入Biz或者DAO时的自动装配
@Controller
public class UsersAction 
@Service
public class UsersBizImp implements UsersBiz
//业务类
@RequestMapping(value="check_Users.do")
	public String check
//请求路径check_Users.do
<form action="check_Users.do" method="post">
<!-- name的属性名必须与传递的对象的属性名保持一致,action中check方法的users的属性一致 -->
账号:<input type="text" name="name">
密码:<input type="password" name="pwd">
</form>
//post



@RequestMapping(value="check_Users.do",method=RequestMethod.POST)
	public String check
//在这里设置了method那么前端的一定的是用post请求否则就不行,如果没有设置method那么就是按照系统自动

5、注意

  • 在springmvc-servlet.xml文件中只是扫描控制器包即可,applicationContext.xml可以不扫描控制器action,但是加上也可以

  • springmvc使用方法参数接收请求的用户数据,例如:请求的url为http://xxx.xxx.xxx/xxx/aa-Aaa.do?id=1, action的方法为

    @RequestMapping(value="aa-Aaa.do")
    	public String check(HttpServletRequest request,HttpServletResponse response,int id){
    		
    
  • 请求的参数名称必须和方法的参数名称一致

  • 表单元素的名称必须和请求的实体类封装的属性的一致

  • 并且前端传输的数据,基本的数据类型可以自动自己转换

  • myeclipse如果将项目从工作空间删除,那么重新启动这个空间之后会出现服务器不能使用的情况

  • 注意要扫描所有的包不然会报异常

  • could not initialize proxy - no Session这个异常是与懒加载有关系,如果忘记设置注解模式那么要在xml文件当中配置,如果是注解那么要在注解中配置,懒加载,onetomany和manytoone

  • 重定向:

    redirect:fail.jsp
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值