主頁 >  其他 > SSM框架

SSM框架

2021-12-29 08:06:41 其他

SSM專案整合

一.環境準備

  • 開發工具:idea2020.1

  • 構建工具:maven3.8.4

  • spring框架5.2.18;JDK:1.8;資料庫:MySQL;連接池:德魯伊

二.環境搭建

2.1 基本環境搭建

2.1.1構建model

2.1.3創建基本目錄

2.2 pom檔案依賴包引入

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <spring.version>5.2.18.RELEASE</spring.version>
  </properties>
?
  <dependencies>
    <!--測驗依賴-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
    <!--日志-->
    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <version>1.2.3</version>
    </dependency>
    <!--決議JSON-->
    <dependency>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
      <version>2.7</version>
    </dependency>
    <!--servlet-->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <!--作用范圍是provided表示,打包的時候不會將jar包打入war包-->
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.2</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>
       <!--上傳檔案依賴jar包-->
    <dependency>
      <groupId>commons-fileupload</groupId>
      <artifactId>commons-fileupload</artifactId>
      <version>1.3.3</version>
    </dependency>
    <!--Spring依賴-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <!--spring AOP和aspectj框架整合的模塊-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aspects</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <!--事務需要的-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <!--鏈接資料庫要用-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <!-- mysql jdbc驅動包 -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.27</version>
    </dependency>
    <!--Druid資料庫連接池 -->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.1.20</version>
    </dependency>
    <!-- mybatis框架包 -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.2</version>
    </dependency>
    <!-- mybatis和spring整合依賴包 -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>2.0.2</version>
    </dependency>
    <!--分頁依賴-->
    <dependency>
      <groupId>com.github.pagehelper</groupId>
      <artifactId>pagehelper</artifactId>
      <version>5.2.1</version>
    </dependency>
  </dependencies>
?
  <build>
    <!--資源插件,處理src/main/java目錄的xml-->
    <resources>
      <resource>
        <directory>src/main/java</directory>    <!--所在的目錄-->
        <includes><!--包括properties和xml都會被掃描-->
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>
        <filtering>true</filtering>
      </resource>
      <resource>
        <directory>src/main/resources</directory>    <!--所在的目錄-->
        <includes><!--包括properties和xml都會被掃描-->
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>
      </resource>
    </resources>
  </build>

2.3 撰寫組態檔

2.3.1撰寫spring組態檔

  1. j將所有的組態檔都放在在src\main\resources目錄下面,方便管理維護;

  2. 創建spring的xml組態檔applicationContext.xml

  3. 撰寫applicationContext.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:tx="http://www.springframework.org/schema/tx"
           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/tx https://www.springframework.org/schema/tx/spring-tx.xsd">
    ?
    <!--開啟掃描-->
        <context:component-scan base-package="com.yang">
            <!--配置哪些注解不掃描 Controller用springMVC-->
            <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
        </context:component-scan>
        <!--讀取外部組態檔-->
        <context:property-placeholder location="classpath:jdbc.properties"/>
        <!--將Druid資料源交給Spring IOC容器來管理-->
        <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
            <property name="username" value="${prop.username}"/>
            <property name="password" value="${prop.password}"/>
            <property name="url" value="${prop.url}"/>
            <property name="driverClassName" value="${prop.driverClassName}"/>
            <property name="initialSize" value="${prop.initialSize}"/>
            <property name="maxActive" value="${prop.maxActive}"/>
        </bean>
        <!--SqlSessionFactory 會話工廠交給spring容器管理-->
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource"/>          <!-- 加載資料環境   -->
            <!--  系結mybatis組態檔     -->
            <property name="configLocation" value="classpath:mybatis-config.xml"/>
            <!--   幾乎所有的東西都能在這里面配,完全不需要mybatis的核心配置  根據個人喜好,個人感覺分開一點維護比較容易 -->
        </bean>
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="basePackage" value="com.yang.mapper"></property>
        </bean>
        <!-- 事務管理器 -->
        <bean id="transactionManager"  class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource" />
        </bean>
        <tx:annotation-driven transaction-manager="transactionManager"/>
    ?
    </beans>

2.3.2撰寫jdbc.properties檔案

