使用MVC写模式jsp连接到数据库操作

首先用一个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


原文地址:https://www.cnblogs.com/blfshiye/p/4558849.html