单击按钮时通过javascript调用JSP页面
我目前正在开发一个MVC程序,当用户从单击按钮时通过javascript调用JSP页面,javascript,java,jsp,model-view-controller,buttonclick,Javascript,Java,Jsp,Model View Controller,Buttonclick,我目前正在开发一个MVC程序,当用户从login.jsp登录时,我需要调用home.jsp页面。我已经为呈现视图的登录控制器和主控制器编写了代码。但是我不知道如何通过我的custom.jsjavascript文件调用控制器的请求映射 custom.js document.getElementById('login_btn').addEventListener("click", function() { authorizationCheck(); }, false); function
login.jsp
登录时,我需要调用home.jsp
页面。我已经为呈现视图的登录控制器和主控制器编写了代码。但是我不知道如何通过我的custom.js
javascript文件调用控制器的请求映射
custom.js
document.getElementById('login_btn').addEventListener("click", function() {
authorizationCheck();
}, false);
function authorizationCheck()
{
var username = document.getElementById('username_txt').value;
var password = document.getElementById('password_txt').value;
if(username == "admin" && password == "123")
{
//code to load the home.jsp
}
}
HomeController.java
@Controller
public class HomeController {
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
/**
* Simply selects the home view to render by returning its name.
*/
@RequestMapping(value = "/", method = RequestMethod.GET)
public String login(Locale locale, Model model) {
return "login";
}
@RequestMapping(value = "/home", method = RequestMethod.GET)
public String home(Locale locale, Model model) {
logger.info("Welcome home! The client locale is {}.", locale);
return "home";
}
}
我对这个框架很陌生。因此,任何关于如何在单击按钮时加载不同jsp的建议都将受到高度赞赏。使用此选项,它将导航到spring controller并显示所需页面
if(username == "admin" && password == "123")
{
document.location.href = "/home";
}
您可以在这里看到一个简单的示例: 如果您只想在签入JS后显示主页,您可以使用:
if(username == "admin" && password == "123")
{
document.location.href = "home";
}
您的表单可以简单到(JSP的一部分) 在您的控制器(是否为Spring)中,您将检索用户名和密码作为
@RequestParam
参数
在普通JSP(JSP/servlet)中,您将分别使用
request.getParameter(“用户名”)
和request.getParameter(“密码”)
。创建一个html表单,并使用authorizationCheck方法提交表单。您可以使用window.location=“home.JSP”
在您的JS代码中,可以重定向到另一个页面。提交表单的代码可以像document.getElementById(“myForm”).submit()一样简单@dsp_用户能否提供一个小例子,也许是一段代码片段?谢谢你,请回去重新开始!在客户机上以明文验证登录是一种糟糕的方法。对于基本方法:构建常规web表单,发布登录数据,验证并在服务器端重定向(如果登录数据正确)。这是调用控制器的方法还是直接从javascript调用视图?我尝试了这一方法,但它似乎不适用于删除home document.location.href=“home”之前的“/”;谢谢当我将它修改为get
而不是post
.Done时,它就可以工作了。谢谢
<form id="myForm" method="post" action="http://localhost/your_app_root/check_credentials.jsp">
<input id="username-txt" name = "username" type="text" value="some_username">
<input id="password-txt" name = "password" type="text" value="some_password">
<input type="submit" value="Log in">
</form>
function authorizationCheck()
{
//do some processing if necessary (you can encrypt username/psw but this is only slightly more secure)
document.getElementById("myForm").submit();
}