主頁 > 前端設計 > 新手學Html之JSP基礎語法——入門(二)

新手學Html之JSP基礎語法——入門(二)

2020-09-14 10:46:07 前端設計

JSP基礎語法

JSP注釋

comment.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2     pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>Insert title here</title> 8 </head> 9 <body>10     <!-- 這個注釋客戶端可以看見 -->11     <%-- jsp中的注釋,客戶端無法看見 --%>12     <%13         //java中的單行注釋,客戶端無法看見14         /*15             java中的多行注釋,客戶端無法看見16         */17     %>18 </body>19 </html>
View Code

Scriptlet

scriptlet_demo01.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2     pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>Insert title here</title> 8 </head> 9 <body>10     <%11         //定義區域變數,撰寫陳述句12         int x = 10;13         String info = "www.mldnjava.cn";14         out.println("<h2>x="+x+"</h2>");15         out.println("<h2>info="+info+"</h2>");16     %>17 </body>18 </html>
View Code

scriptlet_demo02.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2     pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>Insert title here</title> 8 </head> 9 <body>10     <!-- 定義全域變數,方法,類 -->11     <%! public static final String INFO = "www.mldnjava.cn"; %>12     <!-- 用于輸出一個變數或一個具體的常量 -->13     <%=1 %><br/>14     <%=INFO %>15 </body>16 </html>
View Code

盡量不要使用system.out.print();進行輸出

input_table_value.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2     pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>Insert title here</title> 8 </head> 9 <body>10     <form action="print_table.jsp" method="post">11         <table border="1" width="100%">12             <tr>13                 <td>輸入表格的行數:</td>14                 <td><input type="text" name="row"></td>15             </tr>16             <tr>17                 <td>輸入表格的列數:</td>18                 <td><input type="text" name="col"></td>19             </tr>20             <tr>21                 <td>22                     <input type="submit" value="顯示">23                     <input type="reset" value="重置">24                 </td>25             </tr>26         </table>27     </form>28 </body>29 </html>
View Code

print_table.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2     pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>Insert title here</title> 8 </head> 9 <body>10     <%11         int rows = 0;12         int cols = 0;13         //讀取input_table_value.jsp   post的row和col,將之強制轉換為int型別14         try{15             rows = Integer.parseInt(request.getParameter("row"));16             cols = Integer.parseInt(request.getParameter("col"));17         }catch(Exception e){}18         if(rows>0&&cols>0){19     %>20             <table border="1" width="100%">21             <%22                 for(int x = 1;x <= rows; x++){23             %>24                 <tr>25             <%26                     for(int y = 1; y <= cols; y++){ 27             %>28                         <td> <%=x%> * <%=y%> = <%=(x * y)%></td>29             <%30                     }31             %>32                 </tr>33             <%34                 }35             %>36             </table>37             <a href="input_table_value.jsp"><input type="button" value="回傳"></a>38     <%39         }else{40     %>41             <%--輸入不符合時彈出對話框指示,并自動回傳到輸入數值處 --%>42             <script type="text/javascript" language="javascript">43                 alert("輸入不合法!");44                 /* alert(document.location === window.location);//true */45                 //window.location.href="https://www.cnblogs.com/dream-by-dream/p/input_table_value.jsp";46                 //document.location.href="https://www.cnblogs.com/dream-by-dream/p/input_table_value.jsp";47                 //以上兩種好像等價,待探索48                 window.document.location.href="input_table_value.jsp";49             </script>50     <%51             }52     %>53 </body>54 </html>
View Code

scriptlet標簽

此標簽具有和<% %>一樣的效果,更加美觀一些,無強制要求

scriptlet_tag.jsp

1 <jsp:scriptlet>2     String url = "www.MLDNJAVA.cn";3 </jsp:scriptlet>4 <h2><%=url %></h2>
View Code

page指令

設定頁面的MIME、檔案編碼

