jsp 体检信息查询 绕过用户名验证_一篇彻底搞懂jsp
生活随笔
收集整理的這篇文章主要介紹了
jsp 体检信息查询 绕过用户名验证_一篇彻底搞懂jsp
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
jsp 實栗 jsp + jdbc 實現登錄
實現思路
一個表單頁,輸入用戶登錄和密碼,然后信息提交到jsp頁面進行驗證,如果可以服務器跳轉到登錄成功頁,失敗,跳轉到錯誤頁
跳轉的時候窗口的URL地址會發生變化代碼如下
編寫登錄代碼
登錄
<!DOCTYPE html> <html lang="zh_CN"> <head><meta charset="UTF-8"><title>登錄</title> </head> <body><h1>登錄操作</h1><form action="login_check.jsp" method="post"><h1>用戶登錄</h1><p>登錄id<input type="text" name="id"/></p><p>登錄密碼<input type="password" name="password"/></p><input type="submit" value="登錄"/><input type="reset" value="重置"/></form> </body> </html>登錄處理
<%@ page import="java.sql.*" %> <%--Created by IntelliJ IDEA.User: mingDate: 19-3-9Time: 下午5:50To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body> <%!// 數據庫驅動程序public static final String DBDRIVER = "com.mysql.cj.jdbc.Driver";// 數據庫連接地址public static final String DBURL = "jdbc:mysql://47.94.95.84:32786/test";// 用戶名public static final String DBUSER = "root";// 密碼public static final String DBPASS = "ABCcba20170607"; %> <%// 連接對象Connection connection = null;// 操作PreparedStatement preparedStatement = null;// 結果ResultSet resultSet = null;// 標志位boolean falge = false;// 用戶真實姓名String name = null; %> <%try{Class.forName(DBDRIVER);// 獲得連接connection = DriverManager.getConnection(DBURL, DBUSER, DBPASS);// 編寫sql驗證ID 密碼String sql = "SELECT name FROM user WHERE userid = ? AND password = ?";// 實例化操作對象preparedStatement = connection.prepareStatement(sql);// 設置查詢內容preparedStatement.setString(1, request.getParameter("id"));preparedStatement.setString(2, request.getParameter("password"));// 執行查詢resultSet = preparedStatement.executeQuery();// 如果可以查詢到,表示合法用戶if(resultSet.next()){name = resultSet.getString(1);// 修改標志位falge = true;}}catch (Exception e){e.printStackTrace();}finally {try{resultSet.close();preparedStatement.close();connection.close();}catch (Exception e){e.printStackTrace();}} %> <%// 登錄成功if(falge){// 進行服務器端跳轉 %><jsp:forward page="./login_sucess.jsp"><jsp:param name="uname" value="<%=name%>"/></jsp:forward> <%}else{ %><jsp:forward page="./login_failure.html"/> <% } %> </body> </html>登錄完成
<%--Created by IntelliJ IDEA.User: mingDate: 19-3-9Time: 下午10:22To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body> <h1>登錄成功</h1> <%=request.getParameter("uname")%> </body> </html>登錄失敗
<%--Created by IntelliJ IDEA.User: mingDate: 19-3-9Time: 下午10:22To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body> <h1>登錄成功</h1> <%=request.getParameter("uname")%> </body> </html>效果演示
登錄界面
jsp
page指令
使用此屬性,可以定義一個jsp頁面的相關屬性
<%@ page contentType="text/html;charset=UTF-8" language="java" %>設置該頁面的類型為text/html類型,其中編碼為Unicode 類型的UTF-8 語言為java
從Tomcat安裝目錄中可以找到可以使用的MIME類型
<mime-mapping><extension>ait</extension><mime-type>application/vnd.dvb.ait</mime-type> </mime-mapping>錯誤頁設置
設置page指令的errorPage屬性,設置錯誤頁
<%--Created by IntelliJ IDEA.User: mingDate: 19-3-6Time: 下午9:29To change this template use File | Settings | File Templates. --%> <%@ page contentType="application/vnd.dvb.ait;charset=UTF-8" language="java" %> <%@ page errorPage="error.jsp" %> <html><head><title>$Title$</title></head><body><%// 運行錯誤int result = 10 / 0;%></body> </html>設置如果出現錯誤,跳轉到error.jsp文件
錯誤頁的跳轉屬于服務器端跳轉數據庫連接操作
maven安裝驅動
訪問網址
輸入依賴
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.15</version> </dependency>jsp書寫代碼,并網頁展示
<%@ page import="java.sql.*" %> <html> <body> <h2>Hello World!</h2> <%!// 數據庫驅動程序public static final String DBDRIVER = "com.mysql.cj.jdbc.Driver";// 數據庫連接地址public static final String DBURL = "jdbc:mysql://47.94.95.84:32786/test";// 用戶名public static final String DBUSER = "root";// 密碼public static final String DBPASS = "ABCcba20170607"; %> <%// 聲明數據庫連接對象Connection connection = null;// 連接PreparedStatement preparedStatement = null;// 結果集ResultSet resultSet = null;String sql = "SELECT * from emp"; %> <%try{Class.forName(DBDRIVER);// 數據庫連接connection = DriverManager.getConnection(DBURL, DBUSER, DBPASS);// 實例化sqlpreparedStatement = connection.prepareStatement(sql);// 查詢resultSet = preparedStatement.executeQuery();while(resultSet.next()){int empon = resultSet.getInt(1);String ename = resultSet.getString(2);String job = resultSet.getString(3);%><%=empon%><%=ename%><%=job%><%}}catch (Exception e){System.out.println(e);}finally {resultSet.close();preparedStatement.close();connection.close();} %> </body> </html>包含指令
網頁分為頭尾中
靜態包含
在jsp編譯的時候插入一個包含文本或代碼的文件。包含過程為靜態的,代碼文件包含,生成一個完整的jsp文件,再次包含生成class文件,加載進入容器。
<html> <body><%@include file="info.html"%><%@include file="info.inc"%> </body> </html>動態包含
<%--Created by IntelliJ IDEA.User: mingDate: 19-3-9Time: 下午3:43To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> 參數1<%=request.getParameter("name")%> 參數2<%=request.getParameter("info")%><%--Created by IntelliJ IDEA.User: mingDate: 19-3-9Time: 下午4:51To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body><%String username = "LiHua";%><h1>動態傳遞參數</h1><jsp:include page="./receive_param.jsp"><jsp:param name="name" value="<%=username%>"/><jsp:param name="info" value="ming"/></jsp:include> </body> </html>運行以后可以發現顯示出結果
兩種包含,靜態包含是先包含,后處理,動態包含為先處理后包含跳轉指令
此跳轉為服務端跳轉
即一個request傳遞到另外一個page
總結
以上是生活随笔為你收集整理的jsp 体检信息查询 绕过用户名验证_一篇彻底搞懂jsp的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 下载土豆网官方版(土豆安卓版)
- 下一篇: linux装oracle11g(linu