1.
(1)session:核心的业务逻辑应该通过session而不能是Cookie中;
(2)客户端访问服务器时,服务器先查询该客户是否创建session,如果没有创建,择创建一个session,然后产生一个sessionID,将这个ID放到客户端的cookie,客户端再次访问服务器时,通过这个sessionID查询session的信息。
(3)只要是同一套窗口下的session用一个。
(4)解决cookie被禁止之后通过URL记录sessionID的策略:重写URL
response.encodeURL(request.getRequestURL().toString())
(5)session对象常用的方法:
取得客户端的Session,如果没有就创建一个:
Session mySession = request.getSession(true);
mySession.isNew();//是不是刚刚创建的
mySession.getId();//获得Id号
mySession.getCreationTime();
mySession.getLastAccessedTime();
request.getRequestedSessionId();//取得Sessione的Id号
request.isRequestedSessionIdFromCookie();//是不是从Cookie取得的Id
request.isRequestedSessionIdFromURL();//是不是从URL取得的Id
request.isRequestedSessionIdValid();//取出的Id是否合法
2.不要在servlet中定义成员变量!
3.注意路径: form表单中的action后面的/表示域名,绝对地址;web.xml包括了webapp的路径。比如form中:/ = localhost:8080/ 而web.xml中:/ = localhost:8080/webName/
4.ServletContext,将Servlet和容器联系起来。范围比session大。
5.javabean使用规范:一个普通java类
1)属性名称第一字母小写,一般为private,一般具有get()和set()方法
2)具有一个空的构造方法
3)不应该具有GUI表现,一般用于实现某一个业务逻辑或者是取得特定的结果。
4)里面可以放public static 的方法,然后servlet直接调用就好了。
JSP:本身就是一个servlet!!!
1)jsp在第一次通过Tomcat调用时,tomcat会自动将jsp转换为一个.java和一个.class文件。通过JSP Engine先转化然后编译
2)直接在HTML中内嵌JSP代码
3)如果使用框架的话会使用新的JSP-JSTL和JSF
4)JSP传统语法:Declaration,Scriptlet,Expression,Comment,Directive,Action动作指令,内置对象
5)Scriptlet java的语法片段<%语法片段%>
<%!语法片段%>
<%= %> <%=accessCount%>和<%out.println(accessCount);%>效果相同
<%!int i=0;%>此刻为成员变量的声明
<%!fun(){}%>此刻在类的中间的方法,不要成为<%fun(){}%>
<%int i=0;%>此刻为方法的局部变量
mysql:
1.常用数据类型:
int(四个字节)
double(浮点型)
char(定长字符串)
varchar
datetime
longtext (最大4G)
2.常用操作
1)创建一个数据库:create database mydata;
2)使用/切换到某一个数据库:use mydata;
3)创建一个表格:
create table dept
(
deptno int primary key,
dname varchar(14),
loc varchar(13),
);
4)通过执行script脚本文件去进行数据库操作
\. c:\\mysql.sql (文件中--注释)
5)show databases;
6)show tables;
7)desc dept;
8)insert into dept values (50,'E','E');
9)commit;
3.不同数据库的主要区别:
1)数据类型不同;数值型、文本型、日期类型、大的二进制类型
2)分页程序(从第三条开始数两条信息)
select * from dept order by dept desc limit 3,2;
3)自动递增auto_increment
create table article
(
id int primary key auto_increment,
title varchar(255)
);
insert into article values(null,'a');
insert into article (title) values('c');
4)select now();显示当前时间;
5)日期格式的转换:select date_format(now(),'%y-%m-%d %h:%i:%s');
插入日期:insert into emp values(9999,'sheng','clerk',1234,'1989-2-18 12:23:19',8000,80,10);
3.Java连接mysql:jdbc
1)需要mysql-connector-java-3.1.13-bin.jar的引入
import java.sql.*;
Connection conn = null;
Statement stmt = null
ResultSet rs = null;
try{
class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/mydata?user=root&password=root");
Statement stmt = conn.createStatement();
ResultSet re = stmt.executeQuery("select * from dept");
while(re.next()){
System.out.println(re.getString("deptno"));
}
catch(ClassNotFoundException ex){
ex.printStackTrace();
}
catch(Exception ex){
ex.printStackTrace();
}finally{
try{
if(rs!=null){rs.close();rs=null;}
if(stmt!=null){stmt.close();stmt=null;}
if(conn!=null){conn.close();conn=null;}
} catch(SQLExcepiotn e){
e.printStackTrace();
}
}