• <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>

    springboot使用PageHelper分頁插件和驗證碼功能

    在做web項目標時辰,一般城市有瀏覽器顯示一行行數據的問題,傳統的代碼也可以實現分頁,可是很繁瑣,今天給大師說一下若何利用PageHelper分頁插件輕松實現分頁結果。

    在登錄頁面一般城市有輸入驗證碼功能,在這一路跟大師說一下。

    東西/原料

    • 電腦
    • eclipse等其他軟件開辟東西
    • 利用springboot框架開辟的工程項目

    集當作PageHelper分頁插件

    1. 1

      雙擊打開pom文件

    2. 2

      在pom文件中添加分頁依靠,依靠如下:

      <!-- 分頁插件 -->

      <dependency>

      <groupId>com.github.pagehelper</groupId>

      <artifactId>pagehelper</artifactId>

      <version>4.1.0</version>

      </dependency>

    3. 3

      編寫分頁bean類,注重:這個類必然要放在springboot啟動類地點位置的平級或子級的包中,包管能springboot掃描到。

      import java.util.Properties;

      import org.apache.ibatis.plugin.Interceptor;

      import org.mybatis.spring.SqlSessionFactoryBean;

      import org.springframework.context.annotation.Bean;

      import org.springframework.context.annotation.Configuration;

      import com.github.pagehelper.PageHelper;

      @Configuration

      public class PageHelperBean {

      @Bean

          PageHelper pageHelper(){

              //分頁插件

              PageHelper pageHelper = new PageHelper();

              Properties properties = new Properties();

              properties.setProperty("reasonable", "true");

              properties.setProperty("supportMethodsArguments", "true");

              properties.setProperty("returnPageInfo", "check");

              properties.setProperty("params", "count=countSql");

              pageHelper.setProperties(properties);

              //添加插件

              new SqlSessionFactoryBean().setPlugins(new Interceptor[]{pageHelper});

              return pageHelper;

          }

      }

    4. 4

      在service層挪用分頁

    5. 5

      在controller層挪用分頁

      在這要挪用兩個service,一個是上一步調的分頁查詢,還有就是要經由過程service毗連dao層毗連數據庫,count出總條數。

      最后return PageBean<實體類> 就可以了,經由過程@ResponseBody可以直接把數據轉換當作json格局的字符串,被前臺解析識別,顯示在頁面

    集當作kaptcha驗證碼

    1. 1

      打開pom文件,添加如下的依靠:

      <!-- https://mvnrepository.com/artifact/com.github.penggle/kaptcha -->  

      <dependency>  

          <groupId>com.github.penggle</groupId>  

          <artifactId>kaptcha</artifactId>  

          <version>2.3.2</version>  

      </dependency>  

    2. 2

      在resources中建立一個mykaptcha.xml文件

    3. 3

      mykaptcha.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"

      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

      <bean id="captchaProducer" class="com.google.code.kaptcha.impl.DefaultKaptcha">

      <property name="config">

      <bean class="com.google.code.kaptcha.util.Config">

      <constructor-arg type="java.util.Properties">

      <props>

      <prop key = "kaptcha.border ">yes</prop>

      <prop key="kaptcha.border.color">105,179,90</prop>

      <prop key="kaptcha.textproducer.font.color">blue</prop>

      <prop key="kaptcha.image.width">120</prop>

      <prop key="kaptcha.image.height">60</prop>

      <prop key="kaptcha.textproducer.font.size">40</prop>

      <prop key="kaptcha.session.key">code</prop>

      <prop key="kaptcha.textproducer.char.length">4</prop>

      <prop key="kaptcha.textproducer.font.names">宋體,楷體,微軟雅黑</prop>

      <prop key="kaptcha.textproducer.char.string">0123456789ABCEFGHIJKLMNOPQRSTUVWXYZ</prop>

      <prop key="kaptcha.obscurificator.impl">com.google.code.kaptcha.impl.WaterRipple</prop>

      <prop key="kaptcha.noise.color">black</prop>

      <prop key="kaptcha.noise.impl">com.google.code.kaptcha.impl.DefaultNoise</prop>

      <prop key="kaptcha.background.clear.from">185,56,213</prop>

      <prop key="kaptcha.background.clear.to">white</prop>

      <prop key="kaptcha.textproducer.char.space">3</prop>

      </props>

      </constructor-arg>

      </bean>

      </property>

      </bean>

      </beans>

    4. 4

      在springboot啟動類上加一個注解:

      @ImportResource(locations={"classpath:mykaptcha.xml"}) 

    5. 5

      controller中利用:

      @Autowired  

      private DefaultKaptcha defaultKaptcha; 

      /**

      * 生當作驗證碼

      * @param httpServletRequest

      * @param httpServletResponse

      * @throws Exception

      */

      @RequestMapping("/defaultKaptcha")  

          public void defaultKaptcha(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws Exception{  

                  byte[] captchaChallengeAsJpeg = null;    

                   ByteArrayOutputStream jpegOutputStream = new ByteArrayOutputStream();    

                   try {    

                   //出產驗證碼字符串并保留到session中  

                   String createText = defaultKaptcha.createText();  

                   httpServletRequest.getSession().setAttribute("vrifyCode", createText);  

                   //利用出產的驗證碼字符串返回一個BufferedImage對象并轉為byte寫入到byte數組中  

                   BufferedImage challenge = defaultKaptcha.createImage(createText);  

                   ImageIO.write(challenge, "jpg", jpegOutputStream);  

                   } catch (IllegalArgumentException e) {    

                       httpServletResponse.sendError(HttpServletResponse.SC_NOT_FOUND);    

                       return;    

                   }   

                   //界說response輸出類型為image/jpeg類型,利用response輸出流輸出圖片的byte數組  

                   captchaChallengeAsJpeg = jpegOutputStream.toByteArray();    

                   httpServletResponse.setHeader("Cache-Control", "no-store");    

                   httpServletResponse.setHeader("Pragma", "no-cache");    

                   httpServletResponse.setDateHeader("Expires", 0);    

                   httpServletResponse.setContentType("image/jpeg");    

                   ServletOutputStream responseOutputStream =    

                   httpServletResponse.getOutputStream();    

                   responseOutputStream.write(captchaChallengeAsJpeg);    

                   responseOutputStream.flush();    

                   responseOutputStream.close();    

          }

    6. 6

      HTML頁面利用:

    7. 7

      驗證碼驗證是否準確:

      表單提交到后臺,與后臺存到session中的驗證碼信息做比力

    • 發表于 2018-05-23 00:00
    • 閱讀 ( 745 )
    • 分類:其他類型

    你可能感興趣的文章

    相關問題

    0 條評論

    請先 登錄 后評論
    聯系我們:uytrv@hotmail.com 問答工具
  • <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>
    久久久久精品国产麻豆