Servlet_JSP学习笔记

来源:互联网 发布:淘宝达人广场 在哪里 编辑:程序博客网 时间:2024/06/06 01:59
编码格式和乱码处理
服务器对字符流的默认输出编码格式为:ISO-8859-1;ISO-8853-1不支持中文,输出结果为问号(“?”)
用http的url传输数据的默认编码格式为:ISO-8859-1

pageEncoding="UTF-8":设置JSP编译成Servlet时使用的编码。
contentType="text/html;charset=UTF-8":指定对服务器响应进行重新编码的编码。
request.setCharacterEncoding("UTF-8"):设置对客户端请求进行重新编码的编码。
response.setCharacterEncoding("UTF-8"):指定对服务器响应进行重新编码的编码 ,即:更改服务器发送数据的默认编码

以下两者效果相同,都是通知浏览器用那种编码格式来解码
response.setHeader("content-type","text/html;charset=utf-8");//通知客户端解码方式
response.setContentType("text/hmtl;charset=utf-8")
(ContentType:内容类型;网页内容存在ContentType中)

Cookie乱码处理
cookie参数传递是通过http的url传输的,默认使用:ISO-8859-1编码格式
Cookie cookie= new Cookie("name_cookie",URLEncoder.encode(user.getUsername(),"utf-8"))

Get请求方式乱码
GET方式是用http的url传过来的默认用iso-8859-1编码的,所以首先得到的参数要再用iso-8859-1编码得到原文后,再进行用utf-8(或其他编码格式)进行解码
String str = request.getParameter("name");
String name = new String(str.getBytes("ISO-8859-1"),"utf-8");

POST方式的乱码
只需要request.setCharacterEncoding("UTF-8")即可

路径
request.getContextPath()拿到的是你的web项目的根路径,就是webRoot
request.getRequestDispathce("/...").forward(request,response)  请求转发;相对于服务器的绝对路径,在服务器内次请求一次,url地址不变
response.sendRedirect(request.getContextPath + "/...") 请求重定向; 相对于客户端来说,需要写入的文件所以服务器的地址

JSP九大隐式对象

Exception            exception隐式对象
Page                    page隐式对象
Request               request隐式对象
Response            response隐式对象
ServletConfig      config隐式对象
ServletContext    application隐式对象
Session               session隐式对象
Out                     out隐式对象
PageContext       pageContext隐式对象

四大域对象

域:一个域就理解为一个框,这里面可以放置数据,一个域既然称作域,他就有一个可以被看见的范围,这个范围内都可以对这个域中的数据进行操作,那这样的对象就叫做域对象。

pageContext(称之为page域)
    生命周期:当对jsp的请求开始时生成,当响应结束时销毁
    作用范围:真个jsp页面,是四大作用域中最小的一个。

request(称之为request域)
    生命周期:在service方法调用之前由服务器创建,传入service方法。整个请求结束,request生命结束。
    作用范围:整个请求链。
    作用:在整个请求链中共享数据,最常用的:在Servlet中处理好的数据要交给Jsp显示,此时参数就可以放置在Request域中带过去。

session(称之为session域)
    生命周期:在第一次调用reqeust.getSession()方法的时候,服务器会检查是已经有对应的session,如果没有就在内存中创建一个session并返回;(当一段时间内session没有被使用,一般为30分钟(此值可以在web.xml中配置<session-config>来配置,也可以使用TomcatManager进行配置),则服务器会销毁该session;当服务器强行关闭时,没有到期的session也会跟着销毁;如果调用session提供的invalidate(),可以立即销毁session)                                               
    作用范围:整个会话
    作用:为浏览器创建独一无二的内存空间,在其中保存会话相关的信息   

servletContext(称之为application域)
    生命周期:当web应用被加载进容器时创建代表整个web应用的ServletContext对象。当服务器关闭或web应用被移除出容器时,ServletContext对象跟着销毁。
    作用范围:整个web应用
    作用:在不同servlet之间传递数据

EL表达式
EL的11个内置对象
        pageContext -- 有了它可以很方便的获取jsp页面中的9大隐式对象
        pageScope -- page域中属性组成的Map
        requestScope -- request域中属性组成的Map
        sessionScope -- session域中属性组成的Map
        applicationScope --application域中属性组成的Map
        param -- 所有请求参数组成的Map<String,String>
        paramValues -- 所有请求参数组成的Map<String,String[]>
        header -- 所有请求头组成的Map<String,String>
        headerValues -- 所有请求头组成的Map<String,String[]>
        cookie -- 所有cookie信息组成的Map<String,Cookie>
        initParam -- 所有web应用的初始化参数组成Map
(在EL表达式中获取参数时,如果没有明确指明是从哪个域检索;则默认查找顺序为:pageScope->requestScope->sessionScope->applicationScope)
Session的钝化和活化
服务器正常关闭时,还存活的session会以文件的形式保存到服务器上 --- 钝化
服务器正常开启时,会把session文件还原到内存中 --- 活化
只有实现了序列化借口的对象才可以实现钝化活化(JavaBean一般都会实现序列化接口)
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 网吧老板跑路了怎么办 网吧玩地下城卡怎么办 个人公积金封存之前厂子欠费怎么办 学生欠了2万块怎么办 玉米去完库存量cool怎么办 幸福蓝海电子券过期怎么办 幸福蓝海国际影城会员怎么办 幸福蓝海会员卡过期了怎么办 电机线圈处于平衡位置怎么办 混联电路求电功率最小怎么办 电脑超出工作频率范围怎么办 手机红外线感应器坏了怎么办 我的世界左右慢怎么办 发电机自动启停装置故障怎么办 如果自动启停没关发动机涉水怎么办 偏激的人不分手怎么办 被极端的人纠缠怎么办 对固执偏激的人怎么办 车子右前轮偏磨怎么办? 轮胎边缘磨黑了怎么办 36周胎儿绕颈一周怎么办 孕中期胎儿偏小怎么办 怀孕34周偏小2周怎么办 胎盘低怎么办6个月了 怀孕四个月胎盘低怎么办 怀孕五个月胎盘低怎么办 怀孕3个月胎盘低怎么办 怀孕三个月了胎盘低怎么办 新房交房开发商拿不出证件怎么办? 新干式变压器未送电进水怎么办 三相380转单相220怎么办 外国人一直找你出去怎么办 美团众包跑腿单物品太重怎么办 美团退款成功后 物品怎么办 win10电脑没有网络图标怎么办 电脑开机桌面什么都没有怎么办 xp桌面什么都没有了怎么办 手机下滑通知栏不见了怎么办 跑800米赶上月经怎么办 强迫症吃药没效怎么办 复读生档案丢了怎么办