zoukankan      html  css  js  c++  java
  • Java归去来第4集:java实战之Eclipse中创建Maven类型的SSM项目

    一、前言

    如果还不了解剧情,请返回第3集的剧情          Java归去来第3集:Eclipse中给动态模块升级   

    二、在Eclipse中创建Maven类型的SSM项目

    2.1:SSM简介

    SSM(Spring+SpringMVC+MyBatis)框架集由Spring、SpringMVC、MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架。其中spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。SpringMVC分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架

    2.2:搭建maven类型的SSM项目的步骤

    2.2.1:在pom.xml文件引入SSM所需要的包

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>king.weixin</groupId>
      <artifactId>KingWeixin</artifactId>
      <packaging>war</packaging>
      <version>0.0.1-SNAPSHOT</version>
      <name>KingWeixin Maven Webapp</name>
      <url>http://maven.apache.org</url>
      <!-- 公共版本号 -->
      <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java-version>1.8</java-version>
        <org.springframework-version>4.3.5.RELEASE</org.springframework-version>
        <org.aspectj-version>1.7.2</org.aspectj-version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      </properties>
      <!-- 公共版本号 end -->
      <dependencies>
      <!-- junit 开始 -->
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          <scope>test</scope>
        </dependency>
      <!-- junit 结束 -->
      <!--spring mvc  开始-->
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-webmvc</artifactId>
          <version>${org.springframework-version}</version>
        </dependency>
        
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context-support</artifactId>
          <version>${org.springframework-version}</version>
        </dependency>
        
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-tx</artifactId>
          <version>${org.springframework-version}</version>
        </dependency>
    
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-jdbc</artifactId>
          <version>${org.springframework-version}</version>
        </dependency>
    
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-web</artifactId>
          <version>${org.springframework-version}</version>
        </dependency>
    
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context</artifactId>
          <version>${org.springframework-version}</version>
          <exclusions>
            <!-- Exclude Commons Logging in favor of SLF4j -->
            <exclusion>
              <groupId>commons-logging</groupId>
              <artifactId>commons-logging</artifactId>
            </exclusion>
          </exclusions>
        </dependency>
      <!--spring mvc 结束 -->
      <!-- mybatis & mysql  开始-->
        <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>5.1.31</version>
        </dependency>
    
        <dependency>
          <groupId>commons-dbcp</groupId>
          <artifactId>commons-dbcp</artifactId>
          <version>1.4</version>
        </dependency>
        <dependency>
          <groupId>org.mybatis</groupId>
          <artifactId>mybatis-spring</artifactId>
          <version>1.3.0</version>
        </dependency>
        <dependency>
          <groupId>org.mybatis</groupId>
          <artifactId>mybatis</artifactId>
          <version>3.4.1</version>
        </dependency>
        
      <!-- mybatis & mysql 结束-->
      <!-- javax servlet 开始-->
        <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>javax.servlet-api</artifactId>
          <version>3.0.1</version>
          <scope>provided</scope>
        </dependency>
      <!-- javax servlet 结束-->
      
      <!--commons tools 开始 -->
        <dependency>
          <groupId>commons-configuration</groupId>
          <artifactId>commons-configuration</artifactId>
          <version>1.9</version>
        </dependency>
        <dependency>
          <groupId>commons-fileupload</groupId>
          <artifactId>commons-fileupload</artifactId>
          <version>1.3.2</version>
        </dependency>
        <dependency>
          <groupId>commons-io</groupId>
          <artifactId>commons-io</artifactId>
          <version>2.5</version>
        </dependency>
        <dependency>
          <groupId>commons-net</groupId>
          <artifactId>commons-net</artifactId>
          <version>3.5</version>
        </dependency>
        <dependency>
          <groupId>org.apache.commons</groupId>
          <artifactId>commons-lang3</artifactId>
          <version>3.2</version>
        </dependency>
      <!--commons tools 结束-->
      <!--log4j  开始-->
        <dependency>
          <groupId>org.apache.logging.log4j</groupId>
          <artifactId>log4j-api</artifactId>
          <version>2.10.0</version>
        </dependency>
        <dependency>
          <groupId>org.apache.logging.log4j</groupId>
          <artifactId>log4j-core</artifactId>
          <version>2.10.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-web -->
        <dependency>
          <groupId>org.apache.logging.log4j</groupId>
          <artifactId>log4j-web</artifactId>
          <version>2.10.0</version>
        </dependency>
          <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-jcl -->
          <dependency>
              <groupId>org.apache.logging.log4j</groupId>
              <artifactId>log4j-jcl</artifactId>
              <version>2.10.0</version>
          </dependency>
          <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-slf4j-impl -->
          <dependency>
              <groupId>org.apache.logging.log4j</groupId>
              <artifactId>log4j-slf4j-impl</artifactId>
              <version>2.10.0</version>
          </dependency>
      <!--log4j  结束-->
      
      <dependency>  
        <groupId>javax.servlet</groupId>  
        <artifactId>jstl</artifactId>  
        <version>1.2</version>  
    </dependency> 
      
      </dependencies>
      <!--指定source和target编译版本开始  -->
      <build>
        <finalName>KingWeixin</finalName>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
              <source>1.8</source>
              <target>1.8</target>
            </configuration>
          </plugin>
          </plugins>
      </build>
      <!--指定source和target编译版本结束  -->
    </project>
    View Code

    2.2.2:修改web.xml文件

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="3.0"
             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_3_0.xsd">
        <!--项目名称 -->
        <display-name>KingWeixin</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>
            <init-param>
                <param-name>forceEncoding</param-name>
                <param-value>true</param-value>
            </init-param>
        </filter>
        <filter-mapping>
            <filter-name>CharacterEncodingFilter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
         <!--项目编码过滤器结束-->
         
        <!-- 配置文件所在位置设置开始-->
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath*:/config/spring-*.xml</param-value>
        </context-param>
        <!-- 配置文件所在位置设置结束-->
        
        <!-- Spring监听配置开始 -->
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
         <!-- Spring监听配置结束 -->
        
        <!-- SpringMVC配置开始 -->
        <servlet>
            <servlet-name>springDispatcherServlet</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:/config/spring-mvc.xml</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>springDispatcherServlet</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>
         <!-- SpringMVC配置结束-->
        
        
        
    </web-app>
    View Code

    2.2.2:新建SSM相关文件

    首先,创建spring-mvc.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-4.0.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
    
        <!-- 注解扫描包 -->
        <context:component-scan base-package="com.king.weixin"/>
        <!-- 开启注解 -->
        <mvc:annotation-driven/>
        <!--
            配置静态资源,直接映射到对应的文件夹,不被DispatcherServlet处理,3.04新增功能,需要重新设置spring-mvc-3.0.xsd
        -->
        <mvc:resources mapping="/img/**" location="/img/" />
        <mvc:resources mapping="/js/**" location="/js/" />
        <mvc:resources mapping="/css/**" location="/css/" />
        <mvc:resources mapping="/html/**" location="/html/" />
        <mvc:resources mapping="/tinymce/**" location="/tinymce/" />
        <mvc:resources mapping="/upload/**" location="/upload/" />
        
        <!-- 定义跳转的文件的前后缀 ,视图模式配置-->
        <bean id="viewResolver"
            class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 -->
            <property name="prefix" value="/" />
            <property name="suffix" value=".jsp" />
        </bean>
    </beans>
    View Code

    其次创建spring-common.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:p="http://www.springframework.org/schema/p"
        xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context-4.0.xsd
            http://www.springframework.org/schema/tx
            http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">
    
        <!-- 1. 数据源 : DriverManagerDataSource -->
        <!-- <bean id="dataSource" -->
        <!-- class="org.springframework.jdbc.datasource.DriverManagerDataSource"> -->
        <!-- <property name="driverClassName" value="com.mysql.jdbc.Driver" /> -->
        <!-- <property name="url" value="jdbc:mysql://数据服务器IP:3306/king?useUnicode=true&amp;characterEncoding=utf-8" 
            /> -->
        <!-- <property name="username" value="root" /> -->
        <!-- <property name="password" value="密码" /> -->
        <!-- </bean> -->
        <!-- 2. 数据源 : 连接池 ProxoolDataSource -->
        <bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource">
            <property name="driver">
                <value>com.mysql.jdbc.Driver</value>
            </property>
            <property name="driverUrl">
                <value>jdbc:mysql://数据服务器IP:3306/king?user=root&amp;password=密码&amp;useUnicode=true&amp;characterEncoding=utf-8
                </value>
            </property>
            <property name="user" value="root" />
            <property name="password" value="密码" />
            <property name="alias" value="Pool_dbname" />
            <!-- <property name="houseKeepingSleepTime" value="90000" /> -->
            <property name="prototypeCount" value="0" />
            <property name="maximumConnectionCount" value="50" />
            <property name="minimumConnectionCount" value="2" />
            <property name="simultaneousBuildThrottle" value="50" />
            <!-- <property name="maximumConnectionLifetime" value="14400000" /> -->
            <property name="houseKeepingTestSql" value="select CURRENT_DATE" />
        </bean>
        <!-- 2. mybatis的SqlSession的工厂: SqlSessionFactoryBean dataSource:引用数据源 MyBatis定义数据源,同意加载配置 -->
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource"></property>
            <property name="configLocation" value="classpath:config/mybatis-config.xml" />
        </bean>
        <!-- 3. mybatis自动扫描加载Sql映射文件/接口 : MapperScannerConfigurer sqlSessionFactory 
            basePackage:指定sql映射文件/接口所在的包(自动扫描) -->
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="basePackage" value="com.king.weixin.mapper"></property>
            <property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
        </bean>
        <!--4. 事务管理 : DataSourceTransactionManager dataSource:引用上面定义的数据源 -->
        <bean id="txManager"
            class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource"></property>
        </bean>
        <!-- 5. 使用声明式事务 transaction-manager:引用上面定义的事务管理器 -->
        <tx:annotation-driven transaction-manager="txManager" />
    </beans>
    View Code

    最后创建mybatis-config.xml数据持久层配置文件

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
        <!-- 实体类,简称 -设置别名 -->
        <typeAliases>
            <typeAlias alias="User" type="com.king.weixin.entity.User" />
        </typeAliases>
        <!-- 实体接口映射资源 -->
        <!--
            说明:如果xxMapper.xml配置文件放在和xxMapper.java统一目录下,mappers也可以省略,因为org.mybatis.spring.mapper.MapperFactoryBean默认会去查找与xxMapper.java相同目录和名称的xxMapper.xml
        -->
        <mappers>
            <mapper resource="com/king/weixin/mapper/userMapper.xml" />
        </mappers>
    </configuration>  
    View Code

    关系,两个Spring文件会在web.xml中引入,mybatis-config文件会在sping定义数据源配置的spring-common.xml文件中引入,具体可以看代码,截止目前,项目搭建完毕,Maven-update  project的话,系统会根据pom.xml自动下载相关jar包,这就是Maven的好处

    2.3:SSM查询实例

    (1)新建entity类User.java

    package com.king.weixin.entity;
    
    
    /**
     * @author KING
     * 2018-6-8 16:00:06
     */
    public class User {
    
        private int id;
        private String age;
        private String userName;
        public User(){
            super();
        }
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getAge() {
            return age;
        }
        public void setAge(String age) {
            this.age = age;
        }
        public String getUserName() {
            return userName;
        }
        public void setUserName(String userName) {
            this.userName = userName;
        }
        public User(int id, String age, String userName) {
            super();
            this.id = id;
            this.age = age;
            this.userName = userName;
        }
    }
    View Code

    (2)新建UserMapper.java接口类

    package com.king.weixin.mapper;
    import java.util.List;
    import com.king.weixin.entity.User;
    
    public interface UserMapper {
    
        void save(User user);
        boolean update(User user);
        boolean delete(int id);
        User findById(int id);
        List<User> findAll();
    }
    View Code

    (3)新建userMapper.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <!-- 
        namespace:必须与对应的接口全类名一致
        id:必须与对应接口的某个对应的方法名一致
        
     -->
    <mapper namespace="com.king.weixin.mapper.UserMapper">
        
        <insert id="save" parameterType="User">
            insert into t_user(user_name,user_age) values(#{userName},#{age})
        </insert>
    
        <update id="update" parameterType="User">
            update t_user set user_name=#{userName},user_age=#{age} where user_id=#{id}
        </update>
        
        <delete id="delete" parameterType="int">
            delete from t_user where user_id=#{id}
        </delete>
        <!-- mybsits_config中配置的alias类别名,也可直接配置resultType为类路径 -->  
        <select id="findById" parameterType="int" resultType="User">
            select user_id id,user_name userName,user_age age from t_user where user_id=#{id}
        </select>
        <select id="findAll" resultType="User">
            select user_id id,user_name userName,user_age age from t_user
        </select>
        
    </mapper>
    View Code

    (4)新建UserService.java接口类

    package com.king.weixin.service;
    
    import java.util.List;
    
    import com.king.weixin.entity.User;
    
    
    public interface UserService {
        void save(User user);
        boolean update(User user);
        boolean delete(int id);
        User findById(int id);
        List<User> findAll();
    }
    View Code

    (5)新建UserServiceImpl.java实现类

    package com.king.weixin.service;
    
    import java.util.List;
    
    import javax.annotation.Resource;
    
    import org.springframework.stereotype.Service;
    import org.springframework.transaction.annotation.Transactional;
    
    import com.king.weixin.mapper.UserMapper;
    import com.king.weixin.entity.User;
    import com.king.weixin.service.UserService;
    
    
    
    @Service
    @Transactional  //此处不再进行创建SqlSession和提交事务,都已交由spring去管理了
    public class UserServiceImpl implements UserService {
        
        @Resource
        private UserMapper mapper;
    
        public boolean delete(int id) {
            
            return mapper.delete(id);
        }
    
        public List<User> findAll() {
            List<User> findAllList = mapper.findAll();
            return findAllList;
        }
    
        public User findById(int id) {
    
            User user = mapper.findById(id);
            
            return user;
        }
    
        public void save(User user) {
    
            mapper.save(user);
        }
    
        public boolean update(User user) {
    
            return mapper.update(user);
        }
        
        
    
    }
    View Code

    (6)新建UserController.java控制类

    package com.king.weixin.controller;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.List;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    import com.king.weixin.entity.User;
    import com.king.weixin.service.UserService;
    
    @Controller
    @RequestMapping("/user")
    public class UserController {
    
        @Autowired
        private UserService userService;
        
        /**
         * 获取所有用户列表
         * @param request
         * @return
         */
        @RequestMapping("/getAllUser")
        public String getAllUser(HttpServletRequest request){
            
            System.out.println("访问的是我");
            List<User> findAll = userService.findAll();
            
            request.setAttribute("userList", findAll);
            return "/index";
        }
        
        /**
         * 跳转到添加用户界面
         * @param request
         * @return
         */
        @RequestMapping("/toAddUser")
        public String toAddUser(HttpServletRequest request){
            
            return "/addUser";
        }
        /**
         * 添加用户并重定向
         * @param user
         * @param request
         * @return
         */
        @RequestMapping("/addUser")
        public String addUser(User user,HttpServletRequest request){
            userService.save(user);
            return "redirect:/user/getAllUser";
        }
        
        /**
         *编辑用户
         * @param user
         * @param request
         * @return
         */
        @RequestMapping("/updateUser")
        public String updateUser(User user,HttpServletRequest request){
            
            
            if(userService.update(user)){
                user = userService.findById(user.getId());
                request.setAttribute("user", user);
                return "redirect:/user/getAllUser";
            }else{
                return "/error";
            }
        }
        /**
         * 根据id查询单个用户
         * @param id
         * @param request
         * @return
         */
        @RequestMapping("/getUser")
        public String getUser(int id,HttpServletRequest request){
            
            request.setAttribute("user", userService.findById(id));
            return "/editUser";
        }
        /**
         * 删除用户
         * @param id
         * @param request
         * @param response
         */
        @RequestMapping("/delUser")
        public void delUser(int id,HttpServletRequest request,HttpServletResponse response){
            String result = "{"result":"error"}";
            
            if(userService.delete(id)){
                result = "{"result":"success"}";
            }
            
            response.setContentType("application/json");
            
            try {
                PrintWriter out = response.getWriter();
                out.write(result);
            } catch (IOException e) {
                e.printStackTrace();
            }
    
        }
        
        @RequestMapping("/GoLogin")
        public String GoLogin(HttpServletRequest request,HttpServletResponse response)
        {
                return "/login";
               
        }
        @RequestMapping("/CheckLogin")
        public void CheckLogin(HttpServletRequest request,HttpServletResponse response) throws IOException
        {
                String sysusername="king";
                String syspassword="123456";
                String username=request.getParameter("userName");
                String password=request.getParameter("passWord");
                System.out.println("用户名:"+username);
                System.out.println("密码:"+password);
                HttpSession session=request.getSession();
                if(username.equals(sysusername)&&password.equals(syspassword))
                {
                    session.setAttribute("username",username );
                    response.getWriter().write("success");
                }
                else
                {
                    response.getWriter().write("err");
                }
        }
    }
    View Code

    后台的类已创建完成,下面我们新建一个index.jsp页面做测试,页面内容如下,这里我引入了jstl标签,具体代码请看下面的代码

    <%@ page language="java" contentType="text/html; charset=utf8"
        pageEncoding="utf8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf8">
    <title>SpringMvc测试页</title>
    </head>
    <script type="text/javascript">
    function queryuser()
    {
     window.location.href="<%=request.getContextPath()%>/user/getAllUser";
    }
    </script>
    <body>
    <h3>Hello,world</h3><br>
    <button onclick="queryuser()">查询所有用户</button>
        <table border="1">
        <tr>
        <td>用户编号</td><td>年龄</td><td>姓名</td>
        </tr>
        <c:forEach items="${userList}" var="user" varStatus="vs">  
                <tr>  
                     <td align = "center">${user.id}</td>  
                     <td align = "center">${user.age}</td>  
                     <td align = "center">${user.userName}</td>  
        
                 </tr>  
        </c:forEach>  
        </table>
    </body>
    </html>
    View Code

    启动项目,访问如下图所示,访问到首页

    点击查询所有用户按钮

    后台我在UserController里面的getAllUser方法做了打印,可以看到请求已经到了Controller里面,实战结束

  • 相关阅读:
    django ajax报错解决:You called this URL via POST, but the URL doesn't end in a slash and you have APPEND_SLASH set.
    django使用session报错:no such table: django_session
    centos7下yum安装mariadb
    pip报错解决:EnvironmentError: mysql_config not found
    django报错解决:view must be a callable or a list/tuple in the case of include().
    onpageshow和onpagehide
    深入理解Linux的CPU上下文切换
    看完就彻底懂了红黑树!红黑树的插入、删除、左旋、右旋
    shell根据csv生成sql
    shell中的EOF用法
  • 原文地址:https://www.cnblogs.com/wxjnew/p/9157186.html
Copyright © 2011-2022 走看看