page_demo01.jsp

 1 <%@ page language="java" contentType="application/msword; charset=UTF-8" 2     pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>Insert title here</title> 8 </head> 9 <body>10     <!-- pageEncoding是JSP檔案本身的編碼,contentType是服務器發送給客戶端的內容編碼 -->11     12     <!--        txt     text/plain -->13     <!--        doc     application/msword -->14     <!--        png     image/png -->15     <!--    jpg/jpeg    image/jpeg -->16     <!--    htm/html    text/html-->17     <table border="1">18         <%19             //指定檔案下載后的保存名稱是mldn.doc20             response.setHeader("Content-Disposition", "attachment;filename=mldn.doc");21         %>22         <tr><td>歡迎大家</td></tr>23         <tr><td>歡迎大家!!</td></tr>24         <tr><td>歡迎大家!!!</td></tr>25     </table>26 </body>27 </html>
View Code

錯誤頁的設定

服務器端跳轉

show_error.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2     pageEncoding="UTF-8"%> 3 <%@ page errorPage="error.jsp" %> 4 <%-- 出現錯誤將會跳轉到error.jsp --%> 5 ? 6 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 7 <html> 8 <head> 9 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">10 <title>Insert title here</title>11 </head>12 <body>13     <%14         int result = 10 / 0;15     %>16     <%=result %>17 </body>18 </html>
View Code

error.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2     pageEncoding="UTF-8"%> 3 <%@ page isErrorPage="true" %> 4 <%-- 表示出現錯誤該頁面可以處理錯誤 --%> 5 <% response.setStatus(200); %> 6 <%-- 設定了200的HTTP狀態碼,表示本頁沒有錯誤,防止tomcat也認為本頁出現了錯誤,從而無法顯示 --%> 7 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 8 <html> 9 <head>10 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">11 <title>Insert title here</title>12 </head>13 <body>14     <h1>程式出現了錯誤!</h1>15 </body>16 </html>
View Code

資料庫連接操作

page指令使用import匯入所需要的Java開發包

