基础知识

xml:
1.xml元素定义
区分大小写、必须根元素、名称不带空格冒号,名称开头不能是xml/XML、不能以数字开头
标签不能混乱嵌套
有自闭和标签
又开始了必须要有结束


2.xml解析:sax和dom解析的区别
dom解析是将文档全部加在到内存中,变成一个树形结构,可以方便的对元素进行增删改操作,
缺点是文档过大时占用内存过多,可能会造成内存溢出。

sax解析是边读边解析,将文档一部分一部分地加载到内存,不会占用太多内存,
缺点是不能对文档的标签进行增删改的操作。


servlet:
1、servlet的生命周期
1 什么是生命周期:一个人从出生到死亡
2 servlet的生命周期:从servlet创建到servlet销毁的过程
3 在servlet接口里面有五个方法,其中有三个方法是与生命周期相关的方法
(1)init方法,在servlet创建时候执行这个方法,执行一次,servlet在第一次访问时候创建
(2)service方法,在每次访问servlet时候会执行这个方法,执行多次
(3)destroy方法,销毁servlet时候执行这个方法,执行一次

2、url-pattern的配置
2.1 配置有三种方式
第一种方式:完全路径匹配
(1)写法 : /aa   /hello
第二种方式:目录匹配
(1)写法:  /aa/*
第三种方式:扩展名匹配
(1)写法:  *.do   *.action
    优先级
完全路径匹配 > 目录匹配 > 扩展名匹配


3、重定向和转发
3.1 重定向
(1)使用的是客户端路径
(2)重定向请求两次,使用的是客户端路径,携带项目名称 ,比如 /day07/demo3
3.2 转发
(1)使用的是服务端路径
(2)转发请求一次,使用的是服务器端路径,不需要携带项目名称 , 比如 /demo4


4.重定向和转发的区别 (重要)                                            
(1)重定向
= 重定向请求两次,请求的地址带项目名称
= 302+Location实现重定向的操作
= response.sendRedirect("路径 带项目名称");
(2)转发
= 转发请求一次,路径不需要带项目名称(在服务器内部进行操作)
= request.getRequestDispatcher("转发的路径 不带项目名称").forward(request, response);
(3)重定向:从一个网站到另外的一个网站
    转发:请求的过程中需要携带数据操作




//验证码的代码
public class CodeServlet extends HttpServlet {

/**
* 实现验证码的操作
第一步:生成图片
第二步:生成随机的数字和字母
第三步:把数字和字母画到图片上
第四步:把图片显示到页面上
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//生成图片
int width = 150;
int height = 60;
BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR);
//得到画笔
Graphics2D g2d = (Graphics2D) bufferedImage.getGraphics();
//生成四个随机的数字和字母
String words = "asdfghjklqwertyuiopzxcvbASDFGHJKLQWERTYUIOPZXCVB1234567890";
//创建Random对象
Random r = new Random();
int x = 25;
int y = 25;
//设置颜色
g2d.setColor(Color.YELLOW);
//设置字体的样式
g2d.setFont(new Font("宋体",Font.BOLD,25));
//rotate(double theta, double x, double y) 
//弧度=角度*3.14/180
for(int i=1;i<=4;i++) {
int idx = r.nextInt(words.length());
//根据位置得到具体的字符
char ch = words.charAt(idx);

//旋转+- 30度
int jiaodu = r.nextInt(60)-30;
double hudu = jiaodu*Math.PI/180;
//旋转的效果
g2d.rotate(hudu, x, y);
//把字符画到图片上
g2d.drawString(ch+"", x, y);

x += 25;

//转回去
g2d.rotate(-hudu, x, y);
}

//生成三条干扰线
g2d.setColor(Color.green);
int x1,y1,x2,y2;
for(int m=1;m<=3;m++) {
x1 = r.nextInt(width);
y1 = r.nextInt(height);

x2 = r.nextInt(width);
y2 = r.nextInt(height);
g2d.drawLine(x1, y1, x2, y2);
}
//把图片显示到页面上
ImageIO.write(bufferedImage, "jpg", response.getOutputStream());
}


/**

*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}


}




cookie和session


1.会话就是:打开浏览器,进行网页的浏览,到关闭浏览器的过程,称为一次会话
会话技术用两种技术
(1)cookie技术:客户端的技术
(2)session技术:服务器端的技术


2.销毁持久化的cookie
第一步:创建一个和要销毁cookie项目名称的cookie  new Cookie("name","");
第二步:设置cookie有效时长 setMaxAge(0)
第三步:设置有效路径 ,要和销毁的cookie的路径一致 setPath("/")
第四步:把cookie回写到浏览器中




3.session的创建和销毁(清空购物车)
3.1 session的创建
(1)使用request里面方法 getSession()可以创建session对象,名称是HttpSession 


3.2 session的销毁
有三种方式
(1)非正常关闭服务器


(2)session默认的过期时间
   <session-config>
<session-timeout>30</session-timeout>
   </session-config>


(3)调用session里面方法 invalidate() 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值