发表于: 2018-02-02 23:28:33

1 624



今天完成:


1---今天总结一下SSM框架实现RESTful风格接口的一些知识点:

    (1)第一步,项目结构,java/com.byou包下建立controller包(存放对外暴露的接口的实现类),DAO包(存放数据层的接口类一级MyBatis的映射文件),model包(存放数据库所对应的表的对象),service包(存放服务层的接口类),util包(存放通用的一些算法)。
    (2)第二步,在resources文件夹下添加Spring上下文的配置文件applicationContext.xml文件。内容如下:
<?xml version="1.0" encoding="UTF-8"?>
       xsi:schemaLocation="
    <!--开启事务注解驱动-->
    <context:annotation-config/>
    <!--扫描service层-->
    <context:component-scan base-package="com.byou.service"/>
    <!--导入数据源信息-->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName">
            <value>com.mysql.jdbc.Driver</value>
        </property>
        <property name="url">
            <value>jdbc:mysql://localhost:3306/how2java?characterEncoding=UTF-8&amp;useSSL=true</value>
        </property>
        <property name="username">
            <value>root</value>
        </property>
        <property name="password">
            <value>123456</value>
        </property>
    </bean>
    <!--创建SqlSessionFactory-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="typeAliasesPackage" value="com.byou" />
        <property name="dataSource" ref="dataSource"/>
        <property name="mapperLocations" value="classpath:Category.xml"/>
    </bean>
    <!--自动扫描映射器-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.byou.DAO"/> <!--项目中MyBatis映射文件的位置-->
    </bean>
</beans>
    (3)第三步,修改web.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
         xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:web="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_2_5.xsd" version="2.5">
  <display-name>Archetype Created Web Application</display-name>
  <!--解决工程编码过滤器,这个过滤器必须是第一个过滤器,否则出现中文乱码-->
  <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>
  <!--REST风格过滤器,因为html只支持GET和POST,不支持PUT和DELETE等方法,所以实现RESTful接口需要一个过滤器,将PUT和DELETE需求转化成GET和POST-->
  <filter>
    <filter-name>HiddenHttpMethodFilter</filter-name>
    <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>HiddenHttpMethodFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <filter>
    <filter-name>httpPutFormcontentFilter</filter-name>
    <filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>httpPutFormcontentFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <!-- spring mvc核心:Spring view分发器 -->
  <servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- spring mvc的配置文件 -->
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:springMVC.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
  <!-- 设置spring容器加载配置文件路径-->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
  </context-param>
  <!-- 配置spring监听器 -->
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
   <!-- 默认欢迎页面 -->
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>
    (4)此时环境就配置好了,可以进行网页和controller的配置了。第四步,设计网页上的增删改查的模式:(感觉这一步应该是PM的活儿)
首先,网页上将所有学生信息分页列出;
其次,删除按钮在每个学生信息的最右一列,点击之后即可将此学生信息删除;
第三,增加学生信息的按钮和信息输入框在列表的下方,当输入学生信息并点击“增加”按钮后,新增学生信息自动写入数据库,并显示在上方学生信息列表中;
第四,更改学生信息,在列表中删除按钮隔壁放置一个编辑按钮,点击之后跳转到一个学生信息编辑页面,填入信息点击提交,数据库更改学生信息,之后页面跳转回学生列表,可以立马看到学生信息已经更改;
第五,在学生列表页面有一个查询按钮,点击回跳转到学生查询页面,输入任意学生信息,将会显示所有符合条件的学生信息。点击“返回”,又回到学生信息列表页面。 


2---初步学习了一些postman的内容,测试了一下自己写的接口,均通过。


明天计划:

学习json。

使用jetty:run命令启动jetty服务。


遇到问题:

jsp页面的一些东西还是了解太少。


收获:

知道了RESTful风格到底要达到一种什么状态。就是只要jsp页面的action(URL)和method(post与get等)与controller类里边的action和method一致,那么这个jsp语句就会听从这个controller方法的命令(就像插头找到了对应的插座)。但是因为html只认识get(查询)和post(更新)两种action,get方法会将传输的信息放在URL中,导致信息安全性被破坏。所以对于需要进行保密的数据,SpringMVC和html之间只能通过post方法沟通,所以jsp页面进行增删改查四种操作的时候,只能通过不同的action进行,于是乎就有了URL出现动词的情况。为了让同一个URL能够作出增删改查这些动作,jsp文件中要么通过伪form表单的方法,要么通过ajax的方法实现delete和put等操作。(纯属个人现阶段的理解)


返回列表 返回列表
评论

    分享到