JSP製作簡單登陸

来源:http://www.cnblogs.com/zhouguanglin/archive/2017/07/31/7266315.html
-Advertisement-
Play Games

JSP製作簡單登陸界面 運行環境 eclipse+tomcat+MySQL 不知道的可以參考Jsp運行環境——Tomcat 項目列表 這裡我先把jsp文件先放在Web-INF外面訪問 代碼演示: index.jsp就好像一般網站的首頁一樣感覺,將header.jsp和footer.jsp引入其中 h ...


JSP製作簡單登陸界面

運行環境

eclipse+tomcat+MySQL 不知道的可以參考Jsp運行環境——Tomcat

 項目列表

這裡我先把jsp文件先放在Web-INF外面訪問

  1. 需要建立的幾個文件在圖上.jsp
  2. 還要導入MySQL的jar包mysql-5.0.5.jar,導到WEB-INF中的lib文件夾就可以不需要Bulid Path
  3. 開始編寫代碼:

代碼演示:

index.jsp就好像一般網站的首頁一樣感覺,將header.jsp和footer.jsp引入其中

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>首頁</title>
<style>
    #nav>ul>li{
        float:left;
        margin-left:50px;
    }
    #login{
        clear:both;
    }
</style>
</head>
<body>
<!-- 引入header.jsp的頭部文件 -->
<%@ include file="header.jsp" %>
<div id="login">
    <a href="login.jsp"><button>登陸</button></a>
</div>
<!-- 引入footer.jsp的腳部文件 -->
<%@include file="footer.jsp" %>
</body>
</html>

header.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<div id="nav">
    <ul>
        <li ><a href="">導航1</a></li>
        <li><a href="">導航2</a></li>
        <li><a href="">導航3</a></li>
        <li><a href="">導航4</a></li>
        <li><a href="">導航5</a></li>
        <li><a href="">導航6</a></li>
    </ul>
</div>

footer.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <div>
<p>xxxxxxxxxxx可以試試|xxxxxxxxxxxx技術有限公司</p>
 <p>京 ICP 證 1234567 號|Copyright © 1999-2017, All Rights Reserved </p>
 </div>
頁面內容展示:

login.jsp登陸用戶名密碼填寫界面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登陸頁面</title>
</head>
<body>
<%--表單--%>
    <fieldset>
    <legend>登陸界面</legend>
    <form action="test.jsp" method="post">
    <input type="text" name="username"><br>
    <input type="password" name="password"><br>
    <input type="submit" value="登陸">
    <!-- EL語句,後面驗證表單時,驗證錯誤反回信息-->
    ${error}
    </form>
</fieldset>
</body>
</html>

內容顯示:

test.jsp 是對錶單login.jsp 的提交的內容與資料庫中的數據對比驗證,再相應的跳轉

<%@page import="java.sql.*"%>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
//請求獲取login.jsp的用戶名username的值
 String username=request.getParameter("username");
//請求獲取login.jsp的密碼password的值
String password=request.getParameter("password");
//資料庫MySQL的地址
String DBURL="jdbc:mysql://localhost:3306/zhou?useUnicode=true&characterEncoding=utf-8"; 
String DBName="root"; //登入用戶名
String DBPwd="123456";//登入密碼
//載入mysql驅動
Class.forName("com.mysql.jdbc.Driver");
//連接資料庫
Connection conn=DriverManager.getConnection(DBURL,DBName,DBPwd);
//創建Statement對象
Statement st=conn.createStatement();
//sql語句,搜索這個username和password在資料庫是否存在
String sql="select * from user where name='"+username+"'and pwd='"+password+"'";
//運行sql語句,並把得到的結果放入結果集ResultSet中
ResultSet rs=st.executeQuery(sql);
//判斷這個結果集是否存在,一般username只有一個
if(rs.next()){
    //設置一個username,將後面username其內容賦值給前面一個username,可以以便下一個頁面使用
    request.setAttribute("username", username);
    //跳轉頁面到userpage.jsp
    request.getRequestDispatcher("userpage.jsp").forward(request, response);
}else{
    //設置一個error,將後面的字賦給這個error,以便先一個跳轉頁面的使用,request的作用域有限
    request.setAttribute("error", "用戶名或密碼錯誤!!!");
    request.getRequestDispatcher("login.jsp").forward(request, response);
}

conn.close();
rs.close();

%>

登陸錯誤顯示的頁面內容:

 

userpage.jsp這個頁面就是登陸成功之後顯示的頁面

<%@page import="javafx.scene.chart.PieChart.Data"%>
<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>用戶界面</title>
</head>
<body>
<div>
<!-- ${username}是獲取到test.jsp 中判斷中重新設置的username,知道是誰登陸了,這個是誰的頁面 -->
<p>${username},你好,登陸成功!!</p>
</div>
<%
//session的作用域問題,可以記錄一個網站的瀏覽量。先得到一個count
    Object obj=session.getAttribute("count");
//判斷這個對象是否為空
    if(obj==null){
        //空則重新設置一下count的值
        session.setAttribute("count", 0);
    }else{
        //否則將得到的對象強轉加1,就可以記錄瀏覽量
        int i=(int)obj+1;
        session.setAttribute("count", i);
        %>
        <div>你是第<%=i %>位登陸的用戶</div>
    <%
    }
    //獲取當前時間
    Date date=new Date();
    out.print("現在時間:"+date);
%>
<div>你的IP地址:<%=request.getRemoteAddr()%></div>
</body>
</html>

頁面內容:localhost就是127.0.0.1,有時候地址欄是local host時會顯示8個0:

 

 

整個簡單的登陸就完事了

 想瞭解EL語言的具體感覺可以看這個 JSP中的EL表達式詳細介紹

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • IdentityServer4 是一個提供 認證服務,單點登錄/登出(SSO),API訪問控制,聯合認證通道的可定製、免費商業支持的框架。 ...
  • IdentityServer4 是一個提供 認證服務,單點登錄/登出(SSO),API訪問控制,聯合認證通道的可定製、免費商業支持的框架。 ...
  • IdentityServer4 是一個提供 認證服務,單點登錄/登出(SSO),API訪問控制,聯合認證通道的可定製、免費商業支持的框架。 ...
  • IdentityServer4 是一個提供 認證服務,單點登錄/登出(SSO),API訪問控制,聯合認證通道的可定製、免費商業支持的框架。 ...
  • 非同步非常重要的一點就是不會使當前線程阻塞,C#主要通過委托機制來實現非同步編程。 ...
  • 公司的核心業務合作伙伴淘寶網,最近出現泄漏用戶信息的現象,找了好久找不到根源,於是乎,淘寶那邊決定對所有敏感數據進行加密,從出口和入口都走密文,於是乎,我們的工作量就來了。 我們的一個底單資料庫,存儲了大量淘寶賣家和買家的訂單列印,申請單號,發貨,回收單號等等操作的日誌,大概有10億左右數據(自動刪 ...
  • 考慮使用靜態工廠方法代替構造器 類可以提供一個公有的靜態工廠方法(public static factory method)來返回一個類的實例。例如,Boolean類的valueOf()方法: public static Boolean valueOf(boolean b) { return (b ...
  • 1. 心得體會 1.1 線程 寫代碼時,需要至少考慮兩個問題:UI線程與子線程。 UI線程:主要處理UI線程的事情(這不是廢話嗎?) 子線程:主要做網路連接、回調、文件IO等操作。 備註:UI線程不能夠被阻塞,不然會有ANR問題。 1.2 界面 寫代碼時,不要貪圖方便在xml中用一個ViewPage ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...