Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.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/5/ember.js/4.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
Servlet向JSP发送响应 登录验证 登录名 密码_Jsp_Servlets - Fatal编程技术网

Servlet向JSP发送响应 登录验证 登录名 密码

Servlet向JSP发送响应 登录验证 登录名 密码,jsp,servlets,Jsp,Servlets,然后这个servlet <html> <head> </head> <body> <form name="loginform" method="post" action="WelcomeServlet"> <br><br> <table align="center"><tr><td><h2>Login Authentication</h2></td

然后这个servlet

<html>
<head>
</head>
<body>
<form name="loginform" method="post" action="WelcomeServlet">
<br><br>
<table align="center"><tr><td><h2>Login Authentication</h2></td></tr></table>
<table width="300px" align="center" style="border:1px solid #000000;background-color:#efefef;">
<tr><td colspan=2></td></tr>
<tr><td colspan=2>&nbsp;</td></tr>
    <tr>
        <td><b>Login Name</b></td>
        <td><input type="text" name="username" ></td>
    </tr>
    <tr>
        <td><b>Password</b></td>
        <td><input type="password" name="password"></td>
    </tr>

    <tr>
        <td></td>
        <td><input type="submit" name="Submit" value="Submit"></td>
    </tr>
    <tr><td colspan=2>&nbsp;</td></tr>
</table>
</form>


</body>
</html>
import java.io.*;
导入java.util.*;
//导入java.io.PrintWriter;
导入javax.servlet.*;
//导入javax.servlet.ServletConfig;
//导入javax.servlet.ServletException;
导入javax.servlet.http.HttpServlet;
导入javax.servlet.http.HttpServletRequest;
导入javax.servlet.http.HttpServletResponse;
公共类WelcomeServlet扩展了HttpServlet{
/* 
@凌驾
public void init(ServletConfig config)抛出ServletException{
super.init(config);
}
*/
受保护的void doPost(HttpServletRequest请求、HttpServletResponse响应)引发ServletException、IOException{
/*
*获取表单参数的值
*/
response.setContentType(“text/html”);
PrintWriter out=response.getWriter();
//out.println(“我在欢迎servlet上…”);
字符串username=request.getParameter(“用户名”);
字符串密码=request.getParameter(“密码”);
out.println(“”);
out.println(“”);
println(“一个非常简单的servlet示例”);
out.println(“”);
out.println(“”);
out.println(“”);
if((username.equals(“kiran”)&&(password.equals(“kiran”))
{
String welcomeMessage=“欢迎”+用户名+“感谢登录…”;
out.println(“+welcomeMessage+”);
getRequestDispatcher(“/login.jsp”).include(请求、响应);
}否则
{
println(“您不是有效用户…”);
getRequestDispatcher(“/login.jsp”).include(请求、响应);
}
out.println(“”);
out.close();
}
公共空间销毁(){
}
} 

我想要一个来自servet的响应,它显示在jsp页面登录验证表的下方,这不是完全正确的。与许多基本servlet教程试图让您相信的相反,不应该使用来输出纯HTML。这与MVC思想相矛盾。应该在那里使用

在这种情况下,您需要让servlet设置您希望在请求范围内的JSP中显示的消息,然后将请求/响应转发给JSP。在JSP中,可以使用动态控制HTML输出,并使用
${}
访问和显示消息

下面是servlet的启动示例:

import java.io.*;
import java.util.*;
//import java.io.PrintWriter;
 import javax.servlet.*;
//import javax.servlet.ServletConfig;
//import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class WelcomeServlet extends HttpServlet {
/* 
@Override
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
 */

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
/*
* Get the value of form parameter
*/
response.setContentType("text/html");

PrintWriter out = response.getWriter();
//out.println("I am on welcome servlet...");
String username = request.getParameter("username");
String password =request.getParameter("password");

out.println("<html>");
         out.println("<head>");
         out.println("<title> A very simple servlet example</title>");
         out.println("</head>");
          out.println("<body>");
            out.println("</body>");

      if((username.equals("kiran"))&&(password.equals("kiran")))
       {

         String welcomeMessage = "Welcome "+username+" thanks for login...";
         out.println("<h1>"+welcomeMessage+"</h1>");
      request.getRequestDispatcher("/login.jsp").include(request, response);

    }else
      {
         out.println("<h1> You are not the valid user...</h1>");
    request.getRequestDispatcher("/login.jsp").include(request, response);

        }

            out.println("</html>");
            out.close();





}

public void destroy() {

}
} 
并编辑您的
login.jsp
,添加以下内容:

public class WelcomeServlet extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        String message = null;

        if ((username.equals("kiran")) && (password.equals("kiran"))) {
            message = "Welcome "+username+" thanks for login...";
        } else {
            message = "You are not the valid user...";
        }
    
        request.setAttribute("message", message);
        request.getRequestDispatcher("/login.jsp").forward(request, response);
    }

} 

...
${message}
taglib声明必须放在顶部。
可以正好放在您想要显示
的位置

另见:
  • -包含包含基本验证的Hello world
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

...

<c:if test="${not empty message}">
    <h1>${message}</h1>
</c:if>