天天看點

JSP的一些需求執行個體一、判斷UA跳轉頁面二、Java資料庫連接配接

一、判斷UA跳轉頁面

UserAgent(UA)

UserAgent是指浏覽器,它的資訊包括硬體平台、系統軟體、應用軟體和使用者個人偏好,通過UA可以分析出浏覽器名稱、浏覽器版本号、渲染引擎、作業系統。

知識擴充:

為什麼所有主要浏覽器的 User-Agent 都是 Mozilla/x.0 開頭?

【果言科技】 Netscape :曾經的瀏覽器霸主,是如何衰落的?

區分:

一層:區分PC端 Or 移動端

二層:PC端下區分IE、Chrome、Firefox... || 移動端下區分Android、IOS...

——方法

用到java.util.regex包下兩個重要的類Pattern和Matcher

  • Pattern:一個Pattern是一個正規表達式編譯後的表現模式。
  • Matcher:一個Matcher對象是一個狀态機器,它依據Pattern對象作為比對模式對字元串進行比對檢查。

    參考:Java正規表達式Pattern和Matcher

——執行個體代碼(判斷Android還是iphone,都false的時候是PC)

<%@page import="java.util.regex.Matcher"%>
<%@page import="java.util.regex.Pattern"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<%! //加!表示java聲明
//比對字元串
String androidReg = "\\bandroid|Nexus\\b";
String iosReg = "ip(hone|od|ad)";

//由 CASE_INSENSITIVE标志啟用時,不區分大小寫的比對将以符合 Unicode Standard 的方式完成
Pattern androidPat = Pattern.compile(androidReg, Pattern.CASE_INSENSITIVE);
Pattern iosPat = Pattern.compile(iosReg, Pattern.CASE_INSENSITIVE);

public boolean likeAndroid(String userAgent) {
    if(null == userAgent) {
        userAgent = "";
    }
    //比對
    Matcher matcherAndroid = androidPat.matcher(userAgent);
    if(matcherAndroid.find()){
        return true;
    } else {
        return false;
    }
}

public boolean likeIOS(String userAgent){
    if(null == userAgent){
        userAgent = "";
    }
    //比對
    Matcher matcherIOS = iosPat.matcher(userAgent);
    if(matcherIOS.find()){
        return true;
    } else {
        return false;
    }
}
%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

String userAgent = request.getHeader("USER-AGENT").toLowerCase();
System.out.println("userAgent: "+userAgent);
if(null == userAgent){
    userAgent = "";
}
if(likeAndroid(userAgent)){
    System.out.println("likeAndroid: "+true);
    //安卓跳百度
    response.sendRedirect("https://www.baidu.com");
    return;
} else if(likeIOS(userAgent)){
    System.out.println("likeIOS: "+true);
    //IOS跳谷歌中文
    response.sendRedirect("https://www.google.com/?hl=zh_cn");
    return;
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>判斷UA跳轉</title>
</head>
<body>
    <div class="wrap">
         //PC下顯示這個
        <h1>這是一個判斷UA跳轉的頁面</h1>
    </div>
</body>
</html>           

複制

二、Java資料庫連接配接

Java Database Connectivity,簡稱JDBC

易出錯點

  • 下載下傳 mysql-connector-java-5.1.39-bin.jar 拷貝到 tomcat 下 lib 目錄
  • 下載下傳jakarta-taglibs-standard-1.1.2.zip 包并解壓,将jakarta-taglibs-standard-1.1.2/lib/下的兩個jar檔案:standard.jar和jstl.jar檔案拷貝到/WEB-INF/lib/下

    官方下載下傳位址:http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/

  • 在web.xml添加以下配置(該檔案在/WEB-INF/下)
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
        http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <jsp-config>
    <taglib>
    <taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>
    <taglib-location>/WEB-INF/fmt.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jstl/fmt-rt</taglib-uri>
    <taglib-location>/WEB-INF/fmt-rt.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
    <taglib-location>/WEB-INF/c.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jstl/core-rt</taglib-uri>
    <taglib-location>/WEB-INF/c-rt.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jstl/sql</taglib-uri>
    <taglib-location>/WEB-INF/sql.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jstl/sql-rt</taglib-uri>
    <taglib-location>/WEB-INF/sql-rt.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jstl/x</taglib-uri>
    <taglib-location>/WEB-INF/x.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jstl/x-rt</taglib-uri>
    <taglib-location>/WEB-INF/x-rt.tld</taglib-location>
    </taglib>
    </jsp-config>
</web-app>           

複制

其他參考:http://www.runoob.com/jsp/jsp-database-access.html