jsp+servlet+JDBC开发基础程序

                  jsp+servlet+JDBC开发基础程序

第一步:(先在电脑内创建一个名为gk的表,我已在前面建好:https://www.cnblogs.com/z17-z/p/12849841.html)

第二步:(创建jsp页面)

 

#c{}增加一个id属性:text-align:center;居中
<hr/>是增加横线的HTML语言
<div id="msg">${msg}</div> 接收来自servlet的返回参数并在jsp页面中显示

其中有两个输入框,其中一个输入账号,另外一个输入密码

</br>是换行的HTML语言

当你点击提交按钮时,jsp会将你的账号和密码提交到 Zweb 这个servlet , 而传输方式是 post,这样的话在地址框内无法看到你提交的数据(使用method="get" 就会被看到

                         

 第三步:(编写xml)

纯文本文件可以用来存储数据。其中servlet标签就是为了把servlet映射,使得jsp能连接

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
  <display-name>Zweb6</display-name>
  <servlet>
    <servlet-name>compute</servlet-name>
    <servlet-class>gk.gkservlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>compute</servlet-name>
    <url-pattern>/gk/gkservlet</url-pattern>
  </servlet-mapping>
</web-app>

 第三步:(编写servlet)

package gk;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class gkservlet
 */
@WebServlet("/gkservlet")
public class gkservlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
   
    public gkservlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");//意思是以utf-8编码机制
try {
            
            
            String id = request.getParameter("name");//获取来自jsp提交的name的值
            String password = request.getParameter("password");//获取来自jsp提交的password的值
        
        //将接收的数据传到gk。java验证
            String msg = gk.gk(id,password);//创建一个String对象,名为msg,他的值是gk包里的gk这个class的返回值,这里把id和password这两个值传过去
            request.setAttribute("msg", msg);
            request.getRequestDispatcher("index1.jsp").forward(request, response);//将msg的值返回给index.jsp
        
        
        }
        catch(Exception ex) {
            ex.printStackTrace();
        }
        
        
        
        response.getWriter().append("Served at: ").append(request.getContextPath());
        
    }

    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}

 第四步:(编写JDBC,连接数据库并访问你所需要的参数值值)

package gk;
import java.sql.*;
public class gk {

    public static String gk(String id, String password) {
        String msg = null;
        Connection conn = null;            //连接对象
        PreparedStatement pstmt = null; //预编译的语句对象
        ResultSet rs = null;            //查询结果集
        String sql = null;                //sql语句字符串
        
        try
        {
            //第1步:加载驱动程序
            Class.forName("com.mysql.jdbc.Driver");
            
            //第2步:建立连接(与数据库服务器的连接)
            //连接三个参数:1.数据库的URL地址 2.用户账号 3.用户密码
            conn = DriverManager.getConnection(
               "jdbc:mysql://localhost:3306/gk","root","19990117");
            
            //第3步:创建语句对象
            sql = "select * from gk where id=? and password=?";
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, id);
            pstmt.setString(2, password);
            
            //第4步:执行sql语句,返回结果集
            rs = pstmt.executeQuery();
            
            //第5步:处理结果
            //结果集中有一个内部工作指针,刚开始时它
            //指向第1条记录的前面。通过rs.next()方法
            //可以将指针移动到下一条记录上。
            //从结果集中取数据就是取工作指针所指的那条记录。
            //rs.getString(1):取当前记录的第1个字段的数据值
            //rs.getString("字段名"):取当前记录的指定字段的值。
            if (rs != null && rs.next())
            {
                msg = rs.getString("gkf");
                String name = rs.getString("name");
                msg = name + "同学,你的高考成绩为:" + msg + "分!";
            }
            else
            {
                msg = "抱歉,你的准考证号或查询密码有误!";
            }
        }
        catch (Exception e)
        {
            System.out.println("数据库异常!");
            e.printStackTrace();
        }
        finally
        {
            //打开的每个对象都要占内存空间
            //为了释放内存空间,必须关闭它们。
            //按打开对象的逆序关闭对象
            try
            {
                if (rs != null)
                    rs.close();
                if (pstmt != null)
                    pstmt.close();
                if (conn != null)
                    conn.close();
            }
            catch (Exception ex)
            {                
            }
        }

        return msg;
    }
    

}

 第五步:(开启Tomcat,并输入你的要查询的id和password)

 

猜你喜欢

转载自www.cnblogs.com/z17-z/p/12899832.html