这是以前看视频学习JSP时候随手记录下来的,今天整理资料,发表上来,也是给自己留着!
1.JSP时页面间传递参数用request对象的getPrameter方法,同时注意JSP的9大内置对象!
2.<%= %>时,应该注意其中要用到的表达式的声明范围!
3.Select count(*) from users;查询当前数据库中一共有多少记录!
4.关于分页:先定义四个变量: pageSize(每页显示的数量) pageNow (当前页数) pageCount(一共有多少页) rowCount(一共有多少条记录)
算法:if(rowCount%pageSize == 0) {
pageCount = rowCount/pageSize;
} else {
pageCount = rowCount/pageSize + 1;
}
至于获得每页显示的数据,通过SQL中的top语法:"select top"+pageSize+ "* from users where userId not in(select top "+pageSize*(pageNow-1) +"* userId from users)";
5.注意:body里写java片段要放在<% %>之间!
6.Model1模式:方便简洁,适于开发较小项目!
7.页面跳转用到response.sendRedirect("xxx.jsp");注意:获得参数:request.getParameter();
8.jsp页面中传递参数,可以form表单,也可以cookie,session,?user方式!
9.自增语句: insert into users ( username,passwd) select username,passwd from users;二次方成长!
10.一张表对应两个类,一个model类,一个操作类!
11.Session,就是用户访问某个网站时,服务器会在服务器的内存中为该浏览器分配一个空间,该空间被这个浏览器独占,这个空间就是session,改空间的数据默认存在时间为30min,也可以修改!
12.Session可以做什么:网上商城的购物车,保存登陆用户的信息,将数据放入session中可以供同一用户的各个页面使用,防止用户非法登陆到某个页面!
13.Session是浏览器独占的,相当于自家浴缸,ServletContext是公共浴池!
14.一旦Session超时无效,则session中所有的属性全部失效!
15.解决数据库用户名中文问题,u = new String(u.getBytes("iso-8859-1"),"gb2312");
16.乱码解决方式:在tomcat的conf中server.xml中找到connector标签: <Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" /> 在最后加上URIEncoding=gbk(或者GB2312,UTF-8) 本人亲测,在Tomcat 6.0.26下成功!
17.tr 元素定义表格行,th 元素定义表头,td 元素定义表格单元。
18.在<%%>标签中若想写html标签,用out.print();
19.删除跟修改数据库德时候用update!不用query!
20.记住,Script代码写在head里!
21.响应状态码:100-199:表示成功接受请求,要求客户端继续提交下一次请求才能完成整个处理过程!
200-299:表示成功接受请求并已完成整个处理过程!300-399:为完成请求,客户需要进一步细化请求,例如,请求的资源已经移动到一个新地址!400-499:客户端请求有错误!
22.状态码典型情况:200(正常)表示一切正常,返回的是正常请求结果!206(部分内容) 客户发送了一个带有Range头(要求服务器只返回文档中的部分内容)的get请求,服务器要求完成了这个请求!
302/307(临时重定向):指出被请求的文档已经被临时移动到别处,此文档新的url在Location响应头中给出!!
304:未修改!表示客户机缓存的版本是最新的,客户机应该继续使用它!
401:(未经授权) 表示客户机访问的是一个受口令和密码保护的页面,结合使用一个WWW-Authenticate响应头提示客户机应重新发出一个带有Authentication头的请求消息!
404:(找不到)服务器上不存在客户机所请求的资源!
500:(内部服务器错误)服务端错误!
23.一个Servlet程序就是一个实现了特殊接口的Java类,它由支持Servlet(具有Servlet引擎)的web服务器调用和启动运行,一个Servlet程序负责处理它所对应的一个或多个URL地址的访问请求,并接收客户端发出的访问请求信息和产生响应内容!
24.Applet是用于浏览器端的java小程序,Servlet是用于WEB服务端的java小程序!
25.Servlet程序可以完成普通java程序所完成的大多数任务:
获取客户端通过html的form表单递交的数据和URL后面的参数信息;
创建对客户端的响应消息内容;
访问服务器端的文件系统;
连接数据库并开发基于数据库的应用;
调用其他的java类!
26.Servlet映射的最具体匹配原则!其中*.do的匹配优先级最低!
27.Servlet是不能被设置为Web应用程序的目录默认网页文档! 映射URL不能设置为"/action/*.xx"
28.Servlet激活器:<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
就是用来集体激活某个路径下的Servlet类的! 首先应该在conf下的web.xml中接触invoker的注释,然后将激活器加入到项目名下的web.xml下! 此时再将Servlet类复制到classes下时不用再修改项目名下的web.xml文件了!
29.如果某个Servlet的映射路径仅仅为一个正斜杠/,那么这个Servlet就成为当前web应用程序的缺省Servlet,凡是在web.xml中找不到匹配的<servlet-mapping>元素的URL,它们的访问请求都将交给缺省Servlet处理,也就是说,缺省Servlet用于处理所有其他SErvlet都不处理的访问请求!在<tomcat的安装目录>\conf\web.xml文件中,注册了一个名为org.apache.catalina.servlets.DefaultServlet的et设置成了缺省Servlet!当访问Tomcat服务器中的某个静态html文件和图片时,实际上是在访问这个缺省Servlet!
30.ExtClassLoader类装载器负责加载存放在<JAVA_HOME>/jre/lib/ext/目录下的jar包中的类,AppClassLoader负责加载应用程序的启动执行类!利用这个特点,可以直接把要运行的类复制到ext目录下,这样就可以不用手动设置环境变量,而且也能找到这个类!这两个类都是launcher类的内部类!
31.一个类装载器也是一个类,所以也需要另一个装载器来装载,为了不造成装载器的无限延伸,Java虚拟机内置了一个自动加载的装载器,这个装载器Bootstrap类,它属于java虚拟机的内核,不用其他的装载器来装载,即自动装载!该装载器负责装载Java核心包!rt.jar中的类,这些类的Class.getClassLoader()方法返回为null.表示其是由Bootstrap装载的!
32.java类的装载顺序:采用委托模式: 每个ClassLoader本身只能分别加载特定位置和目录中的类,而委托模式使得某一个ClassLoader可以委托它的父类加载器去加载这个类,从而让程序借助委托链中的某一个子级加载器加载到它以上的父类中的多个类!当要加载一个类时:ClassLoader的loadClass方法会先判断这个类是否被加载过,如果没被加载过就调用父类的加载器去加载这个类,如果父级的加载器无法加载这个类,子级的加载器才调用子级内部的findClass方法去进行真正的加载。委托过程会一直追溯到Bootstrap类加载器。如果委托过程中所有的类装载器都不能完成类的加载,最终就会报告ClassNotFountException异常!一个类加载器只能创建某一个类的一份字节码数据,即只能为某个类创建一个与之对应的Class实例对象。在一个Java虚拟机中可以存在多个类加载器,每个类加载器都拥有子级的名称空间,对于同一个类,每个类的加载器都可以创建出它的一个Class对象!采用委托模式避免了java虚拟机中的多个类加载器为同一个类创建多份字节码数据的情况,只要开发人员自定义的加载器不覆盖ClassLoader中的loadClass方法,而是覆盖其findClass方法,这样就可以继续采用委托模式!
33.如果某个Servlet实现了SingleThreadModel接口,那么Servlet引擎将一单线程方式调用其service方法!
34.SingleThreadModel接口中没有定义任何方法,只要在Servlet类的定义中增加实现SingleThreadModel接口的生命即可!
35.实现SingleThreadModel并不能根本上解决线程安全问题!因为Servlet引擎创建了多个实例对象,SingleThreadModel已经
被标记为过时方法!
36.Servlet激活器调用Servlet时必须在地址栏输入Servlet的完整名!
37.windows下在命令行中选定一段内容后,命令行将还处于阻塞状态,如果是tomcat将会停止对IE的响应!
38.GenericServlet类实现了ServletConfig接口是为了调用getServeltConfig方法更方便!
39.DNS服务器:将地区浏览器的访问请求转发给相应的地区代理服务器!
40.www.jakarta.org开源项目下载站!
41.html语言是标记语言!非编程语言!
42.IETF W3C是制定html标准的两个组织!IETF是民间组织,其中以RFC来命名自己发布的标准!
43.<title></title>之间添加ie页的主题!
44.<body>标签的属性:
text:用于设定整个网页的文字颜色。
link:用于设定一般超链接文本的显示颜色。
alink:用于设定鼠标移动到超链接上时超链接文本的显示颜色。
vlink:用于设定访问过的超链接文本的显示颜色。
gackground:用于设定背景墙纸所用的图像文件,可以是GIF,JPEG文件的绝对或相对路径。
bgcolor:用于设定背景颜色,当设定背景墙纸时这个属性会失效,除非墙纸有透明部分。
leftmargin:设定网页显示画面与浏览器左边的间隙,单位为像素。
topmargin:设定网页显示画面与浏览器上边的间隙,单位为像素。
此外,还有class name, id,style属性等!
45.颜色类型的属性值有两种表示方式:十六进制RGB颜色码使用一个#号后跟6位十六进制数:#FF0000
47.注释格式:<!-- -->,注释标签不能被嵌套使用!
48.< >是一对尖括号, 是一个空格位置!在浏览器中如果只用空格表示空格,则是识别一个空格!
49.这种特殊符号叫做html编码,以一个&开始后面跟字母序列以分号结尾!© == ©代表版权符号!
50.常用html编码:< 代表 < ---> 代表 >--- & 代表 &---"代表"
® 代表®---©代表©---™代表TM--- 代表空格;
51.特殊情况:设<body>标签的class属性值为'z'x"x,那么如下几种方式
1.<body class='z'x"x></class>
2.<body class=''z'x"x'></body>
3.<body class="'z'x"x"></body>
4.<body class="'z'x"x"></body>
其中第四个是正确的,也只有这种情况中才使用"!
52.<p></p>标签用来表示一个段落,align=right表示对齐方式!如:<p align=right>这是第一行</p>
<p align=right>这是第二行</p>
53.<br>无匹配单标签,表示换行!<nobr></nobr>标签之间的内容不会被浏览器自动截断换行!
<blockquote></blockquote>标签之间的内容会被浏览器自动缩进!如果嵌套两层<blockquote>标签对则缩进2倍!
<center></center>标签对使其内容自动水平对齐!
<marquee></marquee>标签对通知浏览器滚动显示其中内容!有两个属性
:direction="up"or"down"or"left"or"right" behavior="slide"or"scroll"or"alternate"
注意在<marquee>标签中使用<!-- -->注释时浏览器会将右边的尖括号匹配到<marquee>中!显示不正常!
54.制表标签组:<dl><dt>表头</dl><dd>内容</dd></dl>效果:
中国城市
北京
东京
南京
美国城市
芝加哥
洛杉矶
曼哈顿
55.<ol></ol>标签用于创建有数字序列的表,<ul><ul>创建无数字序列的表,
<li></li>用于在上述两个表中创建具体元素!效果:
中国城市
1.上海
2.大城
3.阳泉
美国城市
上海
大城
阳泉
56.<pre></pre>用于通知浏览器预处理其中的文本格式!效果:
<pre>aaa
bbb
ccc ccc
ss
ss dd ee ss</pre>这样的显示效果与源代码中的格式一样,包括回车换行空格等!
57.文本标签用于控制浏览器中的文本显示格式!
<h1></h1>...<h6></h6>表示六种字体,由大到小!
<b></b><i></i><u></u>分别表示粗体,倾斜,下划线!
<sub></sub><sup></sup>表示字体的上标,下标!
<tt></tt><cite></cite><em></em><strong></strong>分别表示
以打印机风格显示文本,引用风格,强调格式,加重格式!
58.<font>标签的三个属性face,size,color分别表示字体名字,字体大小在-7到+7之间,字体颜色!
如果没有指定face,则使用浏览器默认的face!