本人菜鸟,现在在做一个登陆页面。登陆页面是login.html,用户输入用户名和密码之后,点击登录按钮,LoginVerify.javat验证用户名和密码能否正确,假如错误,login.html显示:“用户名或密码错误”,现在的问题是,本人不知道怎么通过servlet让login.html显示这个错误信息。(修改login.html的p标签内容)
本人相当菜,恳请诸位高手帮本人实现这个功能。为了尽量看最少的代码,代码缩减如下:
login.html:
本人相当菜,恳请诸位高手帮本人实现这个功能。为了尽量看最少的代码,代码缩减如下:
login.html:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>登录页面</title> </head> <body> <form action="LoginVerify" method="post"> <input type="text" id="user_name" name="user_name" /> <input type="password" id="user_pwd" name="user_pwd" /> <input type="submit" value="登录" /> </form> <p id="warning" name="warning">servlet写入的内容请放在这里</p> </body> </html>
LoginVerify.java
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 验证用户名和密码能否正确 String userNameString = request.getParameter("user_name"); String userPwdString = request.getParameter("user_pwd"); String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver"; String dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=Test"; String userName="sa"; String userPwd="GnZx@801"; Connection dbConnection; Statement statement; ResultSet resultSet; String sqlString = "SELECT user_name, user_pwd FROM tb_user WHERE user_name="" + userNameString + "" AND user_pwd="" + userPwdString + """; try { Class.forName(driverName); try { dbConnection = DriverManager.getConnection(dbURL, userName, userPwd); statement = dbConnection.createStatement(); resultSet = statement.executeQuery(sqlString); // 假如在数据库中找不到指定的用户名和密码,说明用户登录输入的用户名或密码错误 if (!resultSet.next()) { // 不知道怎么样写 } resultSet.close(); statement.close(); dbConnection.close(); // 设置响应内容类型 response.setContentType("text/html;charset=UTF-8"); // 要重定向的新位置 response.sendRedirect("content/index.html"); } catch (SQLException e) { e.printStackTrace(); } } catch (ClassNotFoundException e1) { e1.printStackTrace(); } }
解决方案
10
用Session或Request来返回无法登陆信息
10
或HTML换成JSP然后用${}表达式
20
1.使用jsp,servelt里面foward到jsp,jsp根据servlet传入的数据判断显示(当前你也可以不用servlet直接用jsp)
2.使用ajax
2.使用ajax