jsp 体检信息查询 绕过用户名验证_一篇彻底搞懂jsp
生活随笔
收集整理的這篇文章主要介紹了
jsp 体检信息查询 绕过用户名验证_一篇彻底搞懂jsp
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
jsp 實栗 jsp + jdbc 實現(xiàn)登錄
實現(xiàn)思路
一個表單頁,輸入用戶登錄和密碼,然后信息提交到j(luò)sp頁面進(jìn)行驗證,如果可以服務(wù)器跳轉(zhuǎn)到登錄成功頁,失敗,跳轉(zhuǎn)到錯誤頁
跳轉(zhuǎn)的時候窗口的URL地址會發(fā)生變化代碼如下
編寫登錄代碼
登錄
<!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> <%!// 數(shù)據(jù)庫驅(qū)動程序public static final String DBDRIVER = "com.mysql.cj.jdbc.Driver";// 數(shù)據(jù)庫連接地址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;// 結(jié)果ResultSet resultSet = null;// 標(biāo)志位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);// 設(shè)置查詢內(nèi)容preparedStatement.setString(1, request.getParameter("id"));preparedStatement.setString(2, request.getParameter("password"));// 執(zhí)行查詢resultSet = preparedStatement.executeQuery();// 如果可以查詢到,表示合法用戶if(resultSet.next()){name = resultSet.getString(1);// 修改標(biāo)志位falge = true;}}catch (Exception e){e.printStackTrace();}finally {try{resultSet.close();preparedStatement.close();connection.close();}catch (Exception e){e.printStackTrace();}} %> <%// 登錄成功if(falge){// 進(jìn)行服務(wù)器端跳轉(zhuǎn) %><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頁面的相關(guān)屬性
<%@ page contentType="text/html;charset=UTF-8" language="java" %>設(shè)置該頁面的類型為text/html類型,其中編碼為Unicode 類型的UTF-8 語言為java
從Tomcat安裝目錄中可以找到可以使用的MIME類型
<mime-mapping><extension>ait</extension><mime-type>application/vnd.dvb.ait</mime-type> </mime-mapping>錯誤頁設(shè)置
設(shè)置page指令的errorPage屬性,設(shè)置錯誤頁
<%--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>設(shè)置如果出現(xiàn)錯誤,跳轉(zhuǎn)到error.jsp文件
錯誤頁的跳轉(zhuǎn)屬于服務(wù)器端跳轉(zhuǎn)數(shù)據(jù)庫連接操作
maven安裝驅(qū)動
訪問網(wǎng)址
輸入依賴
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.15</version> </dependency>jsp書寫代碼,并網(wǎng)頁展示
<%@ page import="java.sql.*" %> <html> <body> <h2>Hello World!</h2> <%!// 數(shù)據(jù)庫驅(qū)動程序public static final String DBDRIVER = "com.mysql.cj.jdbc.Driver";// 數(shù)據(jù)庫連接地址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"; %> <%// 聲明數(shù)據(jù)庫連接對象Connection connection = null;// 連接PreparedStatement preparedStatement = null;// 結(jié)果集ResultSet resultSet = null;String sql = "SELECT * from emp"; %> <%try{Class.forName(DBDRIVER);// 數(shù)據(jù)庫連接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>包含指令
網(wǎng)頁分為頭尾中
靜態(tài)包含
在jsp編譯的時候插入一個包含文本或代碼的文件。包含過程為靜態(tài)的,代碼文件包含,生成一個完整的jsp文件,再次包含生成class文件,加載進(jìn)入容器。
<html> <body><%@include file="info.html"%><%@include file="info.inc"%> </body> </html>動態(tài)包含
<%--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" %> 參數(shù)1<%=request.getParameter("name")%> 參數(shù)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>動態(tài)傳遞參數(shù)</h1><jsp:include page="./receive_param.jsp"><jsp:param name="name" value="<%=username%>"/><jsp:param name="info" value="ming"/></jsp:include> </body> </html>運行以后可以發(fā)現(xiàn)顯示出結(jié)果
兩種包含,靜態(tài)包含是先包含,后處理,動態(tài)包含為先處理后包含跳轉(zhuǎn)指令
此跳轉(zhuǎn)為服務(wù)端跳轉(zhuǎn)
即一個request傳遞到另外一個page
總結(jié)
以上是生活随笔為你收集整理的jsp 体检信息查询 绕过用户名验证_一篇彻底搞懂jsp的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 下载土豆网官方版(土豆安卓版)
- 下一篇: linux装oracle11g(linu