zoukankan      html  css  js  c++  java
  • SpringMVC入门一:helloWorld


    玩了一下SpringMVC, 感觉挺清爽的 好像没有struts那么臃肿( 可能是高级的东西我还不会用 哈 ) 

    例子中一共有俩方法:

    一个Controller直接返回字串的方法, 另一个通过Dao层返回用户列表的方法, 

    前台只是用JSTL简单显示一下返回值,

    主要是怕记不住 记在博客里, 算是个入门笔记吧


    零:结构

    用的是: spring-framework-3.2.4.RELEASE



    一:配置文件

    1.web.xml

    	<!--==>1.编码器 -->
    	<filter>
            <filter-name>SetCharacterEncoding</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>SetCharacterEncoding</filter-name>
    		<url-pattern>/</url-pattern>
      	</filter-mapping>
    	
    	<!--==>2.核心拦截器 -->
    	<!--核心拦截器还需要一个: 名称-servlet.xml的配置(用于配置HandlerMapping和 HandlerAdapter) -->
    	<servlet>
    		<servlet-name>hello</servlet-name>
    		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    		<load-on-startup>1</load-on-startup>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>hello</servlet-name>
    		<url-pattern>/</url-pattern>
    	</servlet-mapping>
    
    	<welcome-file-list>
    	    <welcome-file>index.jsp</welcome-file>
    	</welcome-file-list>
    	
    	<session-config> 
            <session-timeout>20</session-timeout> 
        </session-config> 
    	

    2.名称-servlet.xml

    对于hello这个servlet来说就是 hello-servlet.xml

    	<!-- 自动搜索 -->
    	<context:component-scan base-package="*.*" />
    	
    	<!-- HandlerMapping和HandlerAdapter的配置 -->
    	<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>  
    	<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
    	
    	<!-- view层的配置 -->
    	<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
    		<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>  
    		<property name="prefix" value="/"/>  
    		<property name="suffix" value=".jsp"></property>  
    	</bean>


    二:Controller层

    HelloController.java

    package com.hello.web.controller;
    
    import java.util.List;
    
    import javax.annotation.Resource;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.springframework.stereotype.Controller;//==>@Controller注解
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.servlet.ModelAndView;
    
    import com.hello.dao.IHelloDao;
    import com.hello.web.model.User;
    
    
    @Controller
    @RequestMapping(value="/hello")//==>指定命名空间:http://localhost:8080/HelloSpringMVC/hello
    public class HelloController 
    {
    	@Resource
    	private IHelloDao helloDao;
    	
    	//==>1.返回helloWorld字串
    	@RequestMapping(value="/helloWorld")//==>命名空间内具体请求: .../hello/helloWorld
    	public ModelAndView helloWorld(HttpServletRequest requset,HttpServletResponse response) throws Exception
    	{
    		System.out.println("==>start helloWorld()");
    		//==>ModelAndView是SpringMVC的一个核心对象org.springframework.web.servlet.ModelAndView;
    		ModelAndView mv = new ModelAndView(); 
    	    mv.addObject("message", "==>Hello SpringMVC!"); //带参数,可以是Object
    	    mv.setViewName("/view/hello"); //设置将要跳转的视图 
    
    	    return mv;    
    	}
    	
    	//==>2.通过Dao返回List
    	@RequestMapping(value="/userList")
    	public ModelAndView getUserList(HttpServletRequest requset,HttpServletResponse response) throws Exception
    	{
    		System.out.println("==>start getUserList()");
    		
    		List<User> list = this.helloDao.getList();
    		
    		ModelAndView mv = new ModelAndView(); 
    		
    	    mv.addObject("resultList", list); 
    	    mv.setViewName("/view/userList"); 
    
    	    return mv;    
    	}
    }
    


    三:Dao层

    接口中不用拿注解做任何配置, daoImpl中需要注解@Service("IHelloDao")

    public interface IHelloDao 
    {
    	public User getUserById(Integer uid);
    	public List<User> getList();
    }
    import org.springframework.stereotype.Service;
    
    import com.hello.dao.IHelloDao;
    import com.hello.web.model.User;
    
    @Service("IHelloDao")
    public class HelloDaoImpl implements IHelloDao
    {
    
    	public User getUserById( Integer uid ) 
    	{
    		...
    	}
    
    	public List<User> getList() 
    	{



    四:view层

    这个就是拿EL 和 JSTL简单输出一下

      <body>
        <br/>
        ${message}
      </body>
    <%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
    
    ...
    
      <body>
        <br>
        <table border="1px" >
    	    <c:forEach var="user" items="${resultList}" >
    			<tr align="center" >
    				<td><c:out value="${user.uid}"/></td>
    				<td><c:out value="${user.name}"/></td>
    				<td><c:out value="${user.password}"/></td>
    				<td><c:out value="${user.info}"/></td>
    			</tr>
    		</c:forEach>
    	</table>	
      </body>









  • 相关阅读:
    第一次作业 —— 【作业7】问卷调查
    讲座观后感
    学习进度表(随缘更新)
    数据结构与算法思维导图
    作业七问卷调查
    《创新者的逆袭,用第一性原理做颠覆式创新》读后感
    结对项目--四则运算生成器(Java) 刘彦享+龙俊健
    个人项目---WordCount实现(Java)
    自我介绍+软工五问
    简洁又快速地处理集合——Java8 Stream(下)
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3292037.html
Copyright © 2011-2022 走看看