发表于: 2017-10-29 21:01:47

1 826


今日完成的事情:

0;先说一下昨天的空指针问题,按照师兄所说debug断点调试,终于发现。。。。所有的空指针都是由get方法里的id引起的,只要用到get方法,就报空

问题就在这,因为主键自增,就没有写这个传值。。。servlet里面调用get方法肯定得不到id的主键值。。。

 

1;通过大段代码学习基础概念

A;类对象:所有的类,都存在一个类对象,这个类对象用于提供一类层面的信息,比如有几种构造方法, 有多少属性,有哪些普通方法,比如一个学生和一个学校直接的对比;讨论的意义限于类层面,用于描述这种类,都有什么属性,什么方法的。而获取类对象的方式有三种获取类对象有3种方式(在一个JVM中只有一ClassLoader),一种类,只会有一个类对象存在;所以三种方式取出来的类对象,都是一样的。1.Class.forName2. Student.class3. new Student().getClass(),这里只说一点,就是获取类对象的时候,会导致类属性被初始化,联系到jdbc的驱动初始化,用的就是class.forName,就是获取驱动类的类对象,进而初始化

B:基本类型和类类型;所有的基本类型,都有对应的类类型,比如int对应的类是Integer这种类叫做封装类;两者可以互转;

Number类是数字类的父类,以及装箱拆箱概念

基本类型的最值,可以通过封装类Max/Min获取

C:数字和字符串之间的转换

 

常见的数学方法,由java.lang.Math提供,并且都是以静态方法的形式存在

D:格式化输出Formatprintf,前面也提到了,这次又遇到format,还是再总结看一下吧。先说普通的print不格式化输出,就需要进行字符串连接,如果变量比较多,拼接就会显得繁琐,使用格式化输出,就很简洁了,少了许多加号和双引号;实际上printfformat能够达到一模一样的效果,就是在printf中直接调用了format

此外还有一个string.format()

D: StringBuffer是可变长的字符串和String内部是一个字符数组一样,StringBuffer也维护了一个字符数组。但是,这个字符数组,留有冗余长度比如说new StringBuffer("the"),其内部的字符数组的长度,是19,而不是3,这样调用插入和追加,在现成的数组的基础上就可以完成了。如果追加的长度超过了19,就会分配一个新的数组,长度比原来多一些,把原来的数据复制到新的数组中,看上去 数组长度就变长了;这里暂时只知道append是追加的意思就可以了

E:html的常用标签:

<table> 标签定义 HTML 表格。简单的 HTML 表格由 table 元素以及一个或多个 trth td 元素组成tr 元素定义表格行,th 元素定义表头,td 元素定义表格单元。align规定表格相对周围元素的对齐方式border规定表格边框的宽度。cellspacing规定单元格之间的空白。

<tr>标签定义HTML表格中的行;tr元素包含一个或多个thtd元素。

<td>标签定义HTML表格中的标准单元格。HTML 表格有两类单元格:表头单元 - 包含头部信息(由 th 元素创建);标准单元 - 包含数据(由 td 元素创建)td 元素中的文本一般显示为正常字体且左对齐。

<a> 标签定义超链接,用于从一张页面链接到另一张页面。<a> 元素最重要的属性是 href 属性,它指示链接的目标。而<a> 标签的href 属性的值可以是任何有效文档的相对或绝对 URL,包括片段标识符和 JavaScript 代码段。如果用户选择了 <a> 标签中的内容,那么浏览器会尝试检索并显示 href 属性指定的 URL 所表示的文档,或者执行 JavaScript 表达式、方法和函数的列表。

在附上一个table的属性

2,计划变了一下,学完Servlet进行CRUD,一个比较明显的弊端就是在Servlet编写html代码很痛苦,太乱,太渣。最好可以在html文件里面写html代码,同时又能在里面调用java的变量,再系统了解学习一下JSP

渣,

 

乱,

JSPJava Server Pages)先规范介绍一下是一种由SUN开发的类似ASP(是由微软公司研发的服务器端脚本技术:通过把脚本代码放到 HTML 页面内,使用ASP来创建动态的网页。在页面返回浏览器之前,代码会首先被服务器执行)的服务器端技术。通过JSP可以把Java代码放入HTML页面来创建动态页面。在页面返回浏览器之前,代码同样会首先被服务器执行。由于JSP使用 Java,此技术不会受限于任何的服务器平台。简单来说;就是能够直接使用Html代码,然后在html中写java代码,先来一个小demo感受一下

 


中间出现小问题了,写在下面了,修改之后很ok

再来一个常用的foreach

3;分析jsp的执行过程

JSP可以在html中运行java代码的原因,最核心的地方就是JSP被转译成了Servlet,先看结果,找了半天。。没有生在本地tomcat,而是隐藏在idea的配置文件里

说一下具体流程:hello.jsp转译为hello_jsp.java---hello_jsp.java是一个servlet---hello_jsp.java编译为hello_jsp.class---执行hello_jsp,生成html---通过http协议把html响应返回给浏览器

这里也可以看出hello_jsp.java,可以发现它继承了类*HttpJspBase 前面说的HelloServlet是一个Servlet,不是因为它的类名里有一个"Servlet",而是因为它继承了HttpServlet,这里同样HttpJspBase 继承了HttpServlet,所以可以发现hello_.jsp.java 是一个Servlet


4;每个网页的最下方都有 版权声明等信息。 如果不使用包含,那么每个网页都需要单独写,如果版权声明要修改,则需要很大的工作量。

 

降低维护成本可以通过使用include的办法,只需要准备一个footer.jsp,然后在其他页面包含footer.jsp即可;修改的时候,只需要修改footer.jsp所有的页面就都修改了。结果

先是写footer.jsp

然后两种include方法包含,指令和动作,效果相同,两种区别注释了

5;上面操作可以看出指令<%@include 让两个jsp合并成为同一个java文件,在发出better.jsp 里定义的变量,直接可以在footer.jsp中访问。而动作<jsp:include />其实是对footer.jsp进行了一次独立的访问,可以学习一下传参的知识;使用动作<jsp:include,并通过<jsp:param 带上参数,这个感觉用处不大,而且麻烦就步=不多说了。


6;jsp跳转这个给前面servlet一样

客户端

服务端

7;大名鼎鼎的cookie

Cookie是一种浏览器和服务器交互数据的方式;是由服务器端创建,但是不会保存在服务器;创建好之后,发送给浏览器,浏览器保存在用户本地;下一次访问网站的时候,就会把该Cookie发送给服务器;举个例子登陆网站,会问是否要保持登陆状态。如果选了,以后登陆就不需要再输入账号密码。这就是cookie


 

明日计划的事情:

1;计划临时变了一点,明天完成mvc,计划暂时延期一天

2java基础继续,不过减少时间

3;简单学习完jsp


遇到的问题及解决方法:

1;第一个jsp第一次就报了个500,语法错误。。。


然后又出来一个,,应该是启动的tomcat有问题,都关掉,重启这个就可以了

 

收获:

1;对于servletcrud流程清晰了;

2jsp的概念操作也学会很多;

3html的相关标签页面元素积累了一部分;

4java基础又恶补了一波。

 

 

 



返回列表 返回列表
评论

    分享到