prop.username=用戶名
prop.password=密碼
prop.url=jdbc:mysql://localhost:3306/資料庫名
#driverClassName
prop.driverClassName=com.mysql.cj.jdbc.Driver
#初始化連接數
prop.initialSize=10
#最小連接數
prop.minIdle=5
#最大連接數
prop.maxActive=20
#最大等待時間
prop.maxWait=5000

2.3.3配置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: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 https://www.springframework.org/schema/mvc/spring-mvc.xsd">
?
    <!--開啟注解掃描,只掃描Controller注解,直接指定到controller,否則會無法添加事務-->
    <context:component-scan base-package="com.yang.controller" />
    <!--配置的視圖決議器物件;這里使用jsp;也可以使用其他的視圖決議器-->
    <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/pages/"/>
        <!--也可以放開下面這一行; 就只能決議jsp了;-->
        <!--<property name="suffix" value=".jsp"/>-->
        <property name="contentType" >
            <value>text/html; charset=UTF-8</value>
        </property>
    </bean>
    <!--MVC注解驅動,如果不加這個驅動所有的都會交給默認的請求去處理了,只能訪問靜態資源,而其他跳      轉功能等無法使用所以default-servlet-handler標簽要和annotation-driven一起使用-->
    <mvc:annotation-driven/>
    <!--開啟靜態資源掃描,由于設定了DispatcherServlet所以所有的請求都會交給DispatcherServlet去處理,而當它處理不了的時候,就需要交給默認的servlet處理
    web階段是由于Tomcat中設定為默認servlet,而mvc中設定為DispatcherServlet,起沖突時,就地原則,就使用DispatcherServlet,所以需要在開啟該標簽,當DispatcherServlet處理不了時,交給默認的去處理,若也處理不了就404了-->
    <mvc:default-servlet-handler/>
    <!--檔案上傳決議類 id必須是multipartResolver-->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"></bean>
    <!--視圖控制器,當視圖只配置一個跳轉頁面的時候可以用 path路徑,view-name映射路徑-->
    <mvc:view-controller path="/in" view-name="index.jsp"/>
    <mvc:view-controller path="/" view-name="in.html"/>
</beans>

2.3.4撰寫mybatis組態檔

<?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>
    <!--設定日志-->
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>
    <!--配置插件,分頁查詢-->
    <plugins>
        <plugin interceptor="com.github.pagehelper.PageInterceptor"/>
    </plugins>
?
</configuration>

2.3.5配置web.xml檔案

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >
?
<web-app>
  <display-name>Archetype Created Web Application</display-name>
  <!--加載applicationContext檔案-->
    <!--  加載全域初始化引數,讓服務器啟動就加載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>
  <!--設定字符編碼-->
  <filter>
    <filter-name>CharacterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <!--設定請求編碼utf-8編碼-->
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
    <!--設定回應編碼為utf-8-->
    <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>
  <!--配置HiddenHttpMethodFilter以使用put和delete請求-->
  <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>
  <!--配置springMVC前段控制器,對瀏覽器請求統一處理-->
  <servlet>
    <servlet-name>SpringMVC</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!--配置springMVC的組態檔的位置和名稱-->
    <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>SpringMVC</servlet-name>
    <!--/的意思就是接受除了.jsp以外的所有請求;/*表示所有包括.jsp-->
    <url-pattern>/*</url-pattern>
  </servlet-mapping>
</web-app>
到這里基本的框架就搭好了,接下來就是業務代碼的撰寫了

三.業務代碼

3.1撰寫前端

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>你好</h1>
<a href="user/2">查詢</a><br/>
<hr/>
<form action="user" method="post">
    用戶名<input type="text" name="username" /><br/>
    密碼<input type="text" name="password" /><br/>
    <input type="submit" value="添加用戶" /><br/>
</form><hr/>
<form action="user/20" method="post">
    <input type="hidden" name="_method" value="delete">
    <input type="submit" value="洗掉用戶" /><br/>
</form><hr/>
</body>
</html>

3.2后端代碼

3.2.1基本結構

  • 一般要將dao介面和mapper檔案放在同一目錄下才行;但為了方便管理將其放在resource目錄下面

3.2.2 Controller

/**
 * (User)表控制層
 *
 * @author makejava
 * @since 2021-12-27 14:38:49
 */
