Bootstrap 是流行的 HTML、CSS 和 JS 框架,用於開發響應式佈局、移動設備優先的 WEB 項目。源自於twiteer內部的開發框架。css
當前(2019-05)最新版本是v3.3.7。html
學習初衷: 不能每來一個項目都重頭開始吧,但願積累框架,節省時間,快速上手,儘快出效果。不用太花哨,但也不能太難看。java
選一個簡單易上手的框架,那就選這個bootstrap吧。mysql
沒使用樣式:jquery
使用bootstrap樣式:sql
本身寫的樣式:數據庫
使用bootstrap樣式:bootstrap
做爲後端開發人員,咱們不須要懂太多的前端美工知識,可是又不想作出來太難看,在保證快的基礎上,出一個還能夠的界面。後端
工具:Eclipse Java Photon 4.8.0
說明: 網上已經不少這類介紹了,這裏更多的是作一個整合。並把本身學習過程的一些步驟關鍵點記錄下來,看官能夠挑着看。
一:配置開發環境
1.新增動態網頁庫以及配置tomcat
默認eclipse已安裝,但默認是沒有動態網頁的,須要安裝配置下。
參考:https://blog.csdn.net/weixin_40626699/article/details/83341560
2. 新建一個動態Web項目
參考:http://www.javashuo.com/article/p-mhpfhbkj-ew.html
若是報錯:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
那麼須要配置tomcat,參考:http://www.cnblogs.com/herd/p/9548592.html
而後關聯到項目中,參考:http://www.javashuo.com/article/p-zvrnbhbv-dn.html
若是這個過程尚未找到可選的tomcat配置,則能夠參考下圖下載配置一個:
3. 項目中引入bootstrap
參考:引入BootStrap開發一個JSP項目
https://cloud.tencent.com/developer/article/1343258
4. 實例: 寫一個簡單的帶登陸功能的首頁
參考:
https://cloud.tencent.com/developer/article/1343207
http://www.javashuo.com/article/p-rulhvmcq-do.html
視頻教程:https://study.163.com/course/courseLearn.htm?courseId=1002923012#/learn/video?lessonId=1003312146&courseId=1002923012
1) Login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!DOCTYPE html> <html> <head> <!-- 這裏沒啥用,前面已經定義過了,只是好習慣留着 --> <meta charset="UTF-8"> <!-- 設置爲設備的寬度,高端爲1:1。以便適應手機端瀏覽。--> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <title>Login</title> <link rel="stylesheet" type="text/css" href="<%=basePath %>/bootstrapcss/css/bootstrap.min.css" > <link rel="stylesheet" href="/bootstrap_study/myCss/login.css"> <!-- jQuery文件。務必在bootstrap.min.js 以前引入 --> <script src="//cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script> <!-- 最新的 Bootstrap 核心 JavaScript 文件 --> <script src="//cdn.bootcss.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> </head> <body> <div class="container"> <form action="Login_Check.jsp" method="post" class="form-horizontal"> <filedset> <legend><lable> <span class="glyphicon glyphicon-user"></span> User login </lable></legend> <div class="row"> <!--柵格系統,每row行共12列,分個3div,每1,3個div佔3列,第2個div則佔5列,即3列+5列+4列=12列--> <div class="col-sm-3"><span class="glyphicon glyphicon-user"></span> UserName: </div> <div class="col-sm-5"><input type="text" name="ID" placeholder="Plese input your username" class="form-control"> </div> <div class="col-sm-4"></div> </div> <div class="row"> <div class="col-sm-3"><span class="glyphicon glyphicon-lock"></span> Password: </div> <div class="col-sm-5"><input type="password" name="PWD" placeholder="Plese input your password" class="form-control"></div> <div class="col-sm-4" ></div> </div> <div class="row"> <div class="col-sm-5 col-sm-offset-3"> <input type="submit" value="Login" class="btn btn-xs btn-primary"> <input type="reset" value="Reset" class="btn btn-xs btn-warning"> </div> </div> </filedset> </form> </div> </body> </html>
2) Login_check.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.io.*" %> <%@ page import="java.util.*" %> <%@ page import="java.sql.*" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </script> </head> <body> <% Class.forName("com.mysql.jdbc.Driver"); System.out.println("建立數據庫驅動成功!"); //DataSource ds = null; String dbUrl="jdbc:mysql://IP:端口/數據庫名"; String Username="帳號"; String Password="密碼"; Class.forName("com.mysql.jdbc.Driver").newInstance(); // Connection conn = DriverManager.getConnection(dbUrl,Username,Password);//鏈接 // Statement stmt=conn.createStatement();//會話 // ResultSet rst=stmt.executeQuery("select * from yourTable"); String ID=null; String PWD=null; //while(rst.next()) { //ID=rst.getString("yourColumnName"); //PWD=request.getParameter("PWD"); } ID="1"; if(ID.equals(ID)) { %> <jsp:forward page="Login_Success.jsp"> <jsp:param name="uname" value="<%=ID%>"/> </jsp:forward> <% }else{ %> <jsp:forward page="Login_Failure.html"/> <% } %> </body> </html>
3) Login_sucess.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <link rel="stylesheet" type="text/css" href="<%=basePath %>/bootstrapcss/css/bootstrap.min.css" > </head> <body> <filedset> <legend><lable> <span class="glyphicon glyphicon-hourglass"></span> Welcome </lable></legend> </filedset> Welcome. <%="ID"%> </body> </html>
4) login_failure.html
略
1. JSP頁面編碼
默認項目沒配置狀況下,新建的頁面默認是GBK,部署後可能顯示亂碼,那麼須要在頁面設置一下爲UTF-8。
1) <%@ page contentType="text/html; charset=UTF-8" %>
那不能每一個頁面都設置一下吧,那麼對整個eclipse一塊兒設置:
2) Windows---->Preferences---->JSP--->把這個目錄下的Encoding選爲你要設置的編碼UTF-8。
2. JSP獲取當前項目路徑
引用css時,須要考慮開發環境與部署環境的路徑差別,所以不想把項目路徑寫死到代碼中。能夠經過如下代碼獲取路徑並配置。
在頁面開頭部分添加:
<% String path = request.getContextPath(); String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort() + path + "/"; %>
說明:獲得工程名:request.getContextPath()
3. 引入bootstrap配置
<head>
<link rel="stylesheet" type="text/css" href="<%=basePath %>/bootstrapcss/css/bootstrap.min.css" >
</head>
注意:這裏的<%=basePath %>就是上述獲取到的項目路徑,固然測試的時候你能夠寫死項目的名字
4. bootstrap.min.css與bootstrap.css區別
bootstrap.css 是未壓縮的,bootstrap.min.css是壓縮過的。通常狀況下,未壓縮的用於開發環境,若是程序出錯方便調試。而壓縮過的用生生產環境,大大減小網絡數據傳輸量,便之更快更節約流量……其它 .min.css 和 .min.js 文件同理。
5. <div class="container">
container容器,大概是佔屏幕寬度的80%,而後居中對齊。
因此建議,在最外層,能夠放在容器中。
6. <meta name="viewport" content="width=device-width,initial-scale=1.0">
https://blog.csdn.net/u012402190/article/details/70172371
7. form表單中,分組歸類fieldset
fieldset:對錶單進行分組,一個表單能夠有多個fieldset。
legend:說明每組的內容描述。
7. 柵格佈局col-xs-*、col-sm-*、col-md-*、col-lg-*
bootstrap的柵格佈局,默認會將每行的row分爲12列
col是column簡寫:列;
xs是maxsmall簡寫:超小, sm是small簡寫:小, md是medium簡寫:中等, lg是large簡寫:大;
-* 表示佔列數,即佔每行row分12列柵格系統比,如.col-md-3 在中等屏幕中佔3列也就是1/4(12/3列=4個div);
.col-xs-* 超小屏幕如手機 (<768px)時使用;
.col-sm-* 小屏幕如平板 (768px ≤ 寬度 <992px)時使用;
.col-md-* 中等屏幕如普通顯示器 (992px ≤ 寬度 < 1200px)時使用;
.col-lg-* 大屏幕如大顯示器 (≥1200px)時使用。
--能夠混合使用,t以適應不一樣的屏幕,如:
<div class="col-xs-12 col-sm-9 col-md-6 col-lg-3">測試</div>
<!--
當屏幕尺寸:
小於 768px 的時候,用 col-xs-12 類對應的樣式;
在 768px 到 992px 之間的時候,用 col-sm-9 類對應的樣式;
在 992px 到 1200px 之間的時候,用 col-md-6 類對應的樣式;
大於 1200px 的時候,用 col-lg-3 類對應的樣式;
-->