mldn.sql

 1 /* 2 Navicat MySQL Data Transfer 3 ? 4 Source Server         : myproject 5 Source Server Version : 50562 6 Source Host           : localhost:3306 7 Source Database       : mldn 8 ? 9 Target Server Type    : MYSQL10 Target Server Version : 5056211 File Encoding         : 6500112 ?13 Date: 2019-04-27 02:23:4814 */15 ?16 SET FOREIGN_KEY_CHECKS=0;17 ?18 -- ----------------------------19 -- Table structure for emp20 -- ----------------------------21 DROP TABLE IF EXISTS `emp`;22 CREATE TABLE `emp` (23   `empno` int(4) NOT NULL,24   `ename` varchar(10) DEFAULT NULL,25   `job` varchar(9) DEFAULT NULL,26   `hiredate` date DEFAULT NULL,27   `sal` float(7,2) DEFAULT NULL,28   PRIMARY KEY (`empno`)29 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;30 ?31 -- ----------------------------32 -- Records of emp33 -- ----------------------------34 INSERT INTO `emp` VALUES ('6060', '李興華', '經理', '2001-09-16', '2000.30');35 INSERT INTO `emp` VALUES ('7369', '董鳴楠', '銷售', '2003-10-09', '1500.90');36 INSERT INTO `emp` VALUES ('7698', '張惠', '銷售', '2005-03-12', '800.00');37 INSERT INTO `emp` VALUES ('7762', '劉明', '銷售', '2005-03-09', '1000.00');38 INSERT INTO `emp` VALUES ('7782', '楊軍', '分析員', '2005-01-12', '2500.00');39 INSERT INTO `emp` VALUES ('7839', '王月', '經理', '2006-09-01', '2500.00');40 INSERT INTO `emp` VALUES ('8964', '李祺', '分析員', '2003-10-01', '3000.00');
View Code

將mysql的驅動"mysql-connector-java-5.1.47-bin.jar"復制到Tomcat\lib 目錄中,重啟服務器

使用JSP列出emp表資料

驅動程式使用 com.mysql.jdbc.Driver

list_emp.jsp

 1 <%@page import="org.apache.tomcat.dbcp.dbcp2.PStmtKey"%> 2 <%@page import="com.sun.crypto.provider.RSACipher"%> 3 <%@ page language="java" contentType="text/html; charset=UTF-8" 4     pageEncoding="UTF-8"%> 5 <%@ page import="java.sql.*" %> 6 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 7 <html> 8 <head> 9 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">10 <title>Insert title here</title>11 </head>12 <body>13 <%!14     //定義資料庫驅動程式15     public static final String DBDRIVER = "com.mysql.jdbc.Driver";16     //資料庫連接地址17     public static final String DBURL = "jdbc:mysql://localhost:3306/mldn";18     public static final String DBUSER = "root";19     public static final String DBPASS = "2580";20 %>21 <%22     Connection conn = null;                 //宣告資料庫連接物件23     PreparedStatement pstmt = null;         //宣告資料庫操作24     ResultSet rs = null;                    //宣告資料庫結果集25 %>26 <%27 try{                                        //資料庫操作中會出現例外,所以要使用try...catch處理28     Class.forName(DBDRIVER);                //資料庫驅動程式加載29     conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS);//取得資料庫連接30     String sql = "SELECT empno,ename,job,sal,hiredate FROM emp";31     pstmt = conn.prepareStatement(sql);     //實體化prepareStatement物件32     rs = pstmt.executeQuery();              //執行查詢操作33 %>34 <center>35     <table border="1" width="80%">36         <tr>                                <!-- 輸出表格的行顯示 -->37             <td>雇員編號</td>                   <!-- 輸出表格的行顯示資訊 -->38             <td>雇員姓名</td>39             <td>雇員作業</td>40             <td>雇員工資</td>41             <td>雇傭日期</td>42         </tr>43 <%44     while(rs.next()){45         int empno = rs.getInt(1);           //回圈emp表中的行記錄46         String ename = rs.getString(2);     //取出雇員編號47         String job = rs.getString(3);       //取出雇員姓名48         float sal = rs.getFloat(4);         //取出雇員作業49         java.util.Date date = rs.getDate(5);//取出雇傭日期50 %>51         <tr>                                <!-- 回圈輸出雇員的資訊 -->52             <td><%=empno %></td>53             <td><%=ename %></td>54             <td><%=job %></td>55             <td><%=sal %></td>56             <td><%=date %></td>57         </tr>58 <%59         }60 %>61     </table>62 </center>63 <%64 }catch(Exception e){                        //例外處理65     System.out.println(e);                  //向Tomcat中列印66 }finally{67     rs.close();68     pstmt.close();69     conn.close();70 }71 %>72 </body>73 </html>
View Code

包含指令

info.htm

1 <h2>2     <font color="red">info.htm</font>3 </h2>
View Code

info.jsp

1 <h2>2     <font color="green"><%="info.jsp" %></font>3 </h2>
View Code

info.inc

1 <h2>2     <font color="blue">info.inc</font>3 </h2>
View Code

靜態包含

先包含,再處理

include_demo01.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2     pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>Insert title here</title> 8 </head> 9 <body>10     <h1>靜態包含操作</h1>11     <%@include file="info.htm" %>12     <%@include file="info.jsp" %>13     <%@include file="info.inc" %>14 </body>15 </html>
View Code

動態包含

先處理,再包含

include_demo02.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2     pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>Insert title here</title> 8 </head> 9 <body>10     <h1>靜態包含操作</h1>11     <jsp:include page="info.htm"/>      <!-- 此處為標簽指令,必須完結 -->12     <jsp:include page="info.jsp"/>      <!-- 此處為標簽指令,必須完結 -->13     <jsp:include page="info.inc"/>      <!-- 此處為標簽指令,必須完結 -->14 </body>15 </html>
View Code

使用request.getParameter()方法進行引數的傳遞

receive_param.jsp

1 <%@ page language="java" contentType="text/html; charset=UTF-8"2     pageEncoding="UTF-8"%>3 <h1>引數一:<%=request.getParameter("name") %></h1>4 <h1>引數二:<%=request.getParameter("info") %></h1>
View Code

include_demo03.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2     pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>Insert title here</title> 8 </head> 9 <body>10 <%11     String username="LiXinHua";     //定義一個變數12 %>13     <h1>動態包含并傳遞引數</h1>14     <jsp:include page="receive_param.jsp">15         <jsp:param value="<%=username %>" name="name"/>16         <jsp:param value="www.mldnjava.cn" name="info"/>17     </jsp:include>          <!-- 此處為標簽完結指令,必須完結 -->18 </body>19 </html>
View Code

靜態包含與動態包含的優劣之分

靜態包含處理頁 include_demo04.jsp(錯誤的頁面

 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2     pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>Insert title here</title> 8 </head> 9 <body>10 <%11     int x = 100;12 %>13 <h1>include_demo04.jsp -- <%=x %></h1>14 <%@include file="include.jsp" %>15 <!-- 運行出現500錯誤,因為靜態包含時,先將全部的內容包含到一起,然后再編譯,導致了x的多次定義出錯 -->16 </body>17 </html>
View Code

動態包含處理頁 include_demo05.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2     pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>Insert title here</title> 8 </head> 9 <body>10 <%11     int x = 100;12 %>13 <h1>include_demo05.jsp -- <%=x %></h1>14 <jsp:include page="include.jsp"></jsp:include>15 </body>16 </html>
View Code

跳轉指令

服務器跳轉,頁面地址未發生改變

不傳遞引數時

1 <jsp:forword page="{要包含的檔案路徑|<%=運算式 %>}"/>
View Code

傳遞引數時(中間不能有空格)

1 <jsp:forward>2     <jsp:param name="引數名稱" value="引數內容"/>3 </jsp:forward>
View Code

forward_demo01.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2     pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>Insert title here</title> 8 </head> 9 <body>10 <%11     String username = "LiXinHua";12 %>13 <jsp:forward page="forward_demo02.jsp">14     <jsp:param value="<%=username %>" name="name"/>15     <jsp:param value="www.MLDNJAVA.cn" name="info"/>16 </jsp:forward>17 </body>18 </html>
View Code

forward_demo02.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2     pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>Insert title here</title> 8 </head> 9 <body>10 <h1>這是跳轉之后的頁面</h1>11 <h2>引數一:<%=request.getParameter("name") %></h2>12 <h2>引數二:<%=request.getParameter("info") %></h2>13 </body>14 </html>
View Code

實體操作:用戶登錄程式實作(JSP+JDBC實作)

創建資料庫表

 1 /* 2 Navicat MySQL Data Transfer 3 ? 4 Source Server         : myproject 5 Source Server Version : 50562 6 Source Host           : localhost:3306 7 Source Database       : mldn 8 ? 9 Target Server Type    : MYSQL10 Target Server Version : 5056211 File Encoding         : 6500112 ?13 Date: 2019-04-27 03:28:4814 */15 ?16 SET FOREIGN_KEY_CHECKS=0;17 ?18 -- ----------------------------19 -- Table structure for user20 -- ----------------------------21 DROP TABLE IF EXISTS `user`;22 CREATE TABLE `user` (23   `userid` varchar(30) NOT NULL,24   `name` varchar(30) NOT NULL,25   `password` varchar(32) NOT NULL,26   PRIMARY KEY (`userid`)27 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;28 ?29 -- ----------------------------30 -- Records of user31 -- ----------------------------32 INSERT INTO `user` VALUES ('admin', 'administrator', 'admin');
View Code

登錄界面

login.html

 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>請登錄...</title> 6 </head> 7 <body> 8 <center> 9     <h1>登錄操作</h1>10     <hr>11     <form action="login_check.jsp" method="post">12         <table border="1">13             <tr>14                 <td colspan="2"><center>用戶登錄</center></td>15             </tr>16             <tr>17                 <td>登錄ID:</td>18                 <td><input type="text" name="id"></td>19             </tr>20             <tr>21                 <td>登錄密碼:</td>22                 <td><input type="password" name="password"></td>23             </tr>24             <tr>25                 <td colspan="2">26                     <input type="submit" value="登錄">27                     <input type="reset" value="重置">28                 </td>29             </tr>30         </table>31     </form>32     <hr>33 </center>34 </body>35 </html>
View Code

校驗界面

login_check.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2     pageEncoding="UTF-8"%> 3 <%@ page import="java.sql.*" %> 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 5 <html> 6 <head> 7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 8 <title>登錄校驗</title> 9 </head>10 <body>11 <%!12     //定義資料庫驅動程式13     public static final String DBDRIVER = "com.mysql.jdbc.Driver";14     //資料庫連接地址15     public static final String DBURL = "jdbc:mysql://localhost:3306/mldn";16     public static final String DBUSER = "root";17     public static final String DBPASS = "2580";18 %>19 <%20     Connection conn = null;                                 //宣告資料庫連接物件21     PreparedStatement pstmt = null;                         //宣告資料庫操作22     ResultSet rs = null;                                    //宣告資料庫結果集23     boolean flag = false;                                   //標志位24     String name = null;                                     //接收用戶的真實姓名25 %>26 <%  //JDBC會拋出例外,使用try...catch處理27 try{28     Class.forName(DBDRIVER);                                //加載驅動程式29     conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS);//取得資料庫連接30     //撰寫要使用的SQL陳述句,驗證用戶id和密碼,如果正確,則取出真實姓名31     String sql = "SELECT name FROM user WHERE userid=? AND password=?";32     pstmt = conn.prepareStatement(sql);                     //實體化prepareStatement物件33     pstmt.setString(1, request.getParameter("id"));         //設定查詢所需要的內容34     pstmt.setString(2, request.getParameter("password"));   //設定查詢所需要的內容35     rs = pstmt.executeQuery();                              //執行查詢操作36     if(rs.next()){                                          //如果可以查詢到,則表示合法用戶37         name = rs.getString(1);                             //取出真實姓名38         flag = true;                                        //修改標志位,如果為true,表示登錄成功39     }40 }catch(Exception e){41     System.out.println(e);42 }finally{43     try{                                                    //關閉操作會拋出例外,使用try...catch處理44         rs.close();                                         //關閉查詢物件45         pstmt.close();                                      //關閉操作物件46         conn.close();                                       //關閉資料庫連接47     }catch(Exception e){}48 }49 %>50 <%51     if(flag){                                               //登錄成功,跳轉到成功頁52 %>53             <%-- <jsp:forward page="login_success.jsp"> --%>            <!-- 執行跳轉操作 -->54             <%--    <jsp:param value="<%=name %>" name="uname"/> --%>55             <%-- </jsp:forward> --%>56 <%57             response.setHeader("refresh", "3;URL=login_success.jsp");       //定時跳轉58             session.setAttribute("uname", name);59 %>60             <h3>用戶如果登錄成功,三秒后跳轉到歡迎頁!</h3>61             <h3>如果沒用跳轉,請按<a href="login_success.jsp">這里</a></h3>62 <%63     }else{//登陸失敗,跳轉到失敗頁64 %>65 <jsp:forward page="login_failure.jsp"></jsp:forward><!-- 執行跳轉操作 -->66 <%67     }68 %>69 </body>70 </html>
View Code

登陸成功頁面

login_success.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2     pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>歡迎您,<%=session.getAttribute("uname")%></title> 8 </head> 9 <body>10 <center>11 <%12     if(session.getAttribute("uname") != null){          //已經設定過屬性,所以不為空13 %>14         <h1>登錄操作</h1>15         <hr>16         <h2>登錄成功</h2>17         <h2>歡迎<%=session.getAttribute("uname")%>光臨本系統,<a href="logout.jsp">注銷</a>!</h2>18 <%19     }else{          //非法用戶,沒有登陸過,session中沒有userid的存在20 %>21         <h3>請先進行系統的<a href="login.html">登錄</a>!</h3>22 <%23     }24 %>25     26     <%-- <h2>歡迎<font color="red"><%=request.getParameter("uname") %></font>光臨!</h2> --%>27 </center>28 </body>29 </html>
View Code

登錄失敗頁面

login_failure.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2     pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>登陸失敗</title> 8 </head> 9 <body>10 <center>11     <h1>登錄操作</h1>12     <h2>登錄失敗,請重新<a href="login.html">登錄</a></h2>13 </center>14 </body>15 </html>
View Code

退出頁面

logout.jsp

 1 <%@ page language="java" contentType="text/html; charset=utf-8" 2     pageEncoding="utf-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <title>已退出系統</title> 7 </head> 8 <body> 9 ?10 <h3>親愛的<%=session.getAttribute("uname")%>,您已成功退出本系統,三秒后跳轉回登錄界面!</h3>11 <h3>若果沒有跳轉,請按<a href="login.html">這里</a></h3>12 ?13 <%14     response.setHeader("refresh", "3;URL=login.html");      //定時跳轉15     session.invalidate();                                   //注銷,session清空16 %>17 ?18 </body>19 </html>
View Code

 

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

標籤:HTML5

上一篇:新手學Html之JSP簡介——入門(一)

下一篇:使用Eclipse開發Web專案(JSP)——簡單登錄、無sql

標籤雲
其他(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)

熱門瀏覽
  • vue移動端上拉加載

    可能做得過于簡單或者比較low,請各位大佬留情,一起探討技術 ......

    uj5u.com 2020-09-10 04:38:07 more
  • 優美網站首頁,頂部多層導航

    一個個人用的瀏覽器首頁,可以把一下常用的網站放在這里,平常打開會比較方便。 第一步,HTML代碼 <script src=https://www.cnblogs.com/szharf/p/"js/jquery-3.4.1.min.js"></script> <div id="navigate"> <ul> <li class="labels labels_1"> ......

    uj5u.com 2020-09-10 04:38:47 more
  • 頁面為要加<!DOCTYPE html>

    最近因為寫一個js函式,需要用到$(window).height(); 由于手寫demo的時候,過于自信,其實對前端方面的認識也不夠體系,用文本檔案直接敲出來的html代碼,第一行沒有加上<!DOCTYPE html> 導致了$(window).height();的結果直接是整個document的高 ......

    uj5u.com 2020-09-10 04:38:52 more
  • WordPress網站程式手動升級要做好資料備份

    WordPress博客網站程式在進行升級前,必須要做好網站資料的備份,這個問題良家佐言是遇見過的;在剛開始接觸WordPress博客程式的時候,因為升級問題和博客網站的修改的一些嘗試,良家佐言是吃盡了苦頭。因為購買的是西部數碼的空間和域名,每當佐言把自己的WordPress博客網站搞到一塌糊涂的時候 ......

    uj5u.com 2020-09-10 04:39:30 more
  • WordPress程式不能升級為5.4.2版本的原因

    WordPress是一款個人博客系統,受到英文博客愛好者和中文博客愛好者的追捧,并逐步演化成一款內容管理系統軟體;它是使用PHP語言和MySQL資料庫開發的,用戶可以在支持PHP和MySQL資料庫的服務器上使用自己的博客。每一次WordPress程式的更新,就會牽動無數WordPress愛好者的心, ......

    uj5u.com 2020-09-10 04:39:49 more
  • 使用CSS3的偽元素進行首字母下沉和首行改變樣式

    網頁中常見的一種效果,首字改變樣式或者首行改變樣式,效果如下圖。 代碼: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, ......

    uj5u.com 2020-09-10 04:40:09 more
  • 關于a標簽的講解

    什么是a標簽? <a> 標簽定義超鏈接,用于從一個頁面鏈接到另一個頁面。 <a> 元素最重要的屬性是 href 屬性,它指定鏈接的目標。 a標簽的語法格式:<a href=https://www.cnblogs.com/summerxbc/p/"指定要跳轉的目標界面的鏈接">需要展示給用戶看見的內容</a> a標簽 在所有瀏覽器中,鏈接的默認外觀如下: 未被訪問的鏈接帶 ......

    uj5u.com 2020-09-10 04:40:11 more
  • 前端輪播圖

    在需要輪播的頁面是引入swiper.min.js和swiper.min.css swiper.min.js地址: 鏈接:https://pan.baidu.com/s/15Uh516YHa4CV3X-RyjEIWw 提取碼:4aks swiper.min.css地址 鏈接:https://pan.b ......

    uj5u.com 2020-09-10 04:40:13 more
  • 如何設定html中的背景圖片(全屏顯示,且不拉伸)

    1 <style>2 body{background-image:url(https://uploadbeta.com/api/pictures/random/?key=BingEverydayWallpaperPicture); 3 background-size:cover;background ......

    uj5u.com 2020-09-10 04:40:16 more
  • Java學習——HTML詳解(上)

    HTML詳解 初識HTML Hyper Text Markup Language(超文本標記語言) 1 <!--DOCTYPE:告訴瀏覽器我們要使用什么規范--> 2 <!DOCTYPE html> 3 <html lang="en"> 4 <head> 5 <!--meta 描述性的標簽,描述一些 ......

    uj5u.com 2020-09-10 04:40:33 more
最新发布
  • 我的第一個NPM包:panghu-planebattle-esm(胖虎飛機大戰)使用說明

    好家伙,我的包終于開發完啦 歡迎使用胖虎的飛機大戰包!! 為你的主頁添加色彩 這是一個有趣的網頁小游戲包,使用canvas和js開發 使用ES6模塊化開發 效果圖如下: (覺得圖片太sb的可以自己改) 代碼已開源!! Git: https://gitee.com/tang-and-han-dynas ......

    uj5u.com 2023-04-20 07:59:23 more
  • 生產事故-走近科學之消失的JWT

    入職多年,面對生產環境,盡管都是小心翼翼,慎之又慎,還是難免捅出簍子。輕則滿頭大汗,面紅耳赤。重則系統停擺,損失資金。每一個生產事故的背后,都是寶貴的經驗和教訓,都是專案成員的血淚史。為了更好地防范和遏制今后的各類事故,特開此專題,長期更新和記錄大大小小的各類事故。有些是親身經歷,有些是經人耳傳口授 ......

    uj5u.com 2023-04-18 07:55:04 more
  • 記錄--Canvas實作打飛字游戲

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 打開游戲界面,看到一個畫面簡潔、卻又富有挑戰性的游戲。螢屏上,有一個白色的矩形框,里面不斷下落著各種單詞,而我需要迅速地輸入這些單詞。如果我輸入的單詞與螢屏上的單詞匹配,那么我就可以獲得得分;如果我輸入的單詞錯誤或者時間過長,那么我就會輸 ......

    uj5u.com 2023-04-04 08:35:30 more
  • 了解 HTTP 看這一篇就夠

    在學習網路之前,了解它的歷史能夠幫助我們明白為何它會發展為如今這個樣子,引發探究網路的興趣。下面的這張圖片就展示了“互聯網”誕生至今的發展歷程。 ......

    uj5u.com 2023-03-16 11:00:15 more
  • 藍牙-低功耗中心設備

    //11.開啟藍牙配接器 openBluetoothAdapter //21.開始搜索藍牙設備 startBluetoothDevicesDiscovery //31.開啟監聽搜索藍牙設備 onBluetoothDeviceFound //30.停止監聽搜索藍牙設備 offBluetoothDevi ......

    uj5u.com 2023-03-15 09:06:45 more
  • canvas畫板(滑鼠和觸摸)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>canves</title> <style> #canvas { cursor:url(../images/pen.png),crosshair; } #canvasdiv{ bo ......

    uj5u.com 2023-02-15 08:56:31 more
  • 手機端H5 實作自定義拍照界面

    手機端 H5 實作自定義拍照界面也可以使用 MediaDevices API 和 <video> 標簽來實作,和在桌面端做法基本一致。 首先,使用 MediaDevices.getUserMedia() 方法獲取攝像頭媒體流,并將其傳遞給 <video> 標簽進行渲染。 接著,使用 HTML 的 < ......

    uj5u.com 2023-01-12 07:58:22 more
  • 記錄--短視頻滑動播放在 H5 下的實作

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 短視頻已經無數不在了,但是主體還是使用 app 來承載的。本文講述 H5 如何實作 app 的視頻滑動體驗。 無聲勝有聲,一圖頂百辯,且看下圖: 網址鏈接(需在微信或者手Q中瀏覽) 從上圖可以看到,我們主要實作的功能也是本文要講解的有: ......

    uj5u.com 2023-01-04 07:29:05 more
  • 一文讀懂 HTTP/1 HTTP/2 HTTP/3

    從 1989 年萬維網(www)誕生,HTTP(HyperText Transfer Protocol)經歷了眾多版本迭代,WebSocket 也在期間萌芽。1991 年 HTTP0.9 被發明。1996 年出現了 HTTP1.0。2015 年 HTTP2 正式發布。2020 年 HTTP3 或能正... ......

    uj5u.com 2022-12-24 06:56:02 more
  • 【HTML基礎篇002】HTML之form表單超詳解

    ??一、form表單是什么

    ??二、form表單的屬性

    ??三、input中的各種Type屬性值

    ??四、標簽 ......

    uj5u.com 2022-12-18 07:17:06 more