首先用一个JavaBean封装数据库操作,即mvc中的模型
JdbcBean.java
package data; import java.sql.*; public class JdbcBean { private String DBDriver="com.mysql.jdbc.Driver"; private String DBUrl="jdbc:mysql://localhost:3306/test"; private String DBUser="root"; private String DBPassword="686175"; public Connection conn=null; public ResultSet rs=null; public ResultSet query(String sql)throws Exception{ try{ Class.forName(DBDriver); conn=DriverManager.getConnection(DBUrl,DBUser,DBPassword); Statement stmt=conn.createStatement(); rs=stmt.executeQuery(sql); return rs; } catch(SQLException e){ System.out.println(e.getMessage()); } return null; } public void update(String sql)throws Exception{ try{ Class.forName(DBDriver); conn=DriverManager.getConnection(DBUrl,DBUser,DBPassword); Statement stmt=conn.createStatement(); stmt.executeUpdate(sql); stmt.close(); conn.close(); } catch(SQLException e){ System.out.println(e.getMessage()); } } }在src的data包中另一个控制器Servlet,用于处理连接数据库的操作,此次project用的数据库是MySQL
LoginServlet.java
package data; import java.io.IOException; import java.sql.ResultSet; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class LoginServlet extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String toJSP=""; request.setCharacterEncoding("gbk"); response.setContentType("text/html;charset=gbk"); String username=request.getParameter("username"); String password=request.getParameter("password"); String sql="select * from user where username='"+username+"'" + "&&password='"+password+"'"; JdbcBean jdbc=new JdbcBean(); try{ ResultSet rs=jdbc.query(sql); if(rs.next()){ toJSP="success.jsp"; } else{ toJSP="error.jsp"; } rs.close(); } catch(Exception e){ System.out.println("发生查询异常"); } RequestDispatcher rd=request.getRequestDispatcher(toJSP); rd.forward(request, response); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); } }接下来就是用jsp写的视图,显示页面操作
登录页面login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <html> <head> <title>My JSP 'login.jsp' starting page</title> <script> function myFunction(){ if(myForm.username.value==""){ alert("username不能为空"); } else if(myForm.password.value==""){ alert("密码不能为空"); } else{ myForm.submit(); } } </script> </head> <body> <form action="LoginServlet" method="post" name="myForm"> <center> <table> <tr> <td>username</td> <td><input type="text" name="username"></td> <td>username不能为空</td> </tr> <tr> <td>密码</td> <td><input type="password" name="password"></td> <td>密码不能为空</td> </tr> <tr> <td></td> <td><input type="submit" value="提交" onclick="myFunction()"> <input type="reset" value="取消"></td> </tr> </table> </center> </form> </body> </html>登录成功页面success.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <html> <head> <title>My JSP 'success.jsp' starting page</title> </head> <body> <% out.println("登录成功!"); %> </body> </html>假设登录的username和password和存放在数据库的数据对不上,就显示登录错误页面error.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <html> <head> <title>My JSP 'error.jsp' starting page</title> </head> <body> <% out.println("username或password错误,登录失败!"); %> </body> </html>
输入usernameming,passwordming
输入usernamelin,passwordli
完整代码包:http://download.csdn.net/detail/u011731233/8093745