- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 JAVA Servlet 开发网络应用程序。我正在尝试制作一个登录表单,我只想让用户设置用户名和密码,如果有效,则打开 mainPage.html代码运行时没有错误或异常,但是当此函数运行 requestDispatcher.forward()
时,页面会重新加载,而不转发到 mainPage.html
这是验证函数:
public static boolean validate(String name,String pass){
boolean status=false;
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con=(Connection) DriverManager.getConnection(
"jdbc:mysql://localhost:3309/project","root","123456");
java.sql.PreparedStatement ps=con.prepareStatement(
"select * from user where username=? and password=?");
ps.setString(1,name);
ps.setString(2,pass);
ResultSet rs=ps.executeQuery();
status=rs.next();
}catch(Exception e){System.out.println(e);}
return status;
}
这是登录功能:
public static void Login(HttpServletRequest request, HttpServletResponse response) {
String userName= request.getParameter("username");
String password =request.getParameter("password");
if(UserDao.validate(userName, password)){
RequestDispatcher requestDispatcher=request.getRequestDispatcher("mainPage.html");
try {
requestDispatcher.forward(request,response);
/*I already debug the code , it run requestDispatcher.forward(request,response); without any exceptions but nothing happens the html page only refreshing ,not opening mainPage.html*/
} catch (ServletException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else{
System.out.print("Sorry username or password error");
RequestDispatcher rd=request.getRequestDispatcher("http://localhost:8080/project");
try {
rd.include(request,response);
} catch (ServletException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
在 Controller (servlet)中从ajax获取请求:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
if (action.contentEquals("Login"))
UserBusiness.Login(request, response);
}
ajax 调用:
function Login() {
var username = $('#username').val();
var password = $('#password').val();
$.ajax({
url: 'Controller',
data : {
action: 'Login',
username: username,
password: password,
},
type: 'post',
success: function(response) {
},
error: function(e) {
alert('error');
}
});
}
登录html页面:
<script>
$(document).ready(function () {
// loadJsFile("scripts/user-page.js");
$('#login_btn').on('click', function(){
Login();
});
});
</script>
<form class="sign-in-htm" method="GET" >
<div class="group">
<label for="user" class="label">Username</label>
<input id="username" name="username" type="text" class="input">
</div>
<div class="group">
<label for="pass" class="label">Password</label>
<input id="password" name="password" type="password" class="input" data-type="password">
</div>
<div class="group">
<input id="check" type="checkbox" class="check" checked>
<label for="check"><span class="icon"></span> Keep me Signed in</label>
</div>
<div class="group">
<input type="submit" id="login_btn" class="button" value="Sign In">
</div>
<div class="hr"></div>
<div class="foot-lnk">
<a href="#forgot">Forgot Password?</a>
</div>
</form>
最佳答案
您正在执行 AJAX 请求,但您没有对 AJAX 请求的响应执行任何操作。
为什么不尝试删除 login_btn 的“点击”操作,并测试简单的表单提交是否有效?
关于java - requestDispatcher.forward() 不打开新的html页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60412910/
我观察到虽然 RequestDispatcher.forward(request, response) 可以抛出 IllegalStateException(如果响应已提交),但 RequestDis
我已经阅读了很多类似的问题并尝试了所有建议的方法来解决问题,但是没有成功。现在我真的不知道如何处理这个 (localhost:8080/testWebApp/home): HTTP Status 50
使用 servletContext 而不是使用 request 来获取 requestDispatcher 有什么好处? servletContext.getRequestDispatcher(dis
处理RequestDispatcher时和资源路径,是主要基于 构建的路径元素?即使资源位于不同的包中 例如:我在 servlet 下定义了: /handlers/FrontHandler 以及
当我们使用请求调度程序方法 forward 将请求从一个 servlet 转发到另一个 servlet 时,以便另一个 servlet 生成响应,或者当我们希望另一个 servlet 的响应返回到一个
String fn=request.getParameter("fn"); request.setAttribute("eno",eno); RequestDispatcher rd = reques
我有这个搜索表单。 String search = request.getParameter("search"); if (search != null) {
我在 2 个桌面上安装了 2 个 apache tomee。第一个在 Windows 7 上,第二个在 Windows 8 上。当我部署我的应用程序(带有业务组件)时,发生了一些奇怪的事情。 我在我的
在 servlet 中,我们可以使用 requestdispatcher,它将从 servlet 转发到 servlet 或 html 文件。但是我在其余服务中尝试了这个 requestdispatc
我在学习 RequestDispatcher 时正在编写一些基本代码。我知道当调用 rd.forward() 时,控制(和响应处理)被转发到路径中命名的资源——在本例中是另一个 servlet。但是,
我正在尝试创建一个 HttpServlet,它将所有传入请求按原样转发到在不同域上运行的另一个 serlvet。 如何做到这一点? RequestDispatcher 的 forward() 仅在同一
如何在同一工作空间中将 RequestDispatcher 用于外部网络应用 在第一个网络应用程序中,我是这样使用它的 RequestDispatcher rd =request.getReques
在变量 search_for 中,我得到了我正在搜索的值的字符串值。但我无法通过 RequestDispatcher 将其传递给 jsp。我做错了什么? RequestDispatcher rd =
我正在使用 JAVA Servlet 开发网络应用程序。我正在尝试制作一个登录表单,我只想让用户设置用户名和密码,如果有效,则打开 mainPage.html代码运行时没有错误或异常,但是当此函数运行
我在 jsp 中遇到重定向问题,页面仍然存在并且不会抛出任何错误。 当我直接在 login.jsp 中编写脚本时,我可以进行重定向,例如 .......... 但是,当我将文件分成三个并包含它时
我正在使用 /* 将所有请求映射到一个 sevlet,我在其中完成所有身份验证工作。但我想跳过一些静态内容(如 css 文件)。所以我尝试从该 sevlet 到资源文件所在的位置 if(isResou
使用 RequestDispatcher 的主要目的是什么,例如当它在 Filter 中执行时,如下例所示: public void doFilter(ServletRequest request,
我有以下代码: RequestDispatcher dispatcher = request.getRequestDispatcher(viewName); // while viewName is
我正在阅读的所有在线引用资料和 head first JSP&Servlet 书都说明了 RequestDispatcher 和 Redirect(即 resoponse.sendRedirect()
如果我有一个 servlet,我可以毫无问题地转发到 WebContent 文件夹中的 jsp: request.getRequestDispatcher("page.jsp").forward(re
我是一名优秀的程序员,十分优秀!