@RestController
@RequestMapping("user")
public class UserController {
    /**
     * 服務物件
     */
    @Resource
    private UserService userService;
?
   /*
     * 分頁查詢
     * @return 查詢結果
     */
    @GetMapping
    public List<User> queryByPage() {
        //使用分頁查詢插件,下面的引數分別是頁數和每頁展示數量
        PageHelper.startPage(2,2);
        return userService.queryByPage();
    }
?
    /**
     * 通過主鍵查詢單條資料
     *
     * @param id 主鍵
     * @return 單條資料
     */
    @GetMapping("{id}")
    public ResponseEntity<User> queryById(@PathVariable("id") Integer id) {
        return ResponseEntity.ok(this.userService.queryById(id));
    }
?
    /**
     * 新增資料
     *
     * @param user 物體
     * @return 新增結果
     */
    @PostMapping
    public ResponseEntity<User> add(User user) {
        return ResponseEntity.ok(this.userService.insert(user));
    }
?
    /**
     * 編輯資料
     *
     * @param user 物體
     * @return 編輯結果
     */
    @PutMapping
    public ResponseEntity<User> edit(User user) {
        return ResponseEntity.ok(this.userService.update(user));
    }
?
    /**
     * 洗掉資料
     *
     * @param id 主鍵
     * @return 洗掉是否成功
     */
    @DeleteMapping
    public ResponseEntity<Boolean> deleteById(Integer id) {
        return ResponseEntity.ok(this.userService.deleteById(id));
    }
?
}

?

3.2.3 Service和serviceImpl

/**
 * (User)表服務介面
 *
 * @author makejava
 * @since 2021-12-27 14:39:23
 */
public interface UserService {

    /**
     * 分頁查詢
     * @return
     */
    List<User> queryByPage();

    /**
     * 通過ID查詢單條資料
     *
     * @param id 主鍵
     * @return 實體物件
     */
    User queryById(Integer id);

     /**
     * 新增資料
     *
     * @param user 實體物件
     * @return 實體物件
     */
    User insert(User user);

    /**
     * 修改資料
     *
     * @param user 實體物件
     * @return 實體物件
     */
    User update(User user);

    /**
     * 通過主鍵洗掉資料
     *
     * @param id 主鍵
     * @return 是否成功
     */
    boolean deleteById(Integer id);

}

serviceImpl

/**
 * (User)表服務實作類
 *
 * @author makejava
 * @since 2021-12-27 14:39:24
 */
@Service("userService")
public class UserServiceImpl implements UserService {
    @Resource
    private UserDao userDao;

    @Override
    public List<User> queryByPage() {
        return userDao.queryPage();
    }

    /**
     * 通過ID查詢單條資料
     *
     * @param id 主鍵
     * @return 實體物件
     */
    @Override
    public User queryById(Integer id) {
        return this.userDao.queryById(id);
    }

    /**
     * 新增資料
     *
     * @param user 實體物件
     * @return 實體物件
     */
    @Override
    @Transactional(rollbackFor=Exception.class)
    public User insert(User user) {
        userDao.insert(user);
        int i = 12/0;
        return user;
    }

    /**
     * 修改資料
     *
     * @param user 實體物件
     * @return 實體物件
     */
    @Override
    public User update(User user) {
        this.userDao.update(user);
        return this.queryById(user.getId());
    }

    /**
     * 通過主鍵洗掉資料
     *
     * @param id 主鍵
     * @return 是否成功
     */
    @Override
    public boolean deleteById(Integer id) {
        return this.userDao.deleteById(id) > 0;
    }
}

3.2.4 dao介面

/**
 * (User)表資料庫訪問層
 *
 * @author makejava
 * @since 2021-12-27 14:40:01
 */
public interface UserDao {

    /**
     * 通過ID查詢單條資料
     *
     * @param id 主鍵
     * @return 實體物件
     */
    User queryById(Integer id);

    /**
     * 查詢指定行資料
     *
     * @param user     查詢條件
     * @param pageable 分頁物件
     * @return 物件串列
     */
    List<User> queryAllByLimit(User user, @Param("pageable") Pageable pageable);

    /**
     * 統計總行數
     *
     * @param user 查詢條件
     * @return 總行數
     */
    long count(User user);

    /**
     * 新增資料
     *
     * @param user 實體物件
     * @return 影響行數
     */
    int insert(User user);

    /**
     * 批量新增資料(MyBatis原生foreach方法)
     *
     * @param entities List<User> 實體物件串列
     * @return 影響行數
     */
    int insertBatch(@Param("entities") List<User> entities);

