Servlet学习(二)

一、请求的方式

1.地址栏输入

2.超链接

3.Form表单

4.ajax,异步无刷新技术

5.请求转发

6.重定向

二、HttpServletRequest对象

主要作用:接受客户端发送过来的请求信息

1.常用方法

getRequestURL():获取来源URL

getQueryString():

getMethod():请求方式,get/post

2.请求乱码解决

2.1 方案一

只对post请求有效

req.setCharacterEncoding("UTF-8");

2.2 方案二

一次只能处理一个参数

如果本身不乱码,使用后会乱码

无论get还是post都可以使用

new String(request.getParameter("参数名").getBytes("ISO-8859-1"),"UTF-8")

3.请求转发

请求转发,是一种服务器的行为

当客户端请求到达后,服务器进行转发, 此时会将请求对象进行保存

req.getRequestDispatcher("请求地址").forward(request,response)

4.request作为域对象

设置作用域

req.setAttribute("user", "zhangsan");

移除作用域

req.removeAttribute("user");

三、HttpServletResponse对象

1.常用方法

getWriter(),获取输出的 字符流

getOutputStream(),获取输出的字节流

setContentType(),设置响应类型和编码

2.刷新和页面自动跳转

2.1 页面跳转

3秒后进行跳转

response.setHeader("refresh","3;URL=ok.html");

2.2 自动刷新

每隔2秒自动刷新

resp.setHeader("refresh","2");

3.响应数据

接受到客户端请求后,可以通过HttpServletResponse对象直接进行响应

getWriter()获取字符流

PrintWriter writer = resp.getWriter();

writer.write("<h4>Hello Servlet</h4>");

writer.close();

getOutputStream()获取字节流,可以响应一切数据

OutputStream outputStream = resp.getOutputStream();

outputStream.write("<h4>Hello Servlet</h4>".getBytes());

4.解决乱码

4.1 指定客户端和服务器使用的编码一致

设置服务器的编码格式

resp.setCharacterEncoding("UTF-8")

设置客户端的编码格式

resp.setHeader("content-type", "text/html;charset=UTF-8");

4.2 使用单句话代替

用这句话,就可以替代,完成编码格式统一和,响应类型识别

resp.setContentType("text/html;charset=utf-8");

5.响应图片

5.1  获取路径

获得项目在服务器中的真实路径

String path = req.getServletContext().getRealPath("/")

获得图片的存放路径

String filepath = path + "WEB-INF/图片名称.jpeg"

5.2 获取对象

获取该对象

File file = new File(filepath)

5.3 判断对象

判断该对象是否存在,并且是否为一个文件

if(file.exists() && file.isFile())

5.4 写入关闭

得到输出流

ServletOutputStream out = resp.getOutputStream();

得到输入流

InputStream in = new FileInputStream(filepath);

写出

byte[] arr = byte[1024];

int len =0;

while((len=in.read(arr))

!= -1){

    out.write(arr,0,len);

}

out.flush();

in.close();

out.close();

5.5 设置响应类型

resp.setContentType("img/jpeg");


6.请求转发和重定向的区别

6.1 请求转发

1. 只有一次请求,request作用域中的数据可以共享

2. 浏览器地址栏不发生改变

3. 服务器行为

4. 跳转的绝对地址可以定位到站点名后

6.2 重定向

1. 有两次请求,request作用域的属于不可以共享

2. 浏览器地址方式改变

3. 客户端行为

4. 跳转地址可以定位到http://后

5. 重定向可以定位到任意路径

6.3 请求转发和重定向的"/"含义

请求转发(服务端跳转):"http://localhost:8080/站点名"

重定向(客户端跳转):"http://localhost:8080/"

6.4 客户端跳转

1. 表单提交

2. 超链接提交

3. 地址栏输入

4. 重定向 

6.5 服务端跳转

1. 地址栏直接输入

2. 请求转发

7.路径问题

7.1相对路径

路径的前面不要加任何符号,一般情况下代表的是:"http://localhost:8080/站点名"

7.2绝对路径

以http://开头的完整的绝对路径,可以跨域,可以访问任何资源

以"/"开头,访问当前项目下的资源

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,699评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,124评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,127评论 0 358
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,342评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,356评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,057评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,654评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,572评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,095评论 1 318
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,205评论 3 339
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,343评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,015评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,704评论 3 332
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,196评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,320评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,690评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,348评论 2 358

推荐阅读更多精彩内容