jsp項目不一樣jsp之間假設只經過超連接進行跳轉,安全性過低,不能知足現實生活中對安全性的要求!
爲了提升安全性。可以經過Servlet進行跳轉,進行跳轉的時候爲了進一步實現其安全性,可以經過間jsp文件放在WEB-INF目錄裏面。這樣安全性就能獲得提高。但是問題伴隨而來,放在WEB-INF目錄裏面,怎樣進行訪問?
可以實現的一種思路:另建一個Servlet類做爲頁面跳轉的中轉站!將需要使用到的放在WEB-INF目錄裏面的文件經過使用id進行區分,在需要訪問到這些jsp文件的時候直接經過中轉站而後得到要訪問的jsp的id,即可以進行對應的頁面跳轉。javascript
新建的Servlet類代碼例如如下:java
package cn.edu.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MNG extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String id = request.getParameter("id");
//從頁面得到的用戶區分跳轉頁面的id
System.out.println("id="+id);
//我調試的時候使用的,並沒實用
if(id.equals("1")){
request.getRequestDispatcher("/index.jsp").forward(request,response);
}else if(id.equals("2")){
request.getRequestDispatcher("/WEB-INF/admin/add.jsp").forward(request,response);
}else if (id.equals("3")) {
request.getRequestDispatcher("/WEB-INF/admin/bisai.jsp").forward(request,response);
}else if (id.equals("4")) {
request.getRequestDispatcher("/WEB-INF/admin/gamema.jsp").forward(request,response);
}else if (id.equals("5")) {
request.getRequestDispatcher("/WEB-INF/admin/manager.jsp").forward(request,response);
}else if (id.equals("6")) {
request.getRequestDispatcher("/WEB-INF/admin/message.jsp").forward(request,response);
}else if (id.equals("7")) {
request.getRequestDispatcher("/WEB-INF/admin/modify.jsp").forward(request,response);
}else if (id.equals("8")) {
request.getRequestDispatcher("/WEB-INF/admin/pk.jsp").forward(request,response);
}else if (id.equals("9")) {
request.getRequestDispatcher("/WEB-INF/admin/result.jsp").forward(request,response);
}
}
}
進行跳轉的頁面代碼例如如下:安全
<form action="AddServlet" method="post">
<label>比賽編號:</label><input type="text" name="id" placeholder="請輸入比賽編號"/><br />
<label>比賽名稱:</label><input type="text" name="gamename" placeholder="請輸入比賽名稱"/><br />
<label>比賽時間:</label><input type="text" name="gametime" placeholder="*格式:YYYY.MM.DD"/><br />
<label>比賽地點:</label><input type="text" name="gameaddress" placeholder="請輸入比賽地點"/><br />
<label>人數限制:</label><input type="text" name="gamenum" placeholder="*格式:請填寫整數"/><br />
<label>報名截止:</label><input type="text" name="deadline" placeholder="*格式:YYYY.MM.DD"/><br />
<!-- <form action="" method="post"><input type="submit" value="加入"></form> <form action="tennis_game/WebRoot/WEB-INF/bisai.jsp" method="post"><input type="button" value="返回"></form> -->
<button type="submit" value="加入">加入</button>
<a href="MNG?id=3"><button type="button" value="返回">返回</button></a>
</form>
經過id進行跳轉。
還有一種方法比較簡單,不用講全部的jsp文件全部都放在WEB-INF文件如下。只經過將登錄頁面要跳轉的目標頁面放入WEB-INF文件下便可了,經過登錄頁面跳轉的 Servlet類中經過會話對象session獲取用戶的帳戶密碼,而後在每一個頁面的開始經過JavaScript來驗證是否登錄。markdown
session
function checkNull(){
if(document.getElementById("id").value=="" || document.getElementById("id").value==null)
{
alert("賬號不能爲空!");
document.getElementById("id").focus();
document.getElementById("id").select();
return false;
}
if(document.getElementById("pass").value=="" || document.getElementById("pass").value==null)
{
alert("密碼不能爲空!"); document.getElementById("pass").focus(); document.getElementById("pass").select(); return false; } if(document.getElementById("password").value!=document.getElementById("password2").value) { alert("兩次密碼輸入不一致!"); document.getElementById("password").focus(); document.getElementById("password").select(); return false; } if(document.getElementById("name").value=="" || document.getElementById("name").value==null) { alert("姓名不能爲空!"); document.getElementById("name").focus(); document.getElementById("name").select(); return false; } else return true; } 管理員登陸界面確保安全性: <% String adminid = (String)session.getAttribute("adminname"); if(adminid==null){ %> <script type="text/javascript" language="javascript"> alert("你尚未登陸。。。"); window.document.location.href="/TennisMatch/welcome"; </script> <% } %>