发表于: 2017-09-01 23:12:19

1 1043


今天完成的事

学习SpringMV

SpringMVC的常用注解

1、@Controller  (表明这是一个控制类

   在SpringMVC 中提供了一个非常简便的定义Controller 的方法,只需使用@Controller 标记一个类是Controller 

2.@RequestMapping

一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径

3、@Resource和@Autowired

@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入

4.@PathVariable

用于将请求URL中的模板变量映射到功能处理方法的参数上,即取出uri中的变量作为参数

5.@requestParam主要用于在SpringMVC后台控制层获取参数

6.@ResponseBody  该注解用于将Controller的方法返回的对象 一般在返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;

7.@Repository 用于注解dao层,在daoImpl类上面注


什么是DispatcherServlet

DispatcherServlet是前端控制器设计模式的实现,提供Spring Web MVC的集中访问点,而且负责职责的分派,而且与Spring IoC容器无缝集成,从而可以获得Spring的所有好处,主要负责流程的控制


创建SpringMVC项目,编写配置文件

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_3_0.xsd"
        version="3.0">
 <display-name>Archetype Created Web Application</display-name>
 <!--配置DispatcherServlet-->

  <servlet>
     <servlet-name>Student-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--配置SpringMVC需要加载的配置文件-->
        <!--Spring—dao -> spring -> springMVC-->
        <!--spring-dao.xml,spring-service.xml,spring-web.xml-->
  <init-param>
    <!--加载所有spring下的配置文件-->
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:spring/spring-*.xml</param-value>
  </init-param>
  </servlet>
 
 <servlet-mapping>
   <servlet-name>Student-dispatcher</servlet-name>
   <!--默认匹配所有请求-->
   <url-pattern>/</url-pattern>
 </servlet-mapping>
</web-app>

Spring-web.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: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.xsd
      http://www.springframework.org/schema/context
      http://www.springframework.org/schema/context/spring-context.xsd
      http://www.springframework.org/schema/mvc
      http://www.springframework.org/schema/mvc/spring-mvc.xsd">
   <!--配置SpringMVC-->
   <!--开启SpringMVC注解模式-->
   <!--简化配置
        自动注册DefaultAnnotationHandlerMapping,AnnotationMethodHandlerAdapter
        提供系列功能  数据绑定,数字和日期的Format
        xml,jason的默认都写和支持
   -->
   <mvc:annotation-driven/>
   <!--servlet-mapping   映射路径 :"/"-->
   <!--静态资源默认servlet配置-->
   <!--允许使用"/"做整体映射-->
   <mvc:default-servlet-handler/>
   <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
       <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
       <property name="prefix" value="/WEB-INF/jsp"/>
       <property name="suffix" value=".jsp"/>
   </bean>
    <!--扫面web相关的bean-->
   <context:component-scan base-package="org.student.web"/>
</beans>

稍稍写了点controller,但是写着写着就发现开始的思路不对

打算明天重写

//标这是一个控制器类
   @Controller
//所有程序的第一接口  表示类中的所有响应请求的方法都是以该地址作为父路径
   @RequestMapping
public class HomeController {
private static Logger loggerController = Logger.getLogger(HomeController.class);
   //自动配装StudentService
   @Autowired
   private StudentService studentService;
     /*
    * 对某个指定用户查询
    * 链接为http://localhost:8080/task2/a/student/select/具体数据
    */
   @RequestMapping(value="/a/student/select/{id}",method = RequestMethod.GET)
public String select(HttpServletRequest request, HttpServletResponse response, Model model, @PathVariable String id){
if (id!=null){

try {
loggerController.info("查找当前的用户信息");
               loggerController.info("id" + id);
               Student student = this.studentService.studentSelect(id);
               loggerController.info("学生信息: "+ study);
               //将数据绑定到model上,可以传入jsp页面
               model.addAttribute("study", study);
           } catch (Exception e) {
e.printStackTrace();
               loggerController.error("查询失败" + e.getMessage());
               return "common/errorJson";
           }
return "student/studentDataliJson";
       }
else {
loggerController.info("id" + id);
           return "common/errorParameterJson";
       }
}
}

}




了解了SpringMVC大概需要什么配置文件,但总感觉少点什么,网上的说法太过破碎,一人一个样

明天找师兄抱大腿,让给我好好讲讲!!!

明天的计划

抱师兄大腿,一定要在明天把SpringMVC弄清楚

试着按照师兄讲的写写代码

明天要多花点时间准备小课堂了,不能再往后脱了 ,把PPT先搞出来

遇到的问题

springMVC卡住的第四天了,该死皮赖脸的去问师兄了

也不知道是不是看不懂的问题,学习没尽头了,感觉今天一天都是假学习状态,一定要调整过来

不知道别人代码上的配置文件都什么用,一个人一个样,不知道参考谁的  明天好好问问师兄

程远师兄的代码上有两个接口和实现,没明白这有什么用,分别指向谁  



任务进度:任务2步骤2

任务开始时间:2017-8-29

预计结束时间:2017-9-4

有延期风险   解决方案:跟师兄谈谈,再决定延期几天

禅道:http://task.ptteng.com/zentao/task-view-9387.html






返回列表 返回列表
评论

    分享到