Jsp JEE:如何停止URL映射?
我试图阻止URL映射。只有登录的用户才能评估Jsp JEE:如何停止URL映射?,jsp,servlets,jakarta-ee,url-routing,httpsession,Jsp,Servlets,Jakarta Ee,Url Routing,Httpsession,我试图阻止URL映射。只有登录的用户才能评估welcome.jsp页面 我的Login.javaservlet如下所示 package com.login; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet
welcome.jsp
页面
我的Login.java
servlet如下所示
package com.login;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet("/Login")
public class Login extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String uname=request.getParameter("uname");
String pass= request.getParameter("pass");
if(uname.equals("indrajith") && pass.equals("123")) {
HttpSession session =request.getSession();
session.setAttribute("username", uname);
response.sendRedirect("welcome.jsp");
}
else {
response.sendRedirect("login.jsp");
}
}
}
我的login.jsp
页面包含以下表单
<form action="Login">
Enter username:<input type="text" name="uname"><br>
Enter password:<input type="password" name="pass"><br>
<input type="submit" value="login">
<form>
但我的问题仍然是,无论我是否登录,我都可以使用URL路由。我不知道我的代码出了什么问题。在StackOverflow中,有一些类似的问题,但答案并不能解决我的问题
提前谢谢
PS:我在64位Windows机器上使用Tomcat8.5.40和eclipse IDE
在
.jsp
中编写的所有内容都将添加到名为\u jspService()
(长话短说)的方法中。设置重定向url后,必须使用return
语句停止jvm执行其余代码
请记住,sendRedirect()
只是jvm在响应中添加头的另一种方法
更新您的
welcome.jsp
<%
if(session.getAttribute("username") == null){
response.sendRedirect("login.jsp");
return; // add this statement
}
%>
最好在页面顶部添加此代码片段。是否有理由创建自己的安全系统而不是?不,唯一的原因是我不知道如何实现该安全性。我是java的新手,HTTPsession不是一种标准的方式吗?
<%
if(session.getAttribute("username") == null){
response.sendRedirect("login.jsp");
return; // add this statement
}
%>