发表于: 2017-12-18 22:10:02

1 641


今天完成的事:

1.跑通了一个简单的springmvc。

2.学习了一些jsp的简单语法。



遇到的困难:

1、IDEA创建springmvc,第一步出现问题,尴尬了好久才发现,囧

创建之后目录不对,如图,开始以为是版本问题,而且配置文件出现好多报错,我以为是没有导入相关jar包

也试过先创建springmvc框架,然后添加maven框架,还试过删除xml文件在创建,总之一顿乱搞

最后发现原来有两个webapp,我一口老血喷到南墙上。。。。

2、创建springmvc项目后,启动tomcat可以跳转到index.jsp,但是无法跳转到指定的jsp,一度以为是博客的问题,换了好几个后发现都是一样,最后找了一个最简单的也是这个问题,再次尴尬

原因:视图解析器配置出错,如图,前缀的值少了一个   /   , 




明天计划:

jsp和servlet都是新接触的概念,明天学习一下。


收获:

1、两个很简单的问题花费了很久的时间,以后一定要看仔细,一定要看仔细,一定看仔细。

2、springmvc大致流程:

     请求-------前端处理器(中央处理器),根据url判断是否拦截-----处理器映射器handleMapping----

----处理器适配器(handlerAdaptor)--------处理器(自己定义的Controller),找到指定方法------返回ModelAndView-------视图解析器(ViewResolver)-------调用视图(view),如自己定义的jsp页面------响应

其中每一步之后都是返回前端处理器,再由前端处理器发出下一步,前几天日报的图很形象,现在完全理解了。

3、处理器映射器和处理器适配器必须成对出现,可以用<mvn:annotation-driven/>代替。

4、代码:

配置web.xml,

springmvc的入口---注册前端控制器,

DispatcherServlet本身是servlet的一个实现类,注册前端控制器时需要确定这个类,第二确定初始化参数,即核心配置问价位置(核心配置文件的名称格式有要求),第三声明匹配原则

<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/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
        id="WebApp_ID" version="3.0">
   <display-name>Archetype Created Web Application</display-name>

<!--注册前端控制器-->
   <servlet>
       <servlet-name>spring-mvc</servlet-name>
       <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
       <!--读取配置文件,确定配置核心配置文件的路径-->
       <init-param>
           <param-name>contextConfigLocation</param-name>
           <param-value>/WEB-INF/spring-mvc-servlet.xml</param-value>
       </init-param>
       <!--创建servlet的顺序-->
       <load-on-startup>1</load-on-startup>
   </servlet>

   <!--声明匹配原则-->
   <servlet-mapping>
       <servlet-name>spring-mvc</servlet-name>
       <url-pattern>/</url-pattern>
   </servlet-mapping>
</web-app>

springmvc的核心---【servlet-name】-servlet.xml ,

命名格式是确定的,这个一定注意

扫描注解包,配置适配器和映射器,启动springmvc注解,视图解析器

<?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-4.1.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-4.1.xsd
    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">

   <!-- 3、自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器  -->
   <!-- 设置使用注解的类所在的jar包 -->
   <context:component-scan base-package="com.jnshu"/>

   <!-- 1、配置映射器与适配器 -->
   <mvc:annotation-driven></mvc:annotation-driven>

   <!-- 启用spring mvc 注解 -->
   <context:annotation-config/>


   <!-- 2、视图解析器 -->
   <!-- 对转向页面的路径解析。prefix:前缀, suffix:后缀 -->
   <!--视图解析-->
   <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
       <property name="suffix" value=".jsp"/>
       <property name="prefix" value="/WEB-INF/jsp/"/>
   </bean>
</beans>

Controller控制层

RequestMapping是处理请求地址的映射,放在类或者方法上,

value是请求地址,可以是数组;method指定请求类型,get,post,put,delete;

consume指定请求提交的内容类型,produces:    指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;

params指定请求中必须包含某些参数才能执行,headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求。

@Controller
@RequestMapping("/test")
public class HelloWorldController {
@RequestMapping(value = "/hello",params = {"name"})
public ModelAndView hello(HttpServletRequest request, HttpServletResponse response)throws Exception{
ModelAndView mv = new ModelAndView();
       mv.addObject("message","hello 这是第一个页面");
       mv.setViewName("helloworld");
       return mv;
   }

5、jsp

  jsp本质是一个简化的servlet,是一种动态页面技术,目的是将逻辑代码和servlet分开。

语法:

<%  代码片段  %>

<%!  声明  %>

<%= 表达式 %>

<%--  注释 --%>

指令:

<%@page %>  定义页面依赖属性;

<%@ page contentType="text/html;charset=UTF-8" language="java"  pageEncoding="UTF-8"%>

<%@include  file=“文件相对于uri的地址"%>    引入其他文件,不太理解uri是指哪个uri,还没用到;

<%@taglib%   uri="uri"   prefix="prefixoftag">  引入标签库;


禅道:

http://task.ptteng.com/zentao/project-task-434.html




返回列表 返回列表
评论

    分享到