JSP 实验六(1)JavaBean

JSP 实验六(1)JavaBean


一、实验题目及要求

1.实验目的

本实验的目的是掌握怎样在JSP中使用Javabean完成数据的封装操作,并能够使用Javabean操作文件或连接数据库。

2.实验内容

编写一个JSP页面:inputAndShow.jsp和一个名字为car的Javabean,其中car由Car.class类负责创建。

1.inputAndShow.jsp的具体要求

inputAndShow.jsp页面提供一个表单。其中表单允许用户输入汽车的牌号、名称和生产日期,该表单将用户输入的信息提交给当前页面,当前页面调用名字为car的bean,并使用表单提交的数据设置car的有关属性的值,然后显示该car的各个属性的值。
该页面还能够显示已经提交的所有车辆信息。

2.Car.java的具体要求

编写的Car.java应当有刻画汽车号码、名称和生产日期的属性,并提供相应的getXxx和setXxx方法,来获取和修改这些属性的值。Car.java能够将汽车的信息保存到某个文本文档,或者能够将汽车的信息保存到某个数据库中,可由同学们自行选择。

3.JSP页面效果示例

在这里插入图片描述

二、实验实现代码

1.inputmess.jsp

代码如下(示例):

<%--
  Created by IntelliJ IDEA.
  User: ruochen
  Date: 2020/11/8
  Time: 13:08
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<jsp:useBean id="car" class="tang.ruochen.shuai.Car" scope="request" />
<html>
<head>
    <title>Title</title>
</head>
<body>
<pre>
    <form action="" method="post">
    序    号:<INPUT type="text" name="num" placeholder="如:1">
    汽车牌号: <INPUT type="text" name="number" placeholder="如:陕A12345">
    汽车品牌:<INPUT type="text" name="brand" placeholder="如:长城">
    生产日期:<INPUT type="text" name="productbirth" placeholder="如:2019.5">
    <INPUT type="submit" value="提交">
</form>
    <%
        request.setCharacterEncoding("UTF-8");
        String num = request.getParameter("num");
        String number = request.getParameter("number");
        String brand = request.getParameter("brand");
        String productbirth = request.getParameter("productbirth");
    %>
<jsp:setProperty name="car" property="num" value="<%=num%>"/>
<jsp:setProperty name="car" property="number" value="<%=number%>"/>
<jsp:setProperty name="car" property="brand" value="<%=brand%>"/>
<jsp:setProperty name="car" property="productbirth" value="<%=productbirth%>"/>
  <%
      if(!(num==null||number==null||brand==null||productbirth==null))
      {%>  最后一个提交的数据为:
    车牌号:<%=number%>,品牌:<%=brand%>,生产日期:<%=productbirth%>
<%}%>
<jsp:getProperty name="car" property="result"/>


</pre>
</body>
</html>

2.Car.java

代码如下(示例):

package tang.ruochen.shuai;
import java.sql.*;

import static java.sql.ResultSet.CONCUR_READ_ONLY;
import static java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE;

public class Car {

    String number;
    String brand;
    String productbirth;
    String num;
    StringBuffer result=new StringBuffer("123");
    public void setNum(String num) {
        this.num = num;
    }


    public void setNumber(String number) {
        this.number = number;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public void setProductbirth(String productbirth) {
        this.productbirth = productbirth;
    }

    public Car()throws Exception {
        result=new StringBuffer();
        Class.forName("com.mysql.cj.jdbc.Driver");
    }
    public String getResult() {
        try {
            String condition="insert into car values("+"'"+num+"','"+number+"','"+brand+"','"+productbirth+"');";
            Connection con = DriverManager.getConnection("jdbc:mysql://127.0.0.1/myjdbc?" + "user=root&password=&characterEncoding=UTF-8&serverTimezone=GMT");
            Statement sql = con.createStatement(TYPE_SCROLL_INSENSITIVE,CONCUR_READ_ONLY);
            ResultSet rs;
            if(!(num==null||number==null||brand==null||productbirth==null))
                sql.executeUpdate(condition);
            rs=sql.executeQuery("select * from car;");

            ResultSetMetaData rsmd = rs.getMetaData();

            int n = rsmd.getColumnCount();

            rs.last();
            result.append("目前已登记车辆共"+rs.getRow()+"辆:");
            rs.beforeFirst();
            result.append("<table border = 1>");

            result.append("<tr>");
            result.append("<th>"+""+"</th>");

            result.append("<th>"+"汽车牌号"+"</th>");
            result.append("<th>"+"汽车品牌"+"</th>");
            result.append("<th>"+"生产日期"+"</th>");
            result.append("</tr>");

            while(rs.next()){
                result.append("<tr>");
                for(int i = 1;i<=n;i++)
                {
                    result.append("<td>"+rs.getString(i)+"</td>");
                }
                result.append("</tr>");
            }

            result.append("</table>");
            con.close();
        }
        catch (SQLException e){
            result.append(e.getMessage());
        }
        return result.toString();
    }

}

效果显示

在这里插入图片描述
在这里插入图片描述

总结

  1. 对jdbc有了更深的了解
  2. 如需使用,自行更改数据库名与密码
    Connection con = DriverManager.getConnection(“jdbc:mysql://127.0.0.1/myjdbc?” + “user=root&password=&characterEncoding=UTF-8&serverTimezone=GMT”);连接数据库,
    Statement sql = con.createStatement(TYPE_SCROLL_INSENSITIVE,CONCUR_READ_ONLY);
    创建sql语句
    rs=sql.executeQuery(“select * from car;”);
    保存数据库输出信息
    while(rs.next()){
    result.append("");
    for(int i = 1;i<=n;i++)
    {
    result.append(""+rs.getString(i)+"");
    }
    result.append("");
    }
    将结果以字符串形式返回
    return result.toString();
  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值