序——
初次接触JSP,写一个登录注册界面
正文——
JSP介绍:JSP通过在标准的HTML页面中插入java代码,其静态的部分无须java程序控制。每个JSP页面就是一个servlet实例, WEB应用中的每个JSP页面都会由servlet容器生成对应的servlet。
理解:在HTML语句中加入java代码的页面
servlet介绍:servlet必须运行在服务器中。servlet容器的作用是处理客户端的请求,并将处理结果返回给客户端。当客户请求到来时,servlet容器获取请求,然后调用某个servlet,并把servlet的执行结果返回给客户。Tomcat就是一个servlet容器 。
servlet工作过程:
因为JSP在执行第一次后,会被编译成Servlet的类文件,即.class,当再重复调用执行时,就直接执行第一次所产生的Servlet,而不再重新把JSP编译成Servelt。在执行JSP网页时,通常可以分为两个时期:转译时期(Translation Time)和请求时(Request Time)。
当JSP网页在执行时,JSP Container会做检查工作,如果发现JSP网页有更新修改时,JSP Container才会再次编译JSP成Servlet; 如果JSP没有更新时,就直接执行前面所产生的Servlet。
◆转译时期:JSP网页转移成Servlet类。
◆请求时期:Servlet类执行后,响应结果至客户端。
转译期间做了两件事情:
◆转译时期:将JSP网页转移为Servlet源代码 .java.
◆编译时期:将Servlet 源代码 .java编译成 Servlet类 .class.
request与session的区别:request对象和session对象的最大区别是生命周期 request对象的生命周期是针对一个客户端(说确切点就是一个浏览器应用程序)的一起请求 当请 求完毕之后,request里边的内容也将被释放点 ,也就是request的生命周期只在数据提交 而session的生命周期也是针对一个客户端 但是却是在别人设置的会话周期内(一般是20-30分钟) session里边的内容将一直存在 即便关闭了这个客户端浏览器 session也不一定会马上释放掉的 简单来说可以这么理解 session相当于是一个客户端的全局变量; request是某一次访问的局域变量;
数据库的连接:
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection(url,user,password);
"com.mysql.jdbc.Driver"需要插入jar包
url:数据库名
连接数据库可以用静态代码块——静态代码块:一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化。
数据库数据类型——VARCHAR:是一种比CHAR更加灵活的数据类型,同样用于表示字符数据,但是VARCHAR可以保存可变长度的字符串。
session介绍:在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象( 默认情况下)。因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用户的session中取出该用户的数据,为用户服务。在服务器创建session对象的同时,会为该session对象生成唯一的session Id,客户端和服务器通过session Id互相确认
JDBC:有一组用java语言编写的类和接口,规定了java开发人员访问数据库所使用的方法。
javabean:简单理解就是一串类似于
private bool male;
public bool isMale()
{
return this.male;
}
public void setMale(bool b)
{
this.male=b;
}
request.getParameter()与request.getAttribute()的区别:
request.getAtribute(String name) 返回name属性的值
request.getParamter(String name) 获得客户传递给服务器的name参数的值
request是对当前页面的请求,如果当前这个页面再去请求另一个页面 会生成新的request
request.getAttribute():是request时设置的变量的值,用request.setAttribute("name","您自己的值");来设置值,
request.getParameter():提取发送过来的参数如
request.getAttribute()得到的是object,request.getParameter()得到的是String
post与get的区别:
post提交数据是隐式的,get是通过在url里面传递的(可以看一下你浏览器的地址栏),用来传递一些不需要保密的数据。
用get时,传输数据的大小有限制 (注意不是参数的个数有限制),为2K;而post没有此限制
客户端用cookie保存了sessionID
客户端用cookie保存了sessionID,当我们请求服务器的时候,会把这个sessionID一起发给服务器,服务器会到内存中搜索对应的sessionID,如果找到了对应的 sessionID,说明我们处于登录状态,有相应的权限;如果没有找到对应的sessionID,这说明:要么是我们把浏览器关掉了(后面会说明为什 么),要么session超时了(没有请求服务器超过20分钟),session被服务器清除了,则服务器会给你分配一个新的sessionID。你得重 新登录并把这个新的sessionID保存在cookie中。
客户端没有用cookie保存sessionID
这个时候如果我们请求服务器,因为没有提交sessionID上来,服务器会认为你是一个全新的请求,服务器会给你分配一个新的sessionID,这就是 为什么我们每次打开一个新的浏览器的时候(无论之前我们有没有登录过)都会产生一个新的sessionID(或者是会让我们重新登录)
JSP的注释:
<%-- JSP中的注释,看不见 --%>
<%
// 注释,看不见
/*
注释,看不见
*/
%>
<!--显式注释-->
URL参数:
http://127.0.0.1/index.jsp?name=user&password=user其中name和password为URL参数