今日报告-01---外加今日学习知识总结
今日打卡-今天(2.20)创建了软件工程日报分类,从今天开始,每天写一篇博客,记录自己每天的学习历程。
所花时间(包括上课):9h (后来补充:我把10:00到12:00的时间也算进去了)
代码量(行):240
发表博客:1篇(包括本篇)
了解到的知识点:自主完成了连接数据库实现添加功能,将表单提交至数据库并显示在页面上,知识点有数据库 JSP SERVLET JDBC等诸多知识
2.23日的补充:补充说明一下,开始的软件工程日报我以为是要和具体的知识写在一篇博客里,后来意识到并不是,
之后会改,这几篇就没办法了,此外,除去前三篇,我每日打卡的博客数量统计就不包括打卡的那篇博客了。
今天是第二周的周一,下午王老师为我们上了这半学期第二节软工课。
在这节课上,王老师用很长时间,以游泳等例子作比,为我们强调了“做中学”的重要性。
在我们软工这个专业中,确实如此,老师与学生的关系也最好应该是“健身教练与学员”的类似关系。
今天是开始。在今天的测验中我表现仍不佳,今日恶补一下。而后会将今日的代码补充在下面。
从明天开始正式写每日总结。
补:终于,经过几个小时的努力,一直到2.21 0:08,我成功完成了今日(在我补充时其实已经是昨日)的练习作业,
我终于自主完成了连接数据库,将表单提交至数据库并显示在页面上。对于我来说是进步,我很高兴。
附上代码:
Daka.java
1 package test; 2 import javax.servlet.ServletException; 3 import javax.servlet.annotation.WebServlet; 4 import javax.servlet.http.HttpServlet; 5 import javax.servlet.http.HttpServletRequest; 6 import javax.servlet.http.HttpServletResponse; 7 import java.io.IOException; 8 import java.io.PrintWriter; 9 import java.sql.*; 10 import com.Bean; 11 @WebServlet("/Daka") 12 public class Daka extends HttpServlet { 13 private static final long serialVersionUID = 1L; 14 Connection conn = null; 15 public Daka(){ 16 super(); 17 } 18 @Override 19 public void init(){ 20 String dburl = "jdbc:mysql://localhost:3306/daka001?useSSL=false&serverTimezone=UTC"; 21 String username = "root"; 22 String password = "1506583922"; 23 try{ 24 Class.forName("com.mysql.cj.jdbc.Driver");//加载驱动程序 25 conn = DriverManager.getConnection(dburl,username,password);//建立连接对象 26 // stmt = conn.createStatement();//创建语句对象 27 System.out.println("连接数据库成功"); 28 } catch (ClassNotFoundException e1){ 29 System.out.println(e1+"驱动程序找不到"); 30 } catch (SQLException e2){ 31 System.out.println(e2); 32 System.out.println("数据库连接失败"); 33 } 34 } 35 public void addit(String date1,String keyword,String summarize,String number1,String maxnum){ 36 37 PreparedStatement preparedStatement=null; 38 try { 39 String sql = "INSERT INTO daka011 (date1,keyword,summarize,number1,maxnum) values (?,?,?,?,?)"; 40 preparedStatement=conn.prepareStatement(sql); 41 preparedStatement.setString(1,date1); 42 preparedStatement.setString(2,keyword); 43 preparedStatement.setString(3,summarize); 44 preparedStatement.setString(4,number1); 45 preparedStatement.setString(5,maxnum); 46 preparedStatement.executeUpdate(); 47 //System.out.println("添加成功"); 48 49 } catch (SQLException e) { 50 e.printStackTrace(); 51 }finally{ 52 53 } 54 } 55 @Override 56 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 57 // 设置响应内容类型 58 response.setContentType("text/html;charset=UTF-8"); 59 60 PrintWriter out = response.getWriter(); 61 String title = "读取表单数据"; 62 63 // 处理中文 64 String date1 =new String(request.getParameter("date1").getBytes("ISO8859-1"),"UTF-8"); 65 String keyword =new String(request.getParameter("keyword").getBytes("ISO8859-1"),"UTF-8"); 66 String summarize =new String(request.getParameter("summarize").getBytes("ISO8859-1"),"UTF-8"); 67 String number1 =new String(request.getParameter("number1").getBytes("ISO8859-1"),"UTF-8"); 68 String maxnum =new String(request.getParameter("maxnum").getBytes("ISO8859-1"),"UTF-8"); 69 addit(date1,keyword,summarize,number1,maxnum); 70 String docType = "<!DOCTYPE html> \n"; 71 out.println(docType + 72 "<html>\n" + 73 "<head><title>" + title + "</title></head>\n" + 74 "<body bgcolor=\"#f0f0f0\">\n" + 75 "<h1 align=\"center\">" + title + "</h1>\n" + 76 "<ul>\n" + 77 " <li><b>日期</b>:" 78 + date1 + "\n" + 79 " <li><b>关键字</b>:" 80 + keyword + "\n" + 81 " <li><b>总结</b>:" 82 + summarize + "\n" + 83 " <li><b>坚持天数</b>:" 84 + number1 + "\n" + 85 " <li><b>最长天数</b>:" 86 + maxnum + "\n" + 87 "</ul>\n" + 88 "</body></html>"); 89 90 } 91 92 @Override 93 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 94 doGet(request, response); 95 } 96 97 @Override 98 public void destroy() { 99 try { 100 conn.close(); 101 }catch (Exception e){ 102 e.printStackTrace(); 103 } 104 } 105 }
Bean.java
1 package com; 2 3 public class Bean { 4 private String date1; //日期 5 private String keyword; //关键字 6 private String summarize; //总结 7 private String number1; //坚持天数 8 private String maxnum; //最长天数 9 public String getDate1() { 10 return date1; 11 } 12 public void setDate1(String date1) {this.date1 = date1;} 13 public String getKeyword(){return keyword;} 14 public void setKeyword(String keyword){this.keyword = keyword;} 15 public String getSummarize(){return summarize;} 16 public void setSummarize(String summarize){this.summarize = summarize;} 17 public String getNumber1(){return number1;} 18 public void setNumber1(String number1){this.number1 = number1;} 19 public String getMaxnum(){return maxnum;} 20 public void setMaxnum(String maxnum){this.maxnum = maxnum;} 21 22 //===================================================== 23 24 }
index.jsp
1 <%-- 2 Created by IntelliJ IDEA. 3 User: 23944 4 Date: 2023/2/20 5 Time: 19:37 6 To change this template use File | Settings | File Templates. 7 --%> 8 <%@ page contentType="text/html;charset=UTF-8" language="java" %> 9 <!DOCTYPE html> 10 <html> 11 <head> 12 <meta charset="utf-8"> 13 <title>打卡</title> 14 </head> 15 <body> 16 <form action="Daka" method="POST"> 17 日期 :<input type="text" name="date1"> 18 <br /> 19 关键字 :<input type="text" name="keyword" /> 20 <br /> 21 总结 :<input type="text" name="summarize"> 22 <br /> 23 坚持天数:<input type="text" name="number1"> 24 <br /> 25 最长天数:<input type="text" name="maxnum"> 26 <br /> 27 <input type="submit" value="提交" /> 28 </form> 29 </body> 30 </html>
这是项目结构:
数据库截图
页面截图:
这里可以看到成功插入了数据
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结