• 使用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


  • 相关阅读:
    牛客小白月赛16E
    洛谷P1309 瑞士轮
    洛谷P1781 宇宙总统
    洛谷P1068 分数线划定
    洛谷P1059 明明的随机数(桶排思想)
    洛谷P1177 【模板】快速排序 (归并排序)
    Python基础-----sys模块
    Python基础-----模块导入注意事项
    Python基础-----os模块
    Python基础-----random随机模块(验证码)
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4558849.html
Copyright © 2020-2023  润新知