Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
单击按钮时通过javascript调用JSP页面_Javascript_Java_Jsp_Model View Controller_Buttonclick - Fatal编程技术网

单击按钮时通过javascript调用JSP页面

单击按钮时通过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

我目前正在开发一个MVC程序,当用户从
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();
    }