    /**
     * 修改資料
     *
     * @param user 實體物件
     * @return 影響行數
     */
    int update(User user);

    /**
     * 通過主鍵洗掉資料
     *
     * @param id 主鍵
     * @return 影響行數
     */
    int deleteById(Integer id);

    List<User> queryPage();
}

3.2.5 mapper檔案

<?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">
<mapper namespace="com.yang.mapper.UserDao">
?
    <resultMap type="com.yang.bean.User" id="UserMap">
        <result property="id" column="id" jdbcType="INTEGER"/>
        <result property="username" column="username" jdbcType="VARCHAR"/>
        <result property="password" column="password" jdbcType="VARCHAR"/>
        <result property="email" column="email" jdbcType="VARCHAR"/>
    </resultMap>
?
    <!--分頁查詢 回傳型別還可以是user,mybatis會自動把查到的物件封裝到集合中-->
    <select id="queryPage" resultMap="UserMap">
        select
          id, username, password, email
        from user
    </select>
    <!--查詢單個-->
    <select id="queryById" resultMap="UserMap">
        select
          id, username, password, email
        from user
        where id = #{id}
    </select>
?
    <!--查詢指定行資料-->
    <select id="queryAllByLimit" resultMap="UserMap">
        select
        id, username, password, email
        from user
        <where>
            <if test="id != null">
                and id = #{id}
            </if>
            <if test="username != null and username != ''">
                and username = #{username}
            </if>
            <if test="password != null and password != ''">
                and password = #{password}
            </if>
            <if test="email != null and email != ''">
                and email = #{email}
            </if>
        </where>
        limit #{pageable.offset}, #{pageable.pageSize}
    </select>
?
    <!--統計總行數-->
    <select id="count" resultType="java.lang.Long">
        select count(1)
        from user
        <where>
            <if test="id != null">
                and id = #{id}
            </if>
            <if test="username != null and username != ''">
                and username = #{username}
            </if>
            <if test="password != null and password != ''">
                and password = #{password}
            </if>
            <if test="email != null and email != ''">
                and email = #{email}
            </if>
        </where>
    </select>
?
    <!--新增所有列-->
    <insert id="insert" keyProperty="id" useGeneratedKeys="true">
        insert into user(username, password, email)
        values (#{username}, #{password}, #{email})
    </insert>
?
    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
        insert into user(username, password, email)
        values
        <foreach collection="entities" item="entity" separator=",">
            (#{entity.username}, #{entity.password}, #{entity.email})
        </foreach>
    </insert>
?
    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
        insert into user(username, password, email)
        values
        <foreach collection="entities" item="entity" separator=",">
            (#{entity.username}, #{entity.password}, #{entity.email})
        </foreach>
        on duplicate key update
        username = values(username),
        password = values(password),
        email = values(email)
    </insert>
?
    <!--通過主鍵修改資料-->
    <update id="update">
        update user
        <set>
            <if test="username != null and username != ''">
                username = #{username},
            </if>
            <if test="password != null and password != ''">
                password = #{password},
            </if>
            <if test="email != null and email != ''">
                email = #{email},
            </if>
        </set>
        where id = #{id}
    </update>
?
    <!--通過主鍵洗掉-->
    <delete id="deleteById">
        delete from user where id = #{id}
    </delete>
?
</mapper>

四 測驗

  • 新建一個Tomcat服務,將包部署到Tomcat就可以測驗啦

  • 頁面不好看自己優化吧

五 一些問題

  1. pom檔案中的依賴都要用到,少了會啟動失敗

  2. mybatis和spring可以全部整合到一起;但是不方便維護

  3. 在MVC的掃描中只能掃描controller;否則會導致配置事務不起作用

 <!--掃描Controller-->
    <context:component-scan base-package="com.yang">
        <context:include-filter type="annotation"
                                expression="org.springframework.stereotype.Controller" />
        <!--下面這個是防止事務沒起作用,spring.xml的父容器先于Servlet的子容器生效,將Service提前加載了,這里不用再進行加載裝配;或者像上面的配置一樣,直接指定只掃controller-->
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service" />
    </context:component-scan>

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/396175.html

標籤:其他

上一篇:測驗工程師,跳槽漲了4k,年總包算下來還降薪了?

下一篇:Java畢業設計:健身房資訊網站(java+springboot+vue+mysql+